feat(deploy): publicsite-Container intern (Port 8081) + app.update im Deploy-Skript
- 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:
@@ -42,8 +42,11 @@ Prod läuft als **TrueNAS SCALE Custom-App** `gerbilmanager` auf dem Host **`tru
|
||||
- **Sichtbar unter Apps**, weil via `midclt call app.create {custom_app:true, app_name:"gerbilmanager",
|
||||
custom_compose_config_string:<yaml>}` angelegt — **nicht** via `docker compose` (das taucht in Apps
|
||||
NICHT auf). Container: `ix-gerbilmanager-{db,api,frontend,backup}-1`.
|
||||
- **4 Dienste:** `db` (postgres:18) · `api` (.NET, EF-Migrationen laufen beim Start) · `frontend`
|
||||
(nginx: SPA + `/api`-Proxy → `api:8080`) · `backup` (täglich 03:00 pg_dump + Foto-Archiv, Shell-Scheduler).
|
||||
- **5 Dienste:** `db` (postgres:18) · `api` (.NET, EF-Migrationen laufen beim Start) · `frontend`
|
||||
(nginx: SPA + `/api`-Proxy → `api:8080`, Host-Port 8090) · `publicsite` (nginx, **nur intern**,
|
||||
Host-Port **8081** — serviert statisches HTML aus dem `publicsite`-Volume, das die API via
|
||||
`POST /api/publish` schreibt; ohne Publish leer → 404) · `backup` (täglich 03:00 pg_dump +
|
||||
Foto-Archiv, Shell-Scheduler).
|
||||
- **App-Home auf dem Pool:** `/mnt/JailStorage/DockerVolumes/gerbilmanager/` mit
|
||||
`pgdata/ photos/ keys/ backups/ scripts/ publicsite/` und `deploy/truenas/{custom-app.compose.yaml,.env,scripts}`.
|
||||
Images aus der Gitea-Registry `git.rismer.de/gulum/gerbilmanager-{api,frontend}:latest`.
|
||||
|
||||
Reference in New Issue
Block a user