Files
youtube-studio-flow/infrastructure/.env.example
T
devil d6ff99e8a4 feat(infrastructure): pull pre-built images from Gitea registry
migrate/api/worker/frontend now reference
git.devils.zone/devil/youtube-studio-flow-{backend,frontend}:\${IMAGE_TAG}
instead of building on the deploy host. Adds scripts/build-and-push.sh
to build+tag (git short SHA + latest) and push both images from a dev
machine, and updates infrastructure/README.md with the pull-based
deploy sequence.
2026-08-11 14:18:30 +02:00

43 lines
2.9 KiB
Bash

# ─── Domain ───────────────────────────────────────────────────────────────────
# The public domain Traefik routes to this app (no https://, no trailing slash).
DOMAIN=yourdomain.com
# ─── Image tag ────────────────────────────────────────────────────────────────
# Which tag to pull from git.devils.zone/devil/youtube-studio-flow-{backend,frontend}.
# Pin to a git short SHA or release tag for reproducible deploys; `latest` tracks
# whatever scripts/build-and-push.sh last pushed.
IMAGE_TAG=latest
# ─── Postgres ─────────────────────────────────────────────────────────────────
POSTGRES_USER=studioflow
POSTGRES_PASSWORD=change_me_strong_password
POSTGRES_DB=studioflow
# ─── Redis ────────────────────────────────────────────────────────────────────
REDIS_PASSWORD=change_me_strong_password
# ─── JWT secrets (generate with: openssl rand -base64 48) ─────────────────────
JWT_SECRET=change_me_min_32_chars_xxxxxxxxxxxxxxxxxx
JWT_REFRESH_SECRET=change_me_min_32_chars_refresh_xxxxxxxx
# ─── YouTube token encryption — MUST be exactly 32 characters ─────────────────
# Generate with: openssl rand -hex 16
TOKEN_ENCRYPTION_KEY=change_me_exactly_32chars_key_xxxx
# ─── Google OAuth / YouTube API ───────────────────────────────────────────────
# Create OAuth 2.0 credentials at https://console.cloud.google.com/
# Authorised redirect URI must match GOOGLE_CALLBACK_URL exactly.
GOOGLE_CLIENT_ID=your_client_id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_CALLBACK_URL=https://yourdomain.com/api/v1/auth/google/callback
# ─── App URLs ─────────────────────────────────────────────────────────────────
# Public URL of the frontend — used by the API for CORS.
FRONTEND_URL=https://yourdomain.com
# ─── Conflict detection (worker) ──────────────────────────────────────────────
# Global kill switch for the scheduled remote-conflict sweep.
# Per-team opt-in and batch limits are configured in Team settings.
CONFLICT_DETECTION_ENABLED=false
CONFLICT_DETECTION_CRON=0 3 * * *