1

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.

Budget estimate: VPN ~$5/mo + Usenet ~$10/mo + Indexer ~$0-15/yr. See the full cost breakdown.
2

Clone the Repo

Get the code on your server.

terminal
$ 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.

What's in the box
compose.yaml All 15 services defined
.env.example Template for your secrets
.cli/ The arr command toolkit
templates/ Config templates for Bazarr, Transmission, LazyLibrarian
3

Configure Your Environment

Copy the example env and fill in your details.

terminal
$ cp .env.example .env
$ nano .env
VariableWhat it does
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).
Never commit your .env — it contains VPN private keys and API secrets. It's already in .gitignore.
4

Set Up Your VPN

All traffic routes through an encrypted WireGuard tunnel for privacy.

A
Get your WireGuard config

Log into your VPN provider's website. Generate a WireGuard configuration file. You need the private key, endpoint address, and server public key.

B
Fill in the .env VPN section

Copy the private key, endpoint, and public key into the corresponding WIREGUARD_* variables.

C
Pick a server

Choose a server that supports port forwarding (ProtonVPN: any P2P server). Netherlands and Switzerland are solid choices.

Kill switch is on by default. If the VPN drops, all outbound traffic is blocked until the tunnel reconnects.
5

Launch the Stack

One command to rule them all.

terminal
# 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.

output
 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
6

Your First Request

Let's add something to your library and see the pipeline in action.

1
Open Jellyseerr

Navigate to http://your-server:5055. Search for a movie or show.

2
Hit Request

Jellyseerr sends the request to Radarr (movies) or Sonarr (TV). They search 12 indexers in parallel via Prowlarr.

3
Best release auto-selected

48 custom formats score each result. The highest-scoring release is grabbed through the encrypted VPN tunnel.

4
Hardlinked & ready

File is renamed, hardlinked to your library (zero extra disk space), artwork fetched, subtitles queued. Jellyfin sees it immediately.

Typical time: 2–10 minutes from request to watching, depending on file size and connection speed.
7

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 them

For 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 click

For 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 minutes
8

Troubleshooting & 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.