How to Build a 100% Automated Media Server for Free
Automated Media Stack: Jellyfin, Sonarr, and Prowlarr on Ubuntu
Setting up a home media server doesn't have to be complicated. In this guide, we will deploy a full "Arr" stack using Docker. This setup includes automated downloading, indexing, and a beautiful streaming interface.
🏗️ The Infrastructure
We are using a standard Ubuntu server. This stack includes:
Jellyfin: The media server (like your personal Netflix).
Sonarr: Automates TV show management.
Prowlarr: Manages your indexers and trackers.
qBittorrent: The download engine.
FlareSolverr & Byparr: Bypasses search blocks (Cloudflare).
1. Initial Server Setup
First, update your system and install Docker if you haven't already.
# Update system
sudo apt update && sudo apt upgrade -y
# Install Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
sudo apt install docker-compose-plugin -y
2. Create the Directory Structure
Organization is key for Docker volumes to work correctly.
mkdir -p ~/houssam/p7/{media/{downloads,tv,movies},configs}
cd ~/houssam/p7
3. The Docker Compose Configuration
Create the docker-compose.yml file:
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Africa/Casablanca
- WEBUI_PORT=8080
volumes:
- ./qbittorrent-config:/config
- /home/your_username/houssam/p7/media/downloads:/downloads
ports:
- "8080:8080"
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=1000
- PGID=1000
- TZ=Africa/Casablanca
volumes:
- ./sonarr-config:/config
- /home/your_username/houssam/p7/media/tv:/tv
- /home/your_username/houssam/p7/media/downloads:/downloads
ports:
- "8989:8989"
restart: unless-stopped
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=Africa/Casablanca
volumes:
- ./prowlarr-config:/config
ports:
- "9696:9696"
restart: unless-stopped
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Africa/Casablanca
volumes:
- ./jellyfin-config:/config
- /home/your_username/houssam/p7/media/tv:/data/tvshows
- /home/your_username/houssam/p7/media/movies:/data/movies
ports:
- "8096:8096"
restart: unless-stopped
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- LOG_LEVEL=info
- TZ=Africa/Casablanca
ports:
- "8191:8191"
restart: unless-stopped
Deploy the stack:
docker compose up -d
4. Post-Installation Checklist
🗂️ Step 1: qBittorrent
URL:
http://YOUR_IP:8080Action: Change the default username/password in Settings immediately.
📺 Step 2: Sonarr
URL:
http://YOUR_IP:8989Setup: Add your root folder as
/tv.Connect qBittorrent: Settings → Download Clients → Add qBittorrent.
Host:
qbittorrent(if using Docker network) or your Server IP.
🔍 Step 3: Prowlarr
URL:
http://YOUR_IP:9696Connect Sonarr: Settings → Apps → Add Sonarr.
Server:
http://sonarr:8989API Key: Copy this from Sonarr (Settings → General).
🎬 Step 4: Jellyfin
URL:
http://YOUR_IP:8096Action: Follow the wizard and point your libraries to
/data/tvshowsand/data/movies.
📱 Level Up: Control Everything From Your Phone & TV
The best part of this stack is that you don't need to use a browser once it's set up. You can manage downloads and watch movies using dedicated apps.
1. Watch Anywhere: Jellyfin Mobile & Android TV
The official Jellyfin app is your portal to your movie library.
Mobile: Available on iOS and Android. Enter your server address:
http://YOUR_IP:8096.Android TV: You can install the Jellyfin app directly on your Smart TV, Nvidia Shield, or Chromecast with Google TV for a full cinema experience in your living room.
Pro Tip: For iPad or iPhone, try Swiftfin—it’s a native player that is incredibly fast.
2. Manage on the Go: LunaSea or nzb360
These apps allow you to search for a new movie while you're out and have it ready when you get home.
LunaSea (iOS/Android): Clean and minimal. Add a "New Profile" for Sonarr using your Server IP and API Key.
nzb360 (Android): The power user choice. It supports the entire stack and gives you a beautiful "Coming Soon" calendar.
Extra types :
🔐 Public vs. Private Indexers: Why Quality Matters
When you first set up Prowlarr, you might be tempted to just add every public site you find. However, not all torrents are created equal.
Public Indexers (The "Wild West")
Public sites (like 1337x or The Pirate Bay) are open to everyone.
The Problem: Torrents are often old, "dead" (no seeders), or low quality. Because anyone can upload, you also run a higher risk of downloading fake files or broken releases.
Speed: Since there is no requirement to "seed" (share) back, many people download and immediately stop sharing, leading to slow speeds.
Private Indexers (The "VIP Club")
Private indexers are closed communities that require an account.
The Benefit: These sites have strict rules. Members must maintain a good "ratio" (share as much as they download), which means lightning-fast download speeds and high-quality files that stay alive for years.
Quality Control: Files are often verified by the community to ensure they are high-definition and safe.
🎟️ How to Get Into Private Indexers (For Free)
Most private trackers are "Invite Only," but you don't need to pay for them. Here is how you can get in for free:
Monitor "Open Signups": Many great private trackers open their doors for a few hours every month to let new members in.
Use Reddit: Join the r/OpenSignups community. Set up an alert so you get a notification the moment a high-quality private indexer opens its registration.
Interview/Application: Some elite trackers (like MAM or RED) allow you to join by passing a simple "knowledge interview" about how torrenting works.
Integrating with Prowlarr
Once you get an account on a private site, simply go to Prowlarr > Add Indexer, search for the site name, and enter your API Key or Cookie from that site. Prowlarr will then automatically sync that high-quality source to Sonarr.
That’s it! You now have a high-end streaming service that you own and control completely. Happy watching!
