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 wird die API-Basis-URL nicht als Datei abgelegt, sondern hier aus der Umgebung # ausgeliefert (MONITOR_API_BASE, siehe .env). Das nginx-Image ersetzt ${MONITOR_API_BASE} # beim Containerstart per envsubst - nur Variablen, die tatsaechlich in der Umgebung # definiert sind, nginx-eigene wie $uri bleiben unangetastet. Ist MONITOR_API_BASE gar # nicht definiert, bleibt der 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 die Variable daher immer (ggf. leer). location = /config.js { default_type application/javascript; add_header Cache-Control "no-store"; return 200 'window.MONITOR_API_BASE = "${MONITOR_API_BASE}";'; } location / { try_files $uri $uri/ =404; } }