Tech Digest

Media

Sonarr

Series manager that decides which release is which episode, then files it

MediaGPL-3.0Maturearm64 builds
Last reviewed Profile maintained against the project's own documentation
Operational load
3 / 5
Moderate
Idle memory
200 MB
typical use ~400 MB
Moving parts
1
containers in a normal deployment
Backup shape
SQLite backup
needs a dump or a stop

Sonarr tracks TV series, watches your indexers for new episodes, hands matches to a download client and renames the results into a library your media server can read. It replaces manually chasing episodes and the scheduling half of a cable DVR.

Our verdict on Sonarr#

Sonarr's actual job is identity resolution: turning a release name into a specific episode. That is harder than it sounds because television has three incompatible numbering schemes running at once, and Sonarr has to pick one per series. Standard SxxEyy, date-based for daily shows, and absolute numbering for anime, where release groups number continuously across seasons while TheTVDB splits them into seasons. Anime is where Sonarr fails most and where you will spend your configuration time: scene mappings, absolute-to-season conversion, and the fact that a mis-numbered release imports over a good file. It also handles season packs, multi-episode files and TVDB's habit of filing specials into season 0, which your media server then hides. v4 moved to .NET 6, dropped Mono, replaced Preferred Words with Custom Formats, and made authentication mandatory. The current line is 4.0.19.x as of September 2026, with no v5 announced, and Radarr's jump to v6 is unrelated versioning.

Who Sonarr is for#

Choose it if

  • You follow more than a handful of ongoing series and are tired of checking for new episodes by hand.
  • You want consistent season and episode naming so Jellyfin, Plex or Emby match everything on the first scan.
  • You want automatic quality upgrades: grab the 720p tonight, replace it with the 1080p WEB-DL when it appears.
  • You are rebuilding a library and want failed downloads retried and blocked automatically rather than sitting silent.

Look elsewhere if

  • You have no indexer and no download client: Sonarr is the coordinator, not the source.
  • Your library is mostly anime and you are not prepared to learn absolute numbering and scene mappings.
  • You want a single app for films and series, since that is deliberately Radarr's separate job.

What running it actually looks like#

One container on 8989, with a /config volume and your media plus downloads mounted. The mount layout is the whole game: give the container a single parent path such as /data containing both /data/downloads and /data/tv, so Sonarr and your download client see identical paths and imports become hardlinks or atomic moves instead of copies. Two separate mounts for downloads and media guarantee a full copy on every import. Before Sonarr does anything you need an indexer (usually via Prowlarr) and a download client configured with matching category names. First run is quick: set the root folder, add series, choose a quality profile. v4 upgrades from v3 require updating the systemd unit to stop invoking mono, and a config file without an authentication method set will refuse to start.

Resource profile#

Memory
200 MB idle, around 400 MB in ordinary use. The .NET process plus its SQLite connection; RSS feed parsing across many indexers and large refresh runs are what push it up on big libraries.
CPU and acceleration
Mostly idle. Spikes come from RSS sync across every indexer, metadata refreshes of a few hundred series, and post-import file operations, which are I/O bound rather than CPU bound if hardlinks work.
Storage growth
Sonarr's own footprint is a database in the tens to low hundreds of MB. It manages your media tree, so the real risk is import copies rather than hardlinks silently doubling disk usage.
Operational load
3 of 5, Moderate. Sonarr alone is one container and a SQLite file, but it is meaningless without an indexer source and a download client, and its correctness depends on path mapping being identical across all of them. Upgrade notes matter (v4 made authentication mandatory), and restoring means restoring Sonarr, its download client state and the media tree in a consistent order.

Figures describe a small single-household install and are the working assumptions behind our stack planner. Your numbers will differ with library size, user count and hardware. See methodology.

Data and backup surface#

Back up /config. sonarr.db holds series, episode state, history, quality profiles, custom formats, indexer and download client definitions including their credentials, while config.xml holds the API key and the authentication settings. Sonarr writes its own zipped backups into /config/Backups/scheduled/ on a schedule and keeps a retention count; taking those off-box is the simplest correct approach, since they are produced consistently rather than copied from a live database. logs/ and MediaCover/ are regenerable and can be excluded, and MediaCover is often the largest thing in the volume. If you moved to PostgreSQL, /config no longer holds your data and you need a pg_dump instead, with no supported path back to SQLite.

Derived backup shape

SQLite backup. sqlite3 <db> ".backup out.db" while running, or stop the container and copy. A live cp of a WAL-mode SQLite file can restore corrupt.

Traps and surprises#

Split mounts turn every import into a copy

If /downloads and /tv are separate Docker volumes, they are different filesystems inside the container even when they share a disk on the host. Sonarr then cannot hardlink and falls back to copying, doubling disk usage and stalling seeding. Mount one parent (for example /data) and put both subdirectories under it. Check Activity, History on an import: it says whether the file was hardlinked or copied.

Anime absolute numbering versus TVDB seasons

Release groups number anime continuously (episode 137) while TheTVDB splits it into seasons (S04E12). Sonarr converts using scene mappings maintained upstream, and when a show is remapped or a group renumbers mid-season, episodes import to the wrong slot and overwrite good files. Set the series type to Anime, verify a few imports manually after adding a long-running show, and expect to correct mappings occasionally.

Authentication became mandatory in v4

v4 requires AuthenticationRequired and AuthenticationMethod in config.xml. A v3 config carried forward with authentication disabled will not start, and the error is not obvious if you are watching a container restart loop. Set the method before upgrading, and note that Disabled for Local Addresses still exists as an option but is a decision, not a default.

PostgreSQL is a one-way door

v4 supports PostgreSQL and it genuinely helps instances tracking thousands of series. There is no supported migration back to SQLite, so switching means committing or rebuilding the instance from scratch. Migration in is done with pgloader against sonarr.db. Unless you have a measured problem with SQLite locking, staying on the default keeps backup and restore to a file copy.

Unmonitor Deleted Episodes changes what returns

Sonarr can automatically unmonitor episodes whose files you delete. If you clear space by deleting old episodes with that setting on, Sonarr stops trying to fetch them, which is either exactly what you wanted or a silently shrinking library. Decide per instance, and remember that a media server deleting files through its own UI triggers the same path.

Specifications#

Category
Media servers and libraries
Licence
GPL-3.0 (Copyleft)
Written in
C# / .NET
First release
2013
Maturity
Mature
Datastore
SQLite (PostgreSQL optional)
Default ports
8989
Ships as
docker, deb package, native binary, windows installer
arm64 builds
Yes
Identity
Local accounts only. Forms or basic login against a local user only, mandatory since v4; there is no LDAP or OIDC, so SSO means a forward auth proxy, and the API key bypasses it entirely for any client that has it.
Replaces
SickBeard, Cable DVR, Netflix
Project site
sonarr.tv
Source
github.com/Sonarr/Sonarr
Documentation
wiki.servarr.com/sonarr

Alternatives to Sonarr#

Everything else in media servers and libraries, closest in operational weight first.

ToolOps loadIdle RAMLicence
Radarr3, Moderate200 MBGPL-3.0
Audiobookshelf2, Light200 MBGPL-3.0
Calibre-Web2, Light120 MBGPL-3.0
Emby2, Light350 MBProprietary
Jellyfin2, Light280 MBGPL-2.0-only
Jellyseerr2, Light220 MBMIT

Where Sonarr comes up elsewhere#

Head to head

Migration guides

Sources#

Facts on this page were checked against the project's own material. Where a number is our own estimate rather than a published figure, the text says so.

  1. Sonarr releases
  2. Sonarr v4 FAQ
  3. Sonarr v4 release announcement
  4. PostgreSQL setup documentation
  5. Docker installation guidance
  6. Servarr Docker path and hardlink guide

Published . Last reviewed . Found something out of date? Tell us and we will fix it and log the change.