Best Self-Hosted Download Management in 2026
Quick Picks
| Use Case | Best Choice | Why |
|---|---|---|
| Best for TV automation | Sonarr | Monitors RSS feeds, grabs episodes automatically, upgrades quality, renames and organizes your library |
| Best for movie automation | Radarr | Sonarr’s fork for movies — same quality automation and organization, purpose-built for films |
| Best torrent client | qBittorrent | Feature-rich web UI, excellent *arr integration, VPN-compatible, no ads or bloat |
| Best indexer manager | Prowlarr | Manages all your indexers in one place, syncs directly with Sonarr/Radarr/Lidarr |
| Best lightweight torrent client | Transmission | Minimal resource footprint, clean interface, gets the job done without overhead |
| Best for subtitles | Bazarr | Automatically finds and downloads subtitles for your entire Sonarr/Radarr library |
The Full Ranking
1. Sonarr — Best for Automated TV Show Management
Sonarr is the backbone of any self-hosted TV automation setup. It monitors RSS feeds and indexers, automatically downloads new episodes in your preferred quality, renames files to your naming convention, and organizes them into your media library. When a better quality version of an episode becomes available, Sonarr grabs it and replaces the old one.
Sonarr handles the entire lifecycle: you add a show, set your quality profile (720p, 1080p, 4K), and walk away. New episodes download automatically as they air. Season packs, daily shows, anime — Sonarr handles all of it. It integrates directly with download clients like qBittorrent and Transmission, and uses Prowlarr or Jackett for indexer management.
The web UI is polished and responsive. Calendar views show upcoming episodes, activity feeds track downloads in progress, and the wanted list shows missing episodes. API access enables integration with mobile apps like Lunasea and NZB360.
Pros:
- Fully automated TV show management from search to organized library
- Quality upgrade system — automatically replaces with better releases
- Custom naming and folder structures
- Season pack support and individual episode downloads
- Calendar with upcoming episode tracking
- Direct integration with Prowlarr for indexer management
- Extensive API for mobile apps and third-party tools
- Active development with frequent releases
- Large community and well-documented
Cons:
- Learning curve for quality profiles and custom formats
- Requires a download client and indexer setup alongside it
- Can be aggressive on indexers if misconfigured (rate limiting)
- No built-in download capability — depends on external clients
Best for: Anyone who watches TV shows regularly and wants every episode downloaded, renamed, and organized automatically.
Resources: ~512 MB RAM, low CPU usage, minimal disk for the application itself.
Read our full guide: How to Self-Host Sonarr
2. Radarr — Best for Automated Movie Management
Radarr does for movies what Sonarr does for TV shows. It is a fork of Sonarr adapted specifically for movie collection management. Add movies to your watchlist, set quality preferences, and Radarr searches indexers, grabs the best available release, downloads it through your torrent or Usenet client, and organizes it in your library.
Radarr’s quality profile system lets you define exactly what you want: minimum quality (1080p), preferred quality (4K Remux), and custom formats to prioritize or avoid specific release characteristics (HDR, Atmos, x265). It monitors for upgrades and automatically replaces files when a better release appears.
The UI mirrors Sonarr’s design, so if you know one, you know the other. Discovery features suggest popular and trending movies, and integration with lists (Trakt, IMDb, StevenLu) lets you automatically add movies based on external sources.
Pros:
- Fully automated movie downloading and organization
- Quality upgrade system with custom format scoring
- List integration (Trakt, IMDb, StevenLu) for automatic additions
- Discovery features for finding new movies
- Same UI paradigm as Sonarr — learn one, know both
- Direct Prowlarr integration for indexer management
- Extensive API for mobile apps
- Active development, large community
Cons:
- Quality profile configuration can be complex for new users
- Custom formats have a steep learning curve
- Requires external download client and indexer setup
- Can trigger rate limits on indexers if searches are too aggressive
Best for: Movie collectors who want automated downloads with quality upgrades and organized libraries.
Resources: ~512 MB RAM, low CPU usage, minimal disk for the application itself.
Read our full guide: How to Self-Host Radarr
3. qBittorrent — Best Torrent Client for Self-Hosting
qBittorrent is the best self-hosted torrent client for the vast majority of users. It provides a full-featured web UI, native integration with the *arr stack, VPN compatibility, and zero ads or bundled software. It replaces uTorrent, BitTorrent, and every other desktop client that has been ruined by advertising and crypto-mining.
qBittorrent’s web UI is fully functional — you can manage torrents, set speed limits, configure categories, and monitor everything from a browser. The built-in search engine queries multiple torrent sites. RSS feed support enables automated downloading based on filters. Sequential downloading is available for streaming files before they finish.
VPN integration is straightforward using Gluetun as a network container. Route qBittorrent’s traffic through any VPN provider while keeping the rest of your stack on the regular network. The *arr apps connect to qBittorrent’s API directly, making it the default choice for automated media setups.
Pros:
- Full-featured web UI accessible from any browser
- Native *arr stack integration (Sonarr, Radarr, Lidarr, etc.)
- VPN-compatible via Gluetun network container
- Built-in torrent search engine
- RSS feed downloading with filters
- Category management for organized downloads
- Sequential downloading support
- No ads, no bundled software, fully open source
- Active development, massive community
Cons:
- Default password is temporary and must be retrieved from logs on first run
- Slightly higher resource usage than Transmission
- Web UI can feel sluggish with thousands of active torrents
- Some advanced settings require editing the config file directly
Best for: Everyone. qBittorrent is the default recommendation for any self-hosted torrent client, especially when running the *arr stack.
Resources: ~200-400 MB RAM depending on active torrents, low CPU unless actively downloading.
Read our full guide: How to Self-Host qBittorrent
4. Prowlarr — Best Indexer Manager
Prowlarr is a centralized indexer manager that eliminates the tedium of configuring indexers separately in every *arr app. Add your torrent trackers and Usenet indexers to Prowlarr once, and it syncs them automatically to Sonarr, Radarr, Lidarr, Readarr, and any other connected application.
Prowlarr replaced Jackett as the recommended indexer proxy in the *arr ecosystem. The key difference: Prowlarr integrates natively with the *arr apps. Instead of copy-pasting API keys and Torznab URLs, Prowlarr pushes indexer configurations directly to connected apps. Add a new tracker to Prowlarr, and it appears in Sonarr and Radarr within seconds.
For indexers behind Cloudflare protection, Prowlarr supports FlareSolverr as a captcha-solving proxy. The search interface lets you test indexers and run manual searches across all configured sources simultaneously.
Pros:
- Native integration with all *arr apps — no API key juggling
- Supports both torrent trackers and Usenet indexers
- Automatic sync of indexer configs to connected apps
- FlareSolverr support for Cloudflare-protected sites
- Built-in search across all indexers
- Indexer statistics and health monitoring
- Active development by the Servarr team (same people behind Sonarr/Radarr)
Cons:
- Only useful if you run at least one other *arr app
- Some niche trackers may not be supported yet
- Requires indexer accounts — Prowlarr manages, not provides
Best for: Anyone running Sonarr, Radarr, or any *arr stack app. Prowlarr should be your first install before configuring indexers anywhere else.
Resources: ~256 MB RAM, very low CPU, minimal disk.
Read our full guide: How to Self-Host Prowlarr
5. Transmission — Best Lightweight Torrent Client
Transmission is the minimalist’s torrent client. It uses roughly half the RAM of qBittorrent, has a clean web UI, and does exactly what a torrent client should do without extra features you may never use. If you want a download client that stays out of the way and just works, Transmission is the pick.
Transmission’s web UI is basic but functional. It handles downloading, seeding, speed limits, and peer management. It supports watch directories (drop a .torrent file in a folder and it starts automatically) and integrates with the *arr stack through its RPC API.
The trade-off for simplicity is fewer features. No built-in search engine, no RSS feed support, and the web UI is less polished than qBittorrent’s. Alternative web UIs like Flood and Combustion can be swapped in via the TRANSMISSION_WEB_HOME environment variable if the default interface feels too bare.
Pros:
- Very lightweight — ~100-200 MB RAM
- Clean, simple web interface
- Works with the *arr stack (Sonarr, Radarr, etc.)
- Watch directory for automatic torrent additions
- Supports alternative web UIs (Flood, Combustion, Kettu)
- Stable and battle-tested over many years
- Low attack surface due to simplicity
Cons:
- No built-in search engine
- No RSS feed support (unlike qBittorrent)
- Default web UI is basic
- Fewer configuration options than qBittorrent
- VPN setup requires more manual configuration
Best for: Users who want a minimal, reliable torrent client with low resource usage. Good choice for Raspberry Pi or other resource-constrained hardware.
Resources: ~100-200 MB RAM, very low CPU, minimal disk.
Read our full guide: How to Self-Host Transmission
6. Bazarr — Best for Automated Subtitles
Bazarr is the subtitle companion for the *arr stack. It connects to Sonarr and Radarr, scans your media library, and automatically downloads matching subtitles from providers like OpenSubtitles, Addic7ed, and Subscene. If you watch content in multiple languages or need subtitles for non-native audio, Bazarr eliminates the manual search.
Bazarr monitors your library continuously. When Sonarr adds a new episode or Radarr grabs a movie, Bazarr detects it and finds subtitles. It supports multiple languages simultaneously, subtitle scoring to pick the best match, and automatic upgrades when better subtitles become available.
The critical setup requirement: Bazarr’s media volume paths must exactly match the paths used by Sonarr and Radarr. If Sonarr maps /data/tv:/tv, Bazarr must use the identical mapping. Path mismatches are the number one cause of Bazarr failing to locate or save subtitle files.
Pros:
- Fully automated subtitle downloading
- Integrates directly with Sonarr and Radarr
- Multiple language support
- Subtitle scoring and upgrade system
- Supports 20+ subtitle providers
- Anti-captcha integration for protected providers
- Episode and movie monitoring with continuous scanning
Cons:
- Requires Sonarr and/or Radarr — not a standalone tool
- Path mapping must exactly match other *arr apps (common misconfiguration)
- Some subtitle providers require paid accounts or anti-captcha services
- Subtitle quality varies by provider and content popularity
Best for: Anyone running Sonarr or Radarr who watches content requiring subtitles — foreign films, anime, non-native language content, or accessibility needs.
Resources: ~256-512 MB RAM, low CPU, minimal disk.
Read our full guide: How to Self-Host Bazarr
7. Jackett — Legacy Indexer Proxy
Jackett translates queries from Sonarr, Radarr, and other *arr apps into tracker-specific requests. It was the original solution for connecting private torrent trackers and Usenet indexers to the *arr ecosystem, and it still works reliably. However, Prowlarr has largely replaced it as the recommended option.
Jackett supports over 700 trackers and indexers, which is its main advantage — if you use a niche tracker that Prowlarr does not yet support, Jackett probably does. Configuration involves adding trackers in Jackett’s web UI, then copy-pasting the Torznab feed URL and API key into each *arr app that needs it.
That manual URL and API key process is exactly why Prowlarr is preferred. Prowlarr pushes indexer configs directly to connected apps, eliminating the copy-paste workflow. But Jackett remains actively maintained and is a solid fallback if Prowlarr does not support a tracker you need.
Pros:
- Supports 700+ trackers and indexers (widest compatibility)
- Actively maintained with frequent updates
- Stable and well-tested over many years
- Works with any app that supports Torznab/Potato API
- Manual search interface in the web UI
Cons:
- No native *arr integration — requires manual API key setup per app
- Adding or changing indexers means updating every connected app
- Prowlarr does the same job with better integration
- No automatic sync with *arr apps
Best for: Users with niche trackers not yet supported by Prowlarr. For everyone else, use Prowlarr instead.
Resources: ~256-512 MB RAM (JVM-based), low CPU, minimal disk.
Read our full guide: How to Self-Host Jackett
Full Comparison Table
| Feature | Sonarr | Radarr | qBittorrent | Prowlarr | Transmission | Bazarr | Jackett |
|---|---|---|---|---|---|---|---|
| Primary function | TV automation | Movie automation | Torrent client | Indexer manager | Torrent client | Subtitle manager | Indexer proxy |
| License | GPL-3.0 | GPL-3.0 | GPL-2.0 | GPL-3.0 | GPL-2.0/3.0 | GPL-3.0 | GPL-2.0 |
| Written in | C# | C# | C++ | C# | C | Python | C# |
| Docker image | LinuxServer.io | LinuxServer.io | LinuxServer.io | LinuxServer.io | LinuxServer.io | LinuxServer.io | LinuxServer.io |
| Default port | 8989 | 7878 | 8080 | 9696 | 9091 | 6767 | 9117 |
| RAM usage | ~512 MB | ~512 MB | ~200-400 MB | ~256 MB | ~100-200 MB | ~256-512 MB | ~256-512 MB |
| External database | No (SQLite) | No (SQLite) | No | No (SQLite) | No | No (SQLite) | No |
| Web UI | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Mobile apps | Lunasea, NZB360 | Lunasea, NZB360 | qBittorrent Remote | None | Transmisson Remote | None | None |
| API | REST | REST | Web API | REST | RPC | REST | REST |
| *Native arr sync | N/A | N/A | N/A | Yes | N/A | Yes (Sonarr/Radarr) | No (manual) |
| Active development | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
The *arr Stack Explained
The *arr stack is a collection of applications that work together to automate media downloading. Each tool handles one part of the pipeline, and they communicate through APIs. Here is how they fit together:
┌─────────────┐
│ Prowlarr │ Manages indexers for
│ (indexers) │ the entire stack
└──────┬──────┘
│ syncs indexers to
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Sonarr │ │ Radarr │ │ Lidarr │
│ (TV) │ │ (Movies) │ │ (Music) │
└─────┬────┘ └─────┬────┘ └─────┬────┘
│ sends │ sends │ sends
│ downloads │ downloads │ downloads
▼ ▼ ▼
┌──────────────────────────────────────┐
│ qBittorrent / Transmission │
│ (download client) │
└──────────────────────────────────────┘
│ completed files
▼
┌──────────────────────────────────────┐
│ Media Library │
│ /movies /tv /music │
└──────────────────┬───────────────────┘
│ scans library
▼
┌─────────────┐
│ Bazarr │ Downloads subtitles
│ (subtitles) │ for TV + Movies
└─────────────┘
The data flow works like this:
-
Prowlarr holds your indexer configurations (torrent trackers, Usenet indexers) and pushes them to Sonarr, Radarr, and any other connected *arr app.
-
Sonarr and Radarr search those indexers for content matching your library. When a matching release is found, they send the download to your torrent client (qBittorrent or Transmission) or Usenet client (SABnzbd, NZBGet).
-
qBittorrent or Transmission handles the actual downloading. Once complete, the *arr app detects the finished download, moves and renames the file into your media library.
-
Bazarr monitors the media library. When new files appear, it searches subtitle providers and downloads matching subtitles.
-
Optionally, a media server like Jellyfin or Plex scans the same library to serve content to your devices.
Shared Volume Paths Are Critical
The single most important configuration detail in the *arr stack is consistent volume paths. Every application that touches media files must see the same directory structure. If Sonarr sees your TV shows at /tv inside its container, then qBittorrent must also have the download completion directory accessible, and Bazarr must see /tv at the same host path.
The recommended approach is a single root data directory on the host:
/data/
├── torrents/ # qBittorrent downloads here
│ ├── movies/
│ └── tv/
├── movies/ # Radarr moves completed movies here
└── tv/ # Sonarr moves completed episodes here
Then mount /data into every container that needs it. This avoids cross-device moves (which require copying instead of instant hardlinks) and keeps path mapping simple.
Running the Full Stack
A combined Docker Compose file for the core stack (Prowlarr + Sonarr + Radarr + qBittorrent + Bazarr) uses approximately 2-3 GB of RAM total. Each service runs its own container with its own config volume, but they share a Docker network for API communication and share data volumes for media files.
Setup order matters:
- Start the download client (qBittorrent or Transmission) first
- Start Prowlarr and add your indexers
- Start Sonarr and Radarr, connect them to the download client
- Connect Prowlarr to Sonarr and Radarr (Prowlarr pushes indexers to them)
- Start Bazarr last, connect it to Sonarr and Radarr
Individual setup guides for each app walk through the complete configuration. See the Related section below for links to every guide.
How We Evaluated
Each tool was evaluated against these criteria:
- Reliability: Does it run 24/7 without intervention? Does it handle errors gracefully?
- Integration: How well does it work with the rest of the *arr stack and download clients?
- Resource usage: RAM, CPU, and disk requirements for typical workloads.
- Docker support: Quality of official or community Docker images. Ease of deployment with Docker Compose.
- Web UI quality: Is the interface functional, responsive, and usable?
- API completeness: Can other tools and mobile apps integrate with it?
- Community and development: Is the project actively maintained? How responsive is the community?
- Documentation: Are setup instructions clear and current?
All tools were tested with Docker Compose using LinuxServer.io images where available, on Ubuntu 22.04 with 4 GB RAM.
Frequently Asked Questions
What is the *arr stack and which apps do I need?
The *arr stack is a collection of apps that automate media management. At minimum, you need: a download client (qBittorrent or Transmission), an indexer manager (Prowlarr), and one or more media managers — Sonarr for TV shows, Radarr for movies, Lidarr for music. Add Bazarr for subtitles. All communicate via API and run as Docker containers.
How much RAM does the full *arr stack need?
Each *arr app uses about 100-200 MB RAM. A typical stack (Sonarr + Radarr + Prowlarr + Bazarr + qBittorrent) runs on about 1-1.5 GB total. A Raspberry Pi 4 with 4 GB RAM can handle the full stack, though indexer searches will be slower than on x86 hardware.
Do I need Prowlarr AND Jackett?
No — pick one. Prowlarr is the modern replacement for Jackett with direct integration into Sonarr, Radarr, and Lidarr (one-click sync of indexers). Jackett is older and requires manual configuration of each indexer in each *arr app. Prowlarr is recommended for new setups.
Can I use a VPN with qBittorrent in Docker?
Yes — use a VPN container (like gluetun) and route qBittorrent’s traffic through it. The typical setup uses Docker’s network_mode: "service:gluetun" to force all qBittorrent traffic through the VPN. This keeps your *arr stack on your local network while only the download client uses the VPN.
How do I manage storage with the *arr stack?
Use hardlinks and a unified mount point. Create a directory structure like /data/media/tv, /data/media/movies, /data/downloads/complete and mount the parent /data volume to all containers. This allows Sonarr and Radarr to create hardlinks instead of copying files, saving disk space and time. See each app’s guide for volume configuration.
Can I access the *arr stack remotely?
Yes — put the web UIs behind a reverse proxy with authentication. Each app has its own web UI with API key authentication. Mobile apps like Lunasea and NZB360 connect via the API for remote management. For secure remote access without exposing ports, use Tailscale or Cloudflare Tunnel.
Related
- How to Self-Host Recyclarr with Docker
- How to Self-Host Sonarr
- How to Self-Host Radarr
- How to Self-Host qBittorrent
- How to Self-Host Prowlarr
- How to Self-Host Transmission
- How to Self-Host Bazarr
- How to Self-Host Jackett
- Sonarr vs Radarr: Which Do You Need?
- Docker Compose Basics
- Reverse Proxy Setup
- Best Self-Hosted Media Servers
- Backup Strategy
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments