feat(deploy): publicsite-Container intern (Port 8081) + app.update im Deploy-Skript
Some checks failed
CI / Backend Tests (.NET) (push) Successful in 1m9s
CI / Frontend Tests (Node/Vite) (push) Successful in 9m34s
CI / Docker Build & Push (push) Successful in 1m29s
CI / Deploy auf TrueNAS (Custom App) (push) Failing after 3s

- custom-app.compose.yaml: publicsite (nginx) ergaenzt, LAN-only, statisches HTML aus
  publicsite-Volume (POST /api/publish); PUBLICSITE_PORT-Platzhalter
- truenas-deploy.sh: bei existierender App app.update (statt nur redeploy), damit
  Compose-Aenderungen (neue Dienste) uebernommen werden
- CLAUDE.md: 5. Dienst dokumentiert

Verifiziert: publicsite Up auf 8081, publish -> HTTP 200 (inkl. abgabetiere-Seite).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-19 14:24:54 +02:00
parent 1484d04917
commit 0a4bcabd98
3 changed files with 45 additions and 12 deletions

View File

@@ -79,6 +79,22 @@ services:
api:
condition: service_healthy
# --- Oeffentliche Seite (WEB-2), vorerst nur INTERN gehostet ---
# Serviert NUR statisches HTML aus dem publicsite-Volume (live/), das die API via
# POST /api/publish schreibt. Kein Proxy auf api/frontend. Solange nichts publiziert
# wurde, ist das Volume leer -> 404 (erwartet). Extern (Domain/TLS) ist ein spaeterer
# Schritt ueber Julians Reverse-Proxy (siehe deploy/truenas/vhost-snippet.conf).
publicsite:
image: nginx:alpine
restart: unless-stopped
ports:
- "__PUBLICSITE_PORT__:80"
volumes:
- /mnt/JailStorage/DockerVolumes/gerbilmanager/publicsite:/usr/share/nginx/html:ro
- /mnt/JailStorage/DockerVolumes/gerbilmanager/deploy/truenas/nginx/publicsite.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- api
# --- Backup-Sidecar (taeglicher pg_dump + Foto-Archiv + Rotation) ---
backup:
image: postgres:18