The Guide
From empty dock to full operation
What You'll Need
Before you set sail, make sure you've got the essentials on board.
A Server
A NAS, mini PC, old desktop, or even a laptop with the battery removed and always plugged in. Anything that runs Docker 24/7 with 4GB+ RAM works.
Docker & Compose
Docker Engine + Docker Compose v2. Some NAS devices include this as a built-in package. Linux users: follow the official install guide.
A VPN Account
A VPN provider that supports WireGuard. We use ProtonVPN (paid plan). Mullvad, AirVPN, and Windscribe also work. This is not optional.
A Usenet Provider
At least one usenet provider (Newshosting, Frugal, etc.) and one usenet indexer (NZBgeek, NZBFinder). Torrent-only setups work too, but usenet is faster and more reliable.
Clone the Repo
Get the code on your server.
$ git clone git@github.com:TrashedPandai/arr-barr.git
$ cd arr-barr This gives you everything: the Docker Compose stack, the CLI tool, config templates, and documentation.
arr command toolkitConfigure Your Environment
Copy the example env and fill in your details.
$ cp .env.example .env
$ nano .env DATA_ROOTWhere all media and downloads live. Single mount = hardlinks work.PUID / PGIDUser/group ID for file ownership. Run id in your terminal to find yours.TZYour timezone. e.g. America/New_York.VPN_*WireGuard credentials from your VPN provider (see next step)..env — it contains VPN private keys and API secrets. It's already in .gitignore.
Set Up Your VPN
All traffic routes through an encrypted WireGuard tunnel for privacy.
Log into your VPN provider's website. Generate a WireGuard configuration file. You need the private key, endpoint address, and server public key.
.env VPN section Copy the private key, endpoint, and public key into the corresponding WIREGUARD_* variables.
Choose a server that supports port forwarding (ProtonVPN: any P2P server). Netherlands and Switzerland are solid choices.
Launch the Stack
One command to rule them all.
# Run the setup wizard (creates directories, copies templates)
$ arr setup
# Start all 15 services
$ arr start
# Check that everything is alive
$ arr health First boot takes a few minutes while containers pull their images. After that, you should see all 15 crew members reporting healthy.
● gluetun ............ tunnel up 23ms
● transmission ........ healthy 41ms
● sabnzbd ............. healthy 38ms
● radarr .............. healthy 52ms
● sonarr .............. healthy 47ms
● jellyfin ............ healthy 31ms
15/15 crew members reporting all systems nominal Your First Request
Let's add something to your library and see the pipeline in action.
Navigate to http://your-server:5055. Search for a movie or show.
Jellyseerr sends the request to Radarr (movies) or Sonarr (TV). They search 12 indexers in parallel via Prowlarr.
48 custom formats score each result. The highest-scoring release is grabbed through the encrypted VPN tunnel.
File is renamed, hardlinked to your library (zero extra disk space), artwork fetched, subtitles queued. Jellyfin sees it immediately.
Invite Friends
Your library is better with friends. Here's how to get your crew onboard.
For Watchers
Create Jellyfin accounts for friends. They stream your shared library through any Jellyfin client — phone, TV, browser, Roku, anything.
Zero setup for themFor Requesters
Give them Jellyseerr access. They browse, request, and track — it shows up in the library automatically. No technical knowledge needed.
They just search and clickFor Operators
Friends who want to run their own stack: fork the repo, follow this guide, and they're live. The CLI handles everything.
Full stack in 30 minutesTroubleshooting & FAQ
Common questions from new crew members.
My download is stuck / not starting
Run arr vpn to check VPN status. If the tunnel is down, downloads are blocked by the kill switch (this is intentional). Check your WireGuard credentials in .env.
Jellyfin says "No compatible streams"
The file needs transcoding but your server can't keep up. Enable hardware transcoding in Jellyfin settings (QSV for Intel, VAAPI for others). Most modern Intel CPUs handle 4K transcoding with ease via QSV.
A service won't start
Run arr logs <service> to see what's wrong. Common causes: port conflict, missing directory, or bad permissions. arr doctor can diagnose most issues automatically.
How do I update everything?
arr update pulls the latest code and recreates containers with new images. Your config and media are never touched — they live in persistent volumes.
Is this legal?
Every tool in the arr-barr stack is 100% legal, open-source software. They are designed for managing and automating personal media libraries. Users are responsible for ensuring their use complies with applicable copyright laws in their jurisdiction. The VPN provides network privacy as a standard security practice.
Can I run this on a Raspberry Pi?
Technically possible on a Pi 4/5, but not recommended. The arr apps are memory-hungry and transcoding needs real CPU/GPU power. A used mini PC or NAS is a much better experience.
How much disk space do I need?
Depends on your library goals. A starter library of ~100 movies + ~30 shows in 1080p runs about 2–3 TB. Hardlinks mean downloads and library files share the same disk space — no duplication.
You're ready to sail
Questions? Check the docs or dig into the architecture.