Portainer's compose up blocks on frontend's api: condition: service_healthy dependency and, on timeout, tears down everything it just created - so an unhealthy api container never stuck around long enough to pull logs from. Relaxed to service_started (frontend doesn't need api ready at container-start), and gave the api healthcheck more runway (60s start_period, 10 retries @ 10s) in case it's just slow to boot rather than crashing.
StudioFlow — Infrastruktur
Übersicht
Dieses Verzeichnis enthält die Konfiguration für die lokale Entwicklung und das Deployment mittels Docker Compose.
Dienste
- frontend: Next.js UI (Port 3000)
- api: NestJS REST API (Port 3001)
- worker: NestJS BullMQ Consumer
- postgres: PostgreSQL 16 (Port 5432)
- redis: Redis 7 für Caching und Queues (Port 6379)
Schnellstart (Server-Deployment)
Images werden nicht auf dem Server gebaut — sie kommen fertig aus der Gitea Container
Registry (git.devils.zone/devil/youtube-studio-flow-{backend,frontend}), gebaut per
scripts/build-and-push.sh auf der Dev-Maschine.
.env.examplekopieren:cp .env.example .env- Werte in
.envanpassen (Secrets, Domain, Google API Keys,IMAGE_TAG). - Am Server einloggen:
docker login git.devils.zone - Images ziehen:
docker compose pull - Datenbank migrieren:
docker compose run --rm migrate - Container starten:
docker compose up -d
Für ein Update auf eine neue Version: IMAGE_TAG in .env anpassen (oder latest
belassen), dann Schritte 4–6 wiederholen. Das externe Docker-Netzwerk proxy
muss vorher existieren (docker network create proxy), falls Traefik das nicht
bereits selbst anlegt.
Daten-Persistenz
- PostgreSQL-Daten liegen im Volume
postgres_data. - Redis-Daten liegen im Volume
redis_data.