Configuration
This guide covers all configuration options for self-hosting Playlist Pipeline.
Environment Variables
Section titled “Environment Variables”| Variable | Required | Description |
|---|---|---|
DATABASE_URL | Yes | PostgreSQL connection string |
SPOTIFY_CLIENT_ID | Yes | Spotify application client ID |
SPOTIFY_CLIENT_SECRET | Yes | Spotify application client secret |
SESSION_SECRET | Yes | Secret for signing session cookies |
CORS_ORIGIN | No | Allowed CORS origin (default: *) |
PORT | No | Port to listen on (default: 3000) |
Scheduler
Section titled “Scheduler”| Variable | Required | Description |
|---|---|---|
DATABASE_URL | Yes | PostgreSQL connection string |
API_URL | Yes | URL of the API service |
PORT | No | Port to listen on (default: 3001) |
Worker
Section titled “Worker”| Variable | Required | Description |
|---|---|---|
SPOTIFY_CLIENT_ID | Yes | Spotify application client ID |
SPOTIFY_CLIENT_SECRET | Yes | Spotify application client secret |
SCHEDULER_URL | Yes | URL of the scheduler service |
Database
Section titled “Database”Playlist Pipeline uses PostgreSQL. Run migrations on first setup:
docker compose exec api bun db:migrateReverse Proxy
Section titled “Reverse Proxy”For production, we recommend running behind a reverse proxy like nginx or Caddy:
server { listen 80; server_name plpl.example.com;
location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}Updating
Section titled “Updating”To update to the latest version:
docker compose pulldocker compose up -dCheck the Changelog for breaking changes before updating.