Files
songs2vid/website/docs/environment.md
T
Atakan Doğan Özban 9404efd86c Align preview typography with FFmpeg output, add video/song title split, and ship OSS updates.
Separate YouTube video titles from on-video song/artist fields with Pro gating, serve curated fonts and watermark assets for 1:1 preview parity, and include billing/API/docs/deploy stack for self-hosted release.
2026-07-27 16:26:19 +02:00

2.7 KiB

sidebar_position
sidebar_position
3

Environment variables

Two files exist on purpose — they are not duplicates you both fill with secrets.

File Role
.env.example Safe template committed to git. Shows names and placeholders. No real secrets.
.env Your real local or production secrets. Gitignored. The app reads only this.

Workflow: copy once (cp .env.example .env), then edit only .env. Leave .env.example as the shared checklist.

Required for local development

Variable Purpose
DATABASE_URL Postgres connection string (Docker defaults work out of the box)
REDIS_URL Redis for BullMQ and rate limiting
NEXTAUTH_URL Public app URL, e.g. http://localhost:3000 or https://songs2vid.example.com
NEXTAUTH_SECRET Long random string (e.g. openssl rand -base64 32)
GOOGLE_CLIENT_ID Google OAuth client ID
GOOGLE_CLIENT_SECRET Google OAuth client secret

Create OAuth credentials in Google Cloud Console. Guide: Setting up OAuth 2.0. Enable YouTube Data API v3.

Optional

Variable Purpose
TOKEN_ENCRYPTION_KEY Encrypts YouTube tokens at rest; falls back to NEXTAUTH_SECRET if unset
UPLOAD_DIR Upload storage path; defaults to ./uploads (Compose uses /app/uploads)
FFMPEG_PATH Override bundled ffmpeg-static binary
S2VID_EDITION Set to selfhosted for unlimited video allowance, API access, and all layout features
S2VID_PORT Host port for the optional root docker-compose.yml example (default 3000)
NEXT_PUBLIC_GITEA_URL Footer / open-source link
NEXT_PUBLIC_GITEA_ISSUES_URL Bug report link
NEXT_PUBLIC_DOCKER_HUB_URL Docker image link
NEXT_PUBLIC_DOCS_URL Docusaurus docs site. Omit locally to use http://localhost:3001 when NEXTAUTH_URL is localhost; production default https://docs.songs2vid.com
ADMIN_API_KEY Optional Bearer token for internal admin HTTP routes. Not required for normal self-hosted operation

Notes

  • User API keys are generated in Dashboard → Settings (hashed at rest). They are not env vars.
  • Self-hosted deployments should set S2VID_EDITION=selfhosted (the optional root Compose example does this for you).
  • In production, NEXTAUTH_URL must match the public HTTPS URL users open in the browser, and the same origin must be listed as an OAuth redirect URI (…/api/auth/callback/google). See Production notes.
  • Never commit .env or put production secrets in .env.example.