Skip to content

Configuration

This guide covers all configuration options for self-hosting Playlist Pipeline.

VariableRequiredDescription
DATABASE_URLYesPostgreSQL connection string
SPOTIFY_CLIENT_IDYesSpotify application client ID
SPOTIFY_CLIENT_SECRETYesSpotify application client secret
SESSION_SECRETYesSecret for signing session cookies
CORS_ORIGINNoAllowed CORS origin (default: *)
PORTNoPort to listen on (default: 3000)
VariableRequiredDescription
DATABASE_URLYesPostgreSQL connection string
API_URLYesURL of the API service
PORTNoPort to listen on (default: 3001)
VariableRequiredDescription
SPOTIFY_CLIENT_IDYesSpotify application client ID
SPOTIFY_CLIENT_SECRETYesSpotify application client secret
SCHEDULER_URLYesURL of the scheduler service

Playlist Pipeline uses PostgreSQL. Run migrations on first setup:

Terminal window
docker compose exec api bun db:migrate

For production, we recommend running behind a reverse proxy like nginx or Caddy:

nginx.conf
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;
}
}

To update to the latest version:

Terminal window
docker compose pull
docker compose up -d

Check the Changelog for breaking changes before updating.