# Database backend — "sqlite" (default) or "postgres" DATABASE_BACKEND=sqlite # Option A: SQLite (default, zero external dependencies) DATABASE_URL=sqlite://movies.db # Option B: PostgreSQL # DATABASE_BACKEND=postgres # DATABASE_URL=postgres://user:password@localhost:5432/movies_diary # Authentication JWT_SECRET=change-me JWT_TTL_SECONDS=86400 # OMDb/TMDB metadata OMDB_API_KEY=your-key TMDB_API_KEY=your-key # Poster storage — Option A (local) is active. To use S3, comment it out and uncomment Option B: # Option A: local filesystem (zero external dependencies) POSTER_STORAGE_BACKEND=local POSTER_STORAGE_PATH=./posters # Option B: S3-compatible (MinIO, AWS S3, etc.) # POSTER_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 HOST=0.0.0.0 PORT=3000 BASE_URL=http://localhost:3000 SECURE_COOKIES=false ALLOW_REGISTRATION=false RATE_LIMIT=20 POSTER_FETCH_TIMEOUT_SECONDS=30 EVENT_CHANNEL_BUFFER=128 # NATS event bus (optional — falls back to in-memory channel when unset) # NATS_URL=nats://localhost:4222 # NATS_MODE=jetstream # "jetstream" (default, at-least-once) or "core" (fire-and-forget) # NATS_SUBJECT_PREFIX=movies-diary.events # NATS_STREAM_NAME=MOVIES_DIARY_EVENTS # NATS_CONSUMER_NAME=worker RUST_LOG=presentation=debug,tower_http=debug