Files
devil 811c14ee73 fix(infrastructure): don't let a slow/unhealthy api block deploy
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.
2026-08-11 15:53:06 +02:00
..

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.

  1. .env.example kopieren: cp .env.example .env
  2. Werte in .env anpassen (Secrets, Domain, Google API Keys, IMAGE_TAG).
  3. Am Server einloggen: docker login git.devils.zone
  4. Images ziehen: docker compose pull
  5. Datenbank migrieren: docker compose run --rm migrate
  6. Container starten: docker compose up -d

Für ein Update auf eine neue Version: IMAGE_TAG in .env anpassen (oder latest belassen), dann Schritte 46 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.