Automated media server with VPN on Raspberry Pi using Sonarr, Radarr, Prowlarr, Bazarr, Jellyfin, and RDTClient.
- Docker and Docker Compose installed
- Real-Debrid and/or TorBox accounts with API keys
- Mullvad VPN account (get WireGuard config from https://mullvad.net/en/account/wireguard-config)
- External SSD/HDD for media storage (strongly recommended over SD card)
# Mount external drive
sudo mkdir -p /media/storage
sudo chown $USER:$USER /media/storage
# Add to /etc/fstab for auto-mount:
# UUID=YOUR_UUID /media/storage exfat defaults,uid=1000,gid=1000,umask=0022 0 0
sudo mount -a
# Create media directories
mkdir -p /media/storage/media/{downloads,shows,movies}Create .env file with your Mullvad credentials:
MULLVAD_PRIVATE_KEY=your_private_key_from_wireguard_config
MULLVAD_ADDRESSES=10.x.x.x/32
MULLVAD_SERVER_CITY=Madriddocker compose up -dRDTClient - Real-Debrid | TorBox
- Login with
admin/admin(change password immediately) - Settings → Provider: Select "RealDebrid" or "TorBox"
- Enter your API key
- Download Path:
/data/downloads - Mapped Path:
/data/downloads
Important: The categories in Sonarr/Radarr must be sonarr and radarr exactly (not tv-sonarr or movies-radarr).
Prowlarr - http://raspberrypi.local:9696
- Add FlareSolverr proxy (for Cloudflare-protected indexers):
- Settings → Indexers → Add Proxy
- Host:
http://localhost:8191 - Tag:
flaresolverr
- Add indexers: 1337x, EZTV, TorrentGalaxy, YTS, etc.
- For Cloudflare-protected sites, add the
flaresolverrtag
- For Cloudflare-protected sites, add the
- Add apps:
- Sonarr:
http://localhost:8989+ API key - Radarr:
http://localhost:7878+ API key
- Sonarr:
- Click "Sync App Indexers"
Sonarr - http://raspberrypi.local:8989
- Settings → Media Management → Root Folder:
/data/shows - Settings → Download Clients → Add both (Type: qBittorrent):
- TorBox: Host
localhost, Port6501, Categorysonarr, Priority1 - Real-Debrid: Host
localhost, Port6500, Categorysonarr, Priority2
- TorBox: Host
Radarr - http://raspberrypi.local:7878
- Settings → Media Management → Root Folder:
/data/movies - Settings → Download Clients → Add both (Type: qBittorrent):
- TorBox: Host
localhost, Port6501, Categoryradarr, Priority1 - Real-Debrid: Host
localhost, Port6500, Categoryradarr, Priority2
- TorBox: Host
Bazarr - http://raspberrypi.local:6767
- Settings → Providers: Add subtitle providers (SubDivx, OpenSubtitles, Subscene, etc.)
- Settings → Languages: Add your preferred languages
- Settings → Languages: Create a language profile
- Settings → Languages → Default profile for newly added shows: Select "Default"
- Settings → Sonarr: Host
localhost, Port8989, API key - Settings → Radarr: Host
localhost, Port7878, API key
Jellyfin - http://raspberrypi.local:8096
- Complete initial setup wizard
- Add libraries:
- TV Shows:
/data/shows - Movies:
/data/movies
- TV Shows:
- Samsung TV app: Use https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer for one-click installation
Homarr - http://raspberrypi.local:5000
See HOMARR.md for complete setup guide with integrations and widgets.
- Search: Add a show in Sonarr or movie in Radarr
- Find: Prowlarr searches all configured indexers
- Send: Sonarr/Radarr sends the torrent to RDTClient (TorBox first, then Real-Debrid)
- Cloud Download: RDTClient adds torrent to your debrid service (they download it on their servers)
- Local Download: RDTClient downloads the completed file to
/data/downloads/sonarror/data/downloads/radarr - Import: Sonarr/Radarr automatically detects the completed download and creates a hardlink to
/data/showsor/data/movies - Subtitles: Bazarr automatically downloads subtitles for the imported content
- Watch: Content appears in Jellyfin instantly
- Sonarr: http://raspberrypi.local:8989
- Radarr: http://raspberrypi.local:7878
- Prowlarr: http://raspberrypi.local:9696
- Bazarr: http://raspberrypi.local:6767
- Jellyfin: http://raspberrypi.local:8096
- RDTClient (Real-Debrid): http://raspberrypi.local:6500
- RDTClient (TorBox): http://raspberrypi.local:6501
- Homarr: http://raspberrypi.local:5000