Bisher zaehlte der Countdown im Header nur rein kosmetisch herunter, ohne selbst etwas neu zu laden. Ein dauerhaft offener Tab (z.B. auf einer Monitor-Wand) blieb dadurch auf unbestimmte Zeit bei der beim Laden geholten JS-Version haengen, auch wenn ein Fix laengst gemergt und per Auto-Update deployt war - so blieben z.B. die in PR #106 entfernten KPI-Graphen auf bereits offenen Tabs weiter sichtbar (Issue #108). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
33 lines
1.7 KiB
Text
33 lines
1.7 KiB
Text
server {
|
|
listen 80;
|
|
server_name localhost;
|
|
|
|
root /usr/share/nginx/html;
|
|
|
|
# Einstiegsseite ist die Buero-Visualisierung - ohne diese Direktive liefert
|
|
# nginx beim Aufruf der Basis-URL ein 403 (Directory-Listing ist deaktiviert,
|
|
# und eine index.html gibt es nicht).
|
|
index office.html;
|
|
|
|
# Laufzeit-Konfiguration fuers Frontend: Das html/-Verzeichnis ist read-only gemountet,
|
|
# deshalb werden API-Basis-URL und Sync-Intervall nicht als Datei abgelegt, sondern hier
|
|
# aus der Umgebung ausgeliefert (MONITOR_API_BASE, MONITOR_SYNC_INTERVAL, siehe .env).
|
|
# Das nginx-Image ersetzt ${MONITOR_API_BASE}/${MONITOR_SYNC_INTERVAL} beim Containerstart
|
|
# per envsubst - nur Variablen, die tatsaechlich in der Umgebung definiert sind,
|
|
# nginx-eigene wie $uri bleiben unangetastet. Ist eine der beiden Variablen gar nicht
|
|
# definiert, bleibt ihr Platzhalter stehen und nginx verweigert den Start
|
|
# ("unknown \"monitor_api_base\" variable") - besser ein lauter Fehler als eine still
|
|
# falsche URL. docker-compose.yml setzt beide Variablen daher immer (ggf. mit Default).
|
|
# MONITOR_SYNC_INTERVAL speist den Reload-Countdown im Header (Issue #12) - der laedt die
|
|
# Seite bei 0 tatsaechlich per location.reload() neu (Issue #108), hat aber keinen Einfluss
|
|
# auf den laufenden Update-Takt der Szene selbst (SSE/Polling, siehe office-render.js).
|
|
location = /config.js {
|
|
default_type application/javascript;
|
|
add_header Cache-Control "no-store";
|
|
return 200 'window.MONITOR_API_BASE = "${MONITOR_API_BASE}"; window.MONITOR_SYNC_INTERVAL = ${MONITOR_SYNC_INTERVAL};';
|
|
}
|
|
|
|
location / {
|
|
try_files $uri $uri/ =404;
|
|
}
|
|
}
|