Pulsarr¶
Pulsarr monitors Plex watchlists and routes requested movies and shows to Sonarr and Radarr. It is useful when Plex is the front door for requests and you want watchlist-driven automation, approvals, quotas, and notifications without running a separate request portal.
Overview¶
Pulsarr provides:
- Plex watchlist monitoring - Syncs watched Plex account activity into media requests.
- Sonarr/Radarr routing - Sends shows and movies to configured Arr instances.
- Approvals and quotas - Supports controlled request workflows for users.
- Notifications - Supports Discord, Plex mobile push, webhooks, and Apprise.
- Multi-user support - Tracks Plex users and watchlist permissions.
Default port¶
| Service | Port |
|---|---|
| Pulsarr | 3003 |
Configuration settings in dumb_config.json¶
"pulsarr": {
"enabled": false,
"postgres_enabled": false,
"postgres_database": "",
"process_name": "Pulsarr",
"repo_owner": "jamcalli",
"repo_name": "Pulsarr",
"release_version_enabled": false,
"release_version": "latest",
"commit_sha": "",
"branch_enabled": false,
"branch": "master",
"suppress_logging": false,
"log_level": "INFO",
"port": 3003,
"auto_update": false,
"auto_update_interval": 24,
"auto_update_start_time": "04:00",
"clear_on_update": true,
"exclude_dirs": [
"/pulsarr/data"
],
"platforms": [
"bun"
],
"command": [
"/config/.bun/bin/bun",
"run",
"--bun",
"dist/server.js"
],
"config_dir": "/pulsarr",
"log_file": "/pulsarr/data/logs/pulsarr.log",
"env": {
"NODE_ENV": "production",
"listenPort": "{port}",
"dbPath": "/pulsarr/data/db/pulsarr.db",
"allowIframes": "true"
}
}
Configuration key descriptions¶
enabled: Whether to start Pulsarr.postgres_enabled: Select DUMB-managed PostgreSQL after using the guided migration tool. SQLite remains the default.postgres_database: Optional target name; blank usespulsarr.repo_owner/repo_name: GitHub repository DUMB downloads from.release_version_enabled/release_version: Use a tagged release if enabled, or the latest release by default.commit_sha: Build an exact Pulsarr revision from its full 40-character GitHub SHA. It overrides release/branch selection and disables automatic updates until cleared.branch_enabled/branch: Use a source branch instead of a release.port: Pulsarr web UI port.platforms: Uses DUMB's Bun setup path.config_dir: Pulsarr source and runtime directory.exclude_dirs: Keeps the persistent/pulsarr/datadirectory during updates.env.listenPort: Internal Pulsarr bind port.env.dbPath: SQLite database path.env.allowIframes: Allows Pulsarr to be embedded in the DUMB frontend.
Initial setup¶
After enabling and starting Pulsarr:
- Open Pulsarr from the DUMB service page or at
http://<host>:3003. - Create the Pulsarr admin account.
- Add your Plex token.
- Configure Sonarr and Radarr connections with their DUMB internal URLs and API keys.
- Start the main workflow from Pulsarr's dashboard and enable auto-start if desired.
Notes¶
- Pulsarr uses SQLite by default at
/pulsarr/data/db/pulsarr.db. - DUMB installs Bun under
/config/.bunwhen Pulsarr is built from source. - DUMB runs Pulsarr's idempotent database migrations before each application start. This creates a missing schema and applies upgrades without deleting the retained SQLite database. A migration failure keeps Pulsarr stopped and preserves the migration error in DUMB's service log.
- If you intentionally serve Pulsarr behind a separate subfolder reverse proxy, set Pulsarr's own
basePathenvironment variable for that external proxy. DUMB's embedded UI route strips its service prefix and does not needbasePath.
PostgreSQL migration¶
Use Database Migration on the Pulsarr service page for an existing SQLite installation. Rehearsal starts Pulsarr against an isolated PostgreSQL database so Pulsarr creates its current schema, imports application data while excluding Knex's migration bookkeeping tables, validates every copied table, and returns production to SQLite. Cutover repeats this from a cold snapshot and enables postgres_enabled only after validation.
Do not enable PostgreSQL directly when you need the existing users, settings, requests, or integrations. See SQLite to PostgreSQL Migration and the upstream Pulsarr migration guide.