Configuration
Pulsarr uses a hybrid configuration approach. Most settings are configured through the web UI, while infrastructure settings (timezone, database, HTTPS) are defined in a .env file.
Environment variables override web UI settings on app restart. Remove a variable from .env to let web UI changes persist.
Core Configuration
| Variable | Description | Required? | Default |
|---|---|---|---|
TZ | Timezone (e.g., America/New_York) | Recommended | UTC |
cookieSecured | Set true ONLY if serving UI over HTTPS | No | false |
listenPort | Internal port the server binds to | No | 3003 |
basePath | URL path prefix for subfolder reverse proxy (e.g., /pulsarr) | No | None |
enableRequestLogging | Log HTTP requests (sensitive params redacted) | No | false |
appriseUrl | Apprise server URL (if using Apprise) | No | None |
The baseUrl and port are configured through the web UI. Pulsarr will prompt you to set the correct address when you test your Sonarr/Radarr connections. You can also set them via .env if you prefer, but it's not required.
To run Pulsarr at a subfolder like https://domain.com/pulsarr/, set basePath=/pulsarr in your .env. Configure baseUrl through the web UI. All routes are registered under the basePath prefix. Your reverse proxy should forward requests to Pulsarr with the path intact.
Database Configuration
Pulsarr supports SQLite (default) and PostgreSQL.
| Variable | Description | Required? | Default |
|---|---|---|---|
dbPath | SQLite database path | No | ./data/db/pulsarr.db |
dbType | Set to postgres for PostgreSQL | For PostgreSQL | sqlite |
dbHost | PostgreSQL hostname | For PostgreSQL | localhost |
dbPort | PostgreSQL port | No | 5432 |
dbName | PostgreSQL database name | For PostgreSQL | pulsarr |
dbUser | PostgreSQL username | For PostgreSQL | postgres |
dbPassword | PostgreSQL password | For PostgreSQL | None |
dbConnectionString | Full connection string (overrides above) | No | None |
Before using PostgreSQL, create a database and user with appropriate permissions. See the PostgreSQL Migration Guide for details.
Example .env File
# Recommended
TZ=America/Los_Angeles
# Security
cookieSecured=false
# Database - SQLite (default, no config needed)
# dbPath=./data/db/pulsarr.db
# Database - PostgreSQL (uncomment to use)
# dbType=postgres
# dbHost=your-postgres-host
# dbPort=5432
# dbName=pulsarr
# dbUser=pulsarr
# dbPassword=your-secure-password
# Apprise (if using)
# appriseUrl=http://apprise:8000
Authentication
Set authenticationMethod in .env:
| Value | Behavior |
|---|---|
required | Always require authentication (default) |
requiredExceptLocal | Skip auth for local/private network |
disabled | No authentication |
See Authentication Configuration Details for which IP ranges are considered "local".
Security
Iframe Support
For dashboard apps like Organizr or Heimdall:
allowIframes=true
This disables X-Frame-Options, allowing iframe embedding from any domain. Only enable if needed.
Plex Configuration
Skip Downloads for Existing Content
Configure in Plex → Configuration under "Content Availability Check" to prevent duplicate downloads by checking Plex before adding content.
- Primary Token User: Checks all accessible servers (owned + shared)
- Other Users: Only checks your owned server
For all environment variables including development options, see Environment Variables Reference.