# ── Required ────────────────────────────────────────────────── # Database (SQLite — file auto-created on first run) DATABASE_URL=sqlite:///data/movies.db # Authentication JWT_SECRET=change-me-to-a-random-string # Movie metadata — one of these is required (TMDB preferred) # TMDB_API_KEY=your-tmdb-key OMDB_API_KEY=your-omdb-key # ── Recommended ────────────────────────────────────────────── # Public URL (used for ActivityPub federation and canonical links) BASE_URL=https://yourdomain.example.com # Enable sign-ups (default: false — set true so you can register) ALLOW_REGISTRATION=true # ── Image Storage (defaults to local filesystem) ───────────── # IMAGE_STORAGE_BACKEND=local # default # IMAGE_STORAGE_PATH=./images # default # S3-compatible alternative (MinIO, AWS S3, etc.): # IMAGE_STORAGE_BACKEND=s3 # MINIO_ENDPOINT=http://localhost:9000 # MINIO_BUCKET=posters # MINIO_REGION=minio # MINIO_ACCESS_KEY_ID=minioadmin # MINIO_SECRET_ACCESS_KEY=minioadmin # ── Optional ───────────────────────────────────────────────── # TMDb enrichment (cast, crew, genres — separate from search metadata above) # TMDB_API_KEY=your-tmdb-key # Image conversion (converts uploaded posters to AVIF or WebP) # IMAGE_CONVERSION_ENABLED=false # IMAGE_CONVERSION_FORMAT=avif # Server # HOST=0.0.0.0 # PORT=3000 # RATE_LIMIT=60 # SECURE_COOKIES=true # RUST_LOG=presentation=info,tower_http=info,worker=info # CORS (for SPA development only) # CORS_ORIGINS=http://localhost:5173 # Event bus — "db" (default, uses same database) or "nats" # EVENT_BUS_BACKEND=db # NATS_URL=nats://localhost:4222