Skip to content

Sonarr (Core Service)#

Sonarr is a TV series manager that automates monitoring, searching, and organizing episodes through configured indexers and download clients.


Service Relationships#

Classification Role
Core Service TV series automation
Depends On None
Optional Decypharr, NzbDAV, AltMount, Prowlarr
Exposes UI Yes (Web UI)

Configuration in dumb_config.json#

"sonarr": {
  "instances": {
    "Default": {
      "enabled": false,
      "core_service": "",
      "use_neutarr": false,
      "use_profilarr": false,
      "postgres_enabled": false,
      "postgres_main_db": "",
      "postgres_log_db": "",
      "process_name": "Sonarr",
      "repo_owner": "Sonarr",
      "repo_name": "Sonarr",
      "release_version_enabled": false,
      "release_version": "latest",
      "clear_on_update": false,
      "exclude_dirs": [],
      "platforms": [],
      "suppress_logging": false,
      "auto_update": false,
      "auto_update_interval": 24,
      "pinned_version": "",
      "port": 8989,
      "config_dir": "/sonarr/default",
      "config_file": "/sonarr/default/config.xml",
      "log_file": "/sonarr/default/logs/sonarr.txt",
      "command": [],
      "env": {}
    }
  }
}

Key Configuration Fields#

  • core_service: Set to decypharr, nzbdav, altmount, or a list of workflow keys to enable DUMB integration.
  • use_neutarr: Opt this instance into NeutArr automation.
  • use_profilarr: Opt this instance into Profilarr auto‑linking.
  • postgres_enabled: Opt this instance into DUMB-managed PostgreSQL config. SQLite is the default; set this to true only when you want Sonarr to use PostgreSQL.
  • postgres_main_db / postgres_log_db: Optional database-name overrides. When blank, DUMB uses sonarr-main and sonarr-log for the default instance, or unique instance-scoped names for additional instances.
  • port: Web UI port (default 8989).
  • pinned_version: Optional version pin for Sonarr updates.
  • repo_owner / repo_name: GitHub repo used for releases or branch builds.
  • release_version_enabled / release_version: Use GitHub releases (e.g., latest, nightly, prerelease, or a tag).
  • clear_on_update: Clear the install directory before updating.
  • exclude_dirs: Directories to preserve when clearing.
  • platforms: Build platforms (auto‑defaults to ["dotnet"] when using branches).
  • config_dir, config_file, log_file: Paths for config and logs.

PostgreSQL database mode#

When postgres_enabled is true, DUMB:

  • enables the bundled PostgreSQL service if needed;
  • creates the Sonarr main/log databases in postgres.databases;
  • starts PostgreSQL before Sonarr; and
  • writes the required PostgresUser, PostgresPassword, PostgresHost, PostgresPort, PostgresMainDb, and PostgresLogDb entries to Sonarr's config.xml.

During onboarding, enabling postgres_enabled for Sonarr is enough; you do not need to separately select PostgreSQL as an optional service.

This does not migrate existing SQLite data

Setting postgres_enabled: true changes the database backend Sonarr starts with. It does not copy sonarr.db into PostgreSQL.

If you enable this on an existing SQLite-backed Sonarr instance without doing a manual migration, Sonarr can start against fresh PostgreSQL databases and appear empty or newly initialized.

This mode is intended for new Sonarr databases unless you are deliberately following Sonarr's upstream community migration notes. Sonarr's upstream documentation says existing SQLite migration is unsupported and only new PostgreSQL installs are supported. Back up both /sonarr/... and /postgres_data before experimenting with an existing instance.

Manual migration, if you choose to attempt it, is outside DUMB automation. The rough upstream flow is: back up, stop Sonarr, enable PostgreSQL mode, let Sonarr initialize the PostgreSQL schema once, stop Sonarr again, then follow the Sonarr pgloader migration guide for the main database.

PostgreSQL is not a temporary toggle

There is no known supported migration path from PostgreSQL back to SQLite for Sonarr. Treat postgres_enabled: true as a long-term database choice unless you are willing to recreate the Sonarr instance from scratch.

DUMB does not provide automatic SQLite-to-PostgreSQL or PostgreSQL-to-SQLite migration for Sonarr.


Repo-based installs and updates#

Sonarr now supports the same repo‑based controls as other DUMB services.

  • GitHub releases: Set release_version_enabled: true with a valid repo_owner/repo_name.
  • Default updater: Leave release_version_enabled: false to use the standard Arr updater.

GitHub sources take priority when enabled and are not a fallback. pinned_version only applies to the traditional Arr updater.


Integration with DUMB#

  • For Decypharr integration, set core_service to decypharr and follow the Decypharr guide.
  • For NzbDAV integration, set core_service to nzbdav and follow the NzbDAV guide.
  • For AltMount integration, set core_service to altmount and follow the AltMount guide.
  • For combined workflows, set core_service to a list such as ["decypharr", "nzbdav", "altmount"].
  • Use Prowlarr to centrally manage indexers and sync them to Sonarr.
  • DUMB enables Arr folder permission updates and applies permissions to configured root folders during integration.
  • See Core Service Routing for how core_service affects automation.

Accessing the UI#

  • Navigate to: http://<host>:8989

Resources#