Three streaming services were costing me around 40 CHF a month. Netflix, Disney+, and a third I kept mostly out of habit. Half the content I actually wanted wasn't available in Switzerland anyway — region-locked out of reach or just not there. In early 2025 I cancelled all three and spent that money on a Usenet subscription instead. What I have now is a self-hosted media server running Plex, Sonarr, and Radarr that pulls, organizes, and streams anything I want, automatically, on every device I own.
Why I stopped paying for streaming#
The cost is the obvious part. Swiss Netflix has a noticeably thinner catalog than the US version. Content gets added and removed without warning. If a show gets cancelled mid-season, it sometimes disappears from the platform entirely.
Self-hosting flips the control. I decide what's in my library. Nothing gets removed. The files live on my hardware, accessible from anywhere through Cloudflare Tunnels, at whatever quality I choose — no compression artifacts, no bitrate throttling, no region restrictions.
The stack: six tools, one pipeline#
Everything runs in Docker containers on a dedicated VM inside Proxmox VE. Six services cover the full chain from request to playback.
| Tool | Role | Port |
|---|---|---|
| Plex | Streams your media library to any device | 32400 |
| Seerr | Request interface — search and request movies or TV shows | 5055 |
| Radarr | Movie automation — monitors, grabs, and imports movies | 7878 |
| Sonarr | TV automation — same as Radarr but for series | 8989 |
| Prowlarr | Indexer manager — syncs Usenet sources to Radarr and Sonarr | 9696 |
| SABnzbd | Usenet downloader — fetches the actual files | 8080 |
Plex is the front end. It reads the media folders on my server and presents them as a proper library: artwork, descriptions, episode metadata. Apps are available on every platform: TV, phone, browser. Plex Pass paired with the GTX 1650 in my server enables hardware transcoding, so 4K streams don't put any load on the CPU.
Seerr is what everyone else uses. They log in with their Plex account, search for a movie or show the same way you'd search Netflix, and click request. In February 2026, the Overseerr and Jellyseerr projects merged into Seerr. Functionally nothing changed for a Plex-only setup — it's the same interface with a new Docker image.
Radarr and Sonarr are the automation layer. They hold a queue of wanted titles, search for releases, and handle quality upgrades over time. Sonarr tracks ongoing series episode by episode — new episodes get picked up automatically without touching anything.
Prowlarr manages the Usenet indexers. Add an indexer once in Prowlarr and it syncs to both Radarr and Sonarr via their APIs. Without Prowlarr you'd configure every indexer twice, and manage any changes twice too.
SABnzbd is the downloader. It receives NZB files from Radarr or Sonarr, downloads from Usenet via Frugal Usenet, and drops the finished file in the right folder. From there, Radarr or Sonarr imports it into the library.
How it all connects#
The pipeline is automatic once configured. Here's what happens from a request to a file appearing in Plex:
Seerr → Radarr / Sonarr → Prowlarr → SABnzbd → import → Plex library- Someone searches in Seerr and clicks request.
- Seerr forwards it to Radarr (movies) or Sonarr (TV).
- Radarr or Sonarr asks Prowlarr to search indexers for a matching release.
- The best NZB comes back and gets sent to SABnzbd with a quality tag and target folder.
- SABnzbd downloads and extracts the archive, then notifies Radarr or Sonarr.
- Radarr or Sonarr hard-links the file into the media folder and renames it correctly.
- Plex detects the new file and adds it to the library.
Request to playback takes anywhere from a few minutes to a couple of hours depending on the release. There are no manual steps in between.
Remote access goes through Cloudflare Tunnels: no port forwarding, no open ports on the router, no dynamic DNS needed.
The hardware#
The server runs on a Ryzen 5 5600G with 32 GB of RAM, 18 TB of HDD storage for media, and an NVIDIA GTX 1650 for hardware transcoding. Everything runs on Proxmox VE, which lets me keep the media stack in its own VM, separate from Home Assistant, n8n, and the other services on the same machine.
The GTX 1650 handles multiple simultaneous 4K streams without touching the CPU. Without hardware transcoding, every stream that doesn't match the client's native format gets software-transcoded — that's manageable for one or two streams, but starts to matter fast if you're sharing the server with a few people.
Full hardware details are in the home server post.
Self-hosted vs streaming services#
| Self-hosted | Netflix (Standard) | Plex TV+ | |
|---|---|---|---|
| Monthly cost | ~10 CHF (Frugal Usenet $4.17 + Plex Pass $5.83, annual plans) | CHF 22.90 | Free |
| Content library | Whatever you add | Netflix catalog, region-limited | Curated free catalog |
| Content ownership | Files on your hardware | Licensed, can be removed | Streamed only |
| Privacy | Local, your hardware | Tracked | Tracked |
| Setup required | Significant (one-time) | None | None |
| Hardware required | Yes | No | No |
| Reliability | Depends on your uptime | High | High |
Plex TV+ is worth including because people often confuse it with self-hosted Plex. Plex TV+ is a free, ad-supported streaming tier Plex runs on their own infrastructure. You watch their catalog, not your own files. It's a different product. Useful if you want the Plex interface without running a server.
Is it worth it?#
The initial setup took me a full weekend. Getting Proxmox, ZFS, Docker networking, and six services working together correctly is not trivial. You need to understand how hard links work across bind mounts, how Docker container networking handles hostnames, and how to read logs when something breaks. A Usenet subscription and Plex Pass are additional costs upfront.
Ongoing maintenance is light. Updates are docker compose pull && docker compose up -d. When something breaks it's usually a quality profile that's too strict, or an indexer having downtime — both are quick to diagnose.
The practical break-even on setup time depends on how much you watch and how much the subscriptions were costing. For me it made sense quickly. For someone who watches one or two shows a month, the effort is probably not worth it.
What it's not: a way to avoid all costs, or a drop-in replacement for someone who wants zero maintenance. It's a trade: you own the infrastructure, you get the control, you do the upkeep.
The full setup is documented at /docs/home-server/media-automation — Docker Compose configs, installation steps, and configuration notes for every service in the stack.





