homepage: sectioned panels, WIP open/closed, current model facts, Tautulli card

Both pages now group their panels under section headings rendered by shared
renderSection()/renderPanel() components in app.js (SECTION_ORDER fixes each
page's order: user = AI, Web Apps, Media Library Apps; admin = Media Library
Apps, Observability, AI, Infrastructure). The WIP badge splits into WIP: OPEN
and WIP: CLOSED via the wip value ("open"/"closed"); the checker passes the
value through as wip-open/wip-closed. The frank-large card follows the
unsloth llama.cpp cutover, frank-medium follows the FP8 checkpoint, and the
/docs model guide matches. Tautulli (Plex statistics, 192.168.0.235:8181)
joins the admin page's Media Library Apps section with an open link.
This commit is contained in:
Frank
2026-09-21 13:20:15 -07:00
parent 32eafeb7c5
commit 384747a72f
9 changed files with 221 additions and 54 deletions
+5 -3
View File
@@ -2,7 +2,8 @@
"""homepage-status.py — the homepage status checker.
Reads a service config (a JSON array of service entries), probes each backend,
and writes a status.json atomically. A wip service is not probed.
and writes a status.json atomically. A wip service is not probed; its state
is "wip-open" or "wip-closed" following the wip value in the config.
Usage: homepage-status.py <services.json> <out.json>
"""
@@ -48,8 +49,9 @@ def main(argv):
results = []
for svc in services:
if svc.get("wip"):
state = "wip"
wip = svc.get("wip")
if wip:
state = "wip-%s" % wip
else:
host, _, port = svc["probe"].rpartition(":")
state = probe(host, int(port), svc.get("method", "tcp"))