Files
projektuebersicht/docker-compose.yml
T
erikandClaude Opus 5.5 fd44db2213 Update über den Git-Server, Tests, Repo ohne node_modules und Sicherungen
- Admin → Update: neuere Versionen (Tags) vom Git-Server anzeigen und per
  Knopf einspielen; ausgeführt vom Dienst auf dem Rechner
  (Docker/update-einrichten.sh, Docker/update-ausfuehren.sh), nur vorwärts,
  Fehler bei ausbleibendem Neustart, abgebrochene Läufe sperren nicht
- Tests (npm test): Zusammenführen paralleler Änderungen, Rechteprüfung
  beim Speichern; SESSIONS_DIR lenkt den Datenordner für Testserver um
- node_modules, Sicherungen und Uploads aus dem Repo genommen
- cors und requireRole() entfernt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 11:10:56 +01:00

48 lines
1.9 KiB
YAML

services:
projektuebersicht:
build:
context: .
dockerfile: Docker/Dockerfile
container_name: projektuebersicht
ports:
- "3003:3003"
volumes:
- ./sessions:/app/sessions
environment:
# Ohne TZ läuft der Container auf UTC. Der Server vergleicht Termine
# mit dem heutigen Datum (heuteIsoLokal() in server.js) — in deutscher
# Sommerzeit gälte damit zwischen 00:00 und 02:00 Ortszeit noch der
# Vortag, und Termine von heute erschienen als überfällig.
TZ: Europe/Berlin
# Speicher-Wächter: darüber startet der Server sich selbst sauber neu,
# bevor die Grenze von 320 MB (mem_limit) erreicht ist.
SPEICHER_MAX_MB: "220"
# PDF-Kindprozess (Protokoll-Import, Plan Checker): bricht darüber ab.
PDF_KIND_MAX_MB: "220"
PDF_KIND_HEAP_MB: "160"
# Hänger-Wächter: reagiert der Server so lange nicht, Neustart.
HAENGER_MAX_S: "90"
# Admin → Update: Versionen (Tags) vom Git-Server. Ausgeführt wird ein
# Update vom Dienst auf dem Rechner (Docker/update-einrichten.sh).
UPDATE_REPO_API: "http://192.168.3.187:3000/api/v1/repos/erik/projektuebersicht"
restart: always
# Betrieb auf dem Pi Zero 2 (512 MB), siehe CLAUDE.md "Betrieb auf dem Pi":
# tini als PID 1 — Signale kommen sauber bei Node an (DB wird geschlossen).
init: true
# Feste Speichergrenze: Läuft die App über, trifft es nur diesen
# Container (restart: always holt ihn zurück), nicht SSH oder Docker.
mem_limit: 320m
memswap_limit: 512m
# Die Protokolle wuchsen sonst unbegrenzt auf der SD-Karte.
logging:
driver: json-file
options:
max-size: "5m"
max-file: "3"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:3003/health >/dev/null || exit 1"]
interval: 60s
timeout: 10s
start_period: 60s
retries: 3