Skip to content
Media and Apps

Best Docker Media Apps to Run on a Home NAS

The self-hosted media apps I actually keep running on my NAS, what each one does, and why they earn their spot in the container list.

server, technology, computer, cable, computer technology, it, server, server, server, server, server

My NAS ran nothing but file shares for about two years. Then one wet January weekend I installed Portainer, pulled a single Jellyfin container, and by Sunday night I had a media server my whole household actually used. That one container turned into eleven.

The trap with self-hosting is grabbing every shiny app you read about and drowning your box in half-configured containers. So this is the short, opinionated list: the apps that survived on my Synology DS920+ and later my custom TrueNAS build, what each one really does, and roughly what it costs you in memory.

A quick note before the list. Everything here runs fine under Docker Compose or a NAS container UI, and none of it needs a beefy machine. My DS920+ has 20GB of RAM after an upgrade, but honestly you can run six or seven of these on 8GB if you are not transcoding four streams at once.

1. Jellyfin: the media server itself

This is the heart of the whole setup and the app I would install first, every time. Jellyfin scans your movies and shows, pulls artwork and metadata, and streams them to your TV, phone, or browser. It is fully open source with no paywall on hardware transcoding, which is where it quietly beats the alternatives.

The first time I set it up I skipped enabling hardware acceleration and my CPU pinned at 100% the moment two people watched something at once. Turn on QuickSync or your GPU passthrough in the transcoding settings and a single stream drops from roughly 90% CPU to under 10%.

Expect it to idle around 300-400MB of RAM. The official Jellyfin documentation walks through the exact device mappings you need for hardware transcoding on each platform.

Plex or Emby instead?

If you already pay for Plex Pass and love the polish, keep it. Emby sits in the middle. For a from-scratch build where you own everything and pay nothing, Jellyfin wins for me.

From below of long thin identical blue cables connected to small round electrical connectors

2. Tautulli: know who is watching what

Tautulli watches your media server and tells you everything: who streamed what, from where, on which device, and whether it transcoded. It started as a Plex tool but the modern builds cover Plex and, through workarounds, other servers too.

It sounds like a vanity dashboard until the day your bandwidth is choked and Tautulli shows you cousin Dave is transcoding 4K remux to his phone over cellular. Then it becomes essential. It sips resources, usually under 150MB.

3. Radarr and Sonarr: the automation backbone

These two are a pair, so I count them together. Radarr manages your movie collection and Sonarr your TV shows: they track what you want, monitor for the correct quality, and hand off downloads automatically. Once configured, your library maintains itself.

Be honest with yourself about legal sources here. These tools shine with Usenet indexers and legitimate content you own, and they integrate cleanly with the download client in the next entry.

Budget around 200-250MB each. The setup curve is the steepest on this list, plan for an evening, not ten minutes.

4. Prowlarr: one place to manage indexers

Before Prowlarr I was pasting the same indexer settings into Radarr, then Sonarr, then Lidarr, four times over. Prowlarr manages all your indexers in one spot and pushes them out to every *arr app automatically.

Add an indexer once, and it appears everywhere. Change an API key once. It is the kind of quiet infrastructure app you forget is running, which is exactly the point. Around 150MB of RAM.

5. Overseerr: let the family make requests

This one changed how people in my house use the server. Overseerr gives everyone a clean web page where they search for a movie or show and click request. It talks to Radarr and Sonarr, which then go fetch it.

No more text messages saying "can you add the new season of that cooking show." They request, it appears, everyone is happy. It runs comfortably under 250MB and is genuinely the app that made my family stop asking for a Netflix subscription.

6. qBittorrent: the download client

You need something to actually pull files, and the linuxserver.io qBittorrent image is the one I trust. It has a solid web UI, plays nicely with the *arr apps, and the container versions ship with a built-in kill switch option when paired with a VPN sidecar.

Route it through a VPN container. I use Gluetun in front of it, so if the tunnel drops, downloads stop cold rather than leaking your real IP.

7. Bazarr: subtitles on autopilot

Bazarr fetches subtitles for everything Radarr and Sonarr bring in. Set your languages once and it hunts down matching subtitle files, syncs them, and drops them next to your media.

It is a small quality-of-life app that you only appreciate when it is gone. About 200MB, low effort, high reward.

Putting the memory numbers together

Here is the rough footprint of the core stack so you can plan your NAS RAM before you overcommit.

App Job Idle RAM (approx)
Jellyfin Media server and streaming 300-400MB
Radarr / Sonarr Movie and TV automation 200-250MB each
Prowlarr Indexer management 150MB
Overseerr Media requests 250MB
qBittorrent Download client 200MB
Tautulli / Bazarr Stats / subtitles 150-200MB each

8. Homarr: one dashboard to find them all

Once you have eight containers, remembering which port each web UI lives on gets old fast. Homarr is a self-hosted dashboard where you pin every app as a tile, complete with status indicators showing what is up and what fell over.

It is optional, but the first time you show a guest your single tidy homepage instead of a spreadsheet of IP:port combinations, you will feel like the setup finally grew up. Very light, around 100-150MB.

A sensible order to install these

Do not pull all eleven at once. That is how you end up with a mess you cannot untangle.

  • Start with Jellyfin. Get one movie streaming to your TV. Prove the storage mounts work.
  • Add qBittorrent behind a VPN. Confirm the kill switch actually kills.
  • Layer in Prowlarr, then Radarr and Sonarr. Get one automated download end to end.
  • Finish with the comfort apps: Overseerr, Bazarr, Tautulli, and Homarr.

Each step should work before you move on. If Jellyfin cannot see your files, no amount of automation on top will fix that, it will just hide the problem under three more layers.

What I would tell my past self

Pick a naming and pathing convention on day one and never break it. My biggest time sink across two NAS builds was inconsistent folder mounts between containers, not any single app being hard.

Start small, get one thing streaming, and only add the next container when the last one is boring and reliable. A media stack you understand beats a bigger one you are afraid to touch. That is the whole game, and eleven containers later, mine still just works.

Frequently asked questions

How much RAM do I need to run these Docker media apps on a NAS?

For the core stack of six to seven apps, 8GB is workable if you are not transcoding multiple streams at once. I run eleven containers comfortably on 20GB. The single biggest RAM and CPU cost is Jellyfin transcoding, so enabling hardware acceleration matters far more than adding memory.

Should I use Jellyfin or Plex on my home NAS?

If you want fully free and open source with hardware transcoding included, Jellyfin is the better pick. Plex has a more polished app ecosystem and better remote-streaming setup, but the good bits sit behind a Plex Pass subscription. For a from-scratch build where you own everything, I start people on Jellyfin.

Do I need Portainer or Docker Compose to run these?

You need one way to manage containers, and either works. Synology and QNAP have their own container UIs, Portainer gives you a friendly web dashboard, and Docker Compose lets you define the whole stack in one text file. I prefer Compose because the entire setup lives in a file I can back up and redeploy in minutes.

What order should I install these apps in?

Start with Jellyfin and prove one movie streams to your TV. Then add qBittorrent behind a VPN, then Prowlarr, Radarr, and Sonarr for automation, and finish with Overseerr, Bazarr, Tautulli, and Homarr. Confirming each layer works before adding the next saves hours of debugging.

Is it safe to run a download client on my NAS?

It is safe if you isolate it. Run qBittorrent behind a VPN container like Gluetun with a kill switch so downloads stop the instant the tunnel drops, which prevents your real IP from leaking. Only use it for content you legally own or legitimate Usenet and sources.

Dev Patel, Senior Homelab Writer & Infrastructure Engineer
About the Author

Dev Patel

Senior Homelab Writer & Infrastructure Engineer

Dev Patel is a homelab builder and infrastructure writer with more than a decade of hands-on experience running self-hosted servers at home. He builds, tests, and documents real home server setups covering NAS storage, virtualization, container orchestration, and secure remote access. Dev keeps a live rack in his basement stacked with refurbished enterprise gear, and he learns most of what he writes by breaking things first and fixing them later. His guides focus on the small details that only surface after the first thousand hours of running a homelab, including power draw, thermals, disk failure patterns, and the tiny configuration choices that decide whether a weekend project becomes a five year backbone.

  • Synology
  • QNAP
  • TrueNAS
  • RAID & ZFS
  • Backup strategy

118 published guides View all articles