37 lines
2.5 KiB
Bash
37 lines
2.5 KiB
Bash
# ─── Domain ───────────────────────────────────────────────────────────────────
|
|
# The public domain Traefik routes to this app (no https://, no trailing slash).
|
|
DOMAIN=yourdomain.com
|
|
|
|
# ─── 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 * * *
|