Table of contents
Open Table of contents
Introduction
Ever dreamed of creating your own Netflix-like streaming service but without the monthly subscription guilt? Well, me too! It all started when a friend casually mentioned this thing called Usenet (what’s that, a secret society of downloaders? Find out here). After falling down the rabbit hole, I discovered the magical world of the Arr stack —a suite of tools that automates the downloading, organizing, and streaming of media.
Turns out, building a streaming service for my local network and the internet was easier than I thought (well, sort of—there were a few “why is this not working” moments). Let me show you how I did it!
Hardware and Software
First, let’s talk tools of the trade:
Hardware
- Raspberry Pi 4B (8GB RAM): My trusty workhorse running Tailscale and Pi-hole.
- Raspberry Pi 5 (8GB RAM + 512GB SSD): The star of the show, dressed up in an Argon Neo 2 case.
Software
- Raspberry Pi OS: It’s stable, it’s lightweight, and it works.
- Docker: Containers are like Tupperware for software—everything neatly packed and reusable.
- Tailscale: For remote access without the “IT support call to self.”
- Cloudflare: To make
jellyfin.mydomain.comsound cooler than an IP address.
Building the Dream: Setting Up the Arr Stack
Now comes the fun part—turning all that gear into a content powerhouse!
-
Folder Setup: Create directories for organizing movies and TV shows.
-
The Team Roster:
- SABnzbd: Your download client for usenet.
- Sonarr: Handles TV shows with precision.
- Radarr: The movie whisperer.
- Prowlarr: Indexer controller—think of it as the conductor of the orchestra.
- Jellyfin: Your media server for streaming.
- Jellyseerr: The fancy front desk for content requests.
-
Spin It Up: Using
docker-compose, I deployed everything and linked them up. It’s like assembling a LEGO set but for nerds—pieces snap together beautifully. -
Enjoy the Automation: Want to watch something? Search on Jellyseerr, and the Arr stack takes care of the rest—downloads, organizes, and streams it to Jellyfin.
Making It Internet-Ready (Because Why Not?)
Streaming at home is great, but streaming from anywhere is better. Here’s how I did it:
- Tailscale Magic DNS: Running on the Pi 4B, it’s my gateway to the internet.
- Nginx: Maps the Pi 5’s Jellyfin server to my domain.
- Domain Name: Thanks to Cloudflare, I just type
jellyfin.mydomain.comand voilà—Netflix at my fingertips (without Netflix).
Challenges: Because Nothing Is Perfect
Hardware
- Pi 5: The lack of dedicated hardware acceleration can cause issues when streaming certain formats. 4K streaming, in particular, requires careful planning and optimized encoding to avoid performance bottlenecks.
Software
- Deployment Optimization: While the current setup is functional, it could be streamlined further with tools like Ansible or custom Bash scripts to improve automation and reduce manual intervention.
The Verdict
With this setup, you can enjoy a fully automated, self-hosted streaming service tailored to your preferences. While there’s room for improvement, it’s a rewarding project that combines hardware and software skills, offering a great way to explore the capabilities of Raspberry Pi and the Arr stack.
If you’re ready to take control of your media, start building your system today and experience the convenience of having your own personalized streaming service.