Skip to main content

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

Environment variables override web UI settings on app restart. Remove a variable from .env to let web UI changes persist.

Core Configuration

VariableDescriptionRequired?Default
TZTimezone (e.g., America/New_York)RecommendedUTC
cookieSecuredSet true ONLY if serving UI over HTTPSNofalse
listenPortInternal port the server binds toNo3003
basePathURL path prefix for subfolder reverse proxy (e.g., /pulsarr)NoNone
enableRequestLoggingLog HTTP requests (sensitive params redacted)Nofalse
appriseUrlApprise server URL (if using Apprise)NoNone
Network Settings

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.

Subfolder Reverse Proxy (basePath)

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.

VariableDescriptionRequired?Default
dbPathSQLite database pathNo./data/db/pulsarr.db
dbTypeSet to postgres for PostgreSQLFor PostgreSQLsqlite
dbHostPostgreSQL hostnameFor PostgreSQLlocalhost
dbPortPostgreSQL portNo5432
dbNamePostgreSQL database nameFor PostgreSQLpulsarr
dbUserPostgreSQL usernameFor PostgreSQLpostgres
dbPasswordPostgreSQL passwordFor PostgreSQLNone
dbConnectionStringFull connection string (overrides above)NoNone
PostgreSQL Setup

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:

ValueBehavior
requiredAlways require authentication (default)
requiredExceptLocalSkip auth for local/private network
disabledNo authentication
Local Network Details

See Authentication Configuration Details for which IP ranges are considered "local".

Security

Iframe Support

For dashboard apps like Organizr or Heimdall:

allowIframes=true
note

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
Complete Reference

For all environment variables including development options, see Environment Variables Reference.