gereksiz Projeler sekmesini kaldir, ana sayfa artik tum containerlar+kaynak kullanimi
Deploy / deploy (push) Successful in 41s

This commit is contained in:
2026-09-23 16:41:26 +03:00
parent e948f10bd5
commit 5d2af35046
+6 -84
View File
@@ -128,33 +128,6 @@ def port_summary(info):
return ", ".join(out) if out else None
def list_projects():
out = subprocess.run(
["docker", "ps", "-a", "--filter", "label=traefik.enable=true", "--format", "{{.ID}}"],
capture_output=True, text=True, check=True,
).stdout.split()
projects = []
for cid in out:
info = inspect_all(cid)
name = info["Name"].lstrip("/")
if name == SELF_NAME:
continue
labels = info["Config"]["Labels"] or {}
state = info["State"]
status = state["Status"]
when = human_relative(state.get("StartedAt") if status == "running" else state.get("FinishedAt"))
projects.append({
"name": name,
"hostname": extract_hostname(labels),
"status": status,
"since": when,
"image": info["Config"]["Image"],
})
projects.sort(key=lambda p: p["name"])
return projects
def list_all_containers():
out = subprocess.run(
["docker", "ps", "-a", "--format", "{{.ID}}"],
@@ -329,13 +302,12 @@ BASE_STYLE = """
NAV = """
<nav>
<a href="/" class="{{ 'active' if page == 'projects' else '' }}">Projeler</a>
<a href="/containers" class="{{ 'active' if page == 'containers' else '' }}">Tüm Container'lar</a>
<a href="/" class="{{ 'active' if page == 'containers' else '' }}">Container'lar</a>
<a href="/system" class="{{ 'active' if page == 'system' else '' }}">Sistem &amp; Disk</a>
</nav>
"""
PROJECTS_TEMPLATE = """
CONTAINERS_TEMPLATE = """
<!doctype html>
<html>
<head>
@@ -347,7 +319,7 @@ PROJECTS_TEMPLATE = """
<body>
<h1>Deploy Panel</h1>
""" + NAV + """
<div class="sub">{{ projects|length }} proje · 20 saniyede bir otomatik yenilenir · <a href="/">şimdi yenile</a></div>
<div class="sub">{{ containers|length }} container · 20 saniyede bir otomatik yenilenir · <a href="/">şimdi yenile</a></div>
<div class="stats">
<div class="stat-card">
@@ -380,53 +352,6 @@ PROJECTS_TEMPLATE = """
</div>
</div>
{% if projects %}
<table>
<tr><th>Proje</th><th>Adres</th><th>Durum</th><th>İmaj</th><th></th></tr>
{% for p in projects %}
<tr>
<td>{{ p.name }}</td>
<td>{% if p.hostname %}<a href="https://{{ p.hostname }}" target="_blank">{{ p.hostname }}</a>{% else %}—{% endif %}</td>
<td>
<span class="badge {{ p.status }}">{{ p.status }}</span>
{% if p.since %}<span class="since">{{ p.since }}</span>{% endif %}
</td>
<td>{{ p.image }}</td>
<td>
<div class="actions">
<a class="btn btn-logs" href="/logs/{{ p.name }}">Loglar</a>
<form method="post" action="/restart/{{ p.name }}">
<button class="btn-restart" type="submit">Yeniden Başlat</button>
</form>
<form method="post" action="/delete/{{ p.name }}"
onsubmit="return confirm('{{ p.name }} silinsin mi? Container ve DNS kaydı kalıcı olarak kaldırılacak.');">
<button class="btn-delete" type="submit">Sil</button>
</form>
</div>
</td>
</tr>
{% endfor %}
</table>
{% else %}
<p class="empty">Henüz deploy edilmiş bir proje yok.</p>
{% endif %}
</body>
</html>
"""
CONTAINERS_TEMPLATE = """
<!doctype html>
<html>
<head>
<title>Container'lar - Deploy Panel</title>
<meta charset="utf-8">
<meta http-equiv="refresh" content="20">
<style>""" + BASE_STYLE + """</style>
</head>
<body>
<h1>Deploy Panel</h1>
""" + NAV + """
<div class="sub">Sunucudaki TÜM container'lar (sadece Traefik projeleri değil) · {{ containers|length }} adet</div>
{% if containers %}
<table>
<tr><th>İsim</th><th>Adres</th><th>Portlar</th><th>Durum</th><th>İmaj</th><th></th></tr>
@@ -574,12 +499,9 @@ LOGS_TEMPLATE = """
@app.route("/")
def index():
return render_template_string(PROJECTS_TEMPLATE, projects=list_projects(), s=server_stats(), page="projects")
@app.route("/containers")
def containers_ui():
return render_template_string(CONTAINERS_TEMPLATE, containers=list_all_containers(), page="containers")
return render_template_string(
CONTAINERS_TEMPLATE, containers=list_all_containers(), s=server_stats(), page="containers"
)
@app.route("/system")