pull_policy: always on the four studioflow services (migrate, api, worker, frontend) so redeploying the stack in Portainer actually fetches the latest pushed image instead of reusing a stale local layer for the mutable `latest`/IMAGE_TAG reference. Third-party pinned images (postgres, redis) are left on default pull behavior.
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 traefik-network
muss vorher existieren (docker network create traefik-network), falls Traefik das nicht
bereits selbst anlegt.
Daten-Persistenz
- PostgreSQL-Daten liegen im Volume
postgres_data. - Redis-Daten liegen im Volume
redis_data.