2.8 KiB
Arr Stack
Docker media stack with Gluetun, download clients, media managers, Emby, Recyclarr, Unpackerr, and Decluttarr. Run repository commands from the project root.
Appdata Location
This stack is the exception to project-root appdata/:
DOCKERCONFDIRstores application configs on local disk.DOCKERSTORAGEDIRstores shared downloads and media.
The default paths are /opt/arr-stack/appdata and /mnt/unas/arr-data. Complete
the storage deployment guide before starting.
Installation
-
Create
.envif it does not exist:cp -n .env.sample .env -
Set the required storage, identity, VPN, logging, and API key values in
.env. At minimum, review every Arr Stack value near the top of.env.sample. -
Create config directories, verify shared storage, and render the templates:
sudo mkdir -p /opt/arr-stack/appdata/{gluetun,qbittorrent,sabnzbd,prowlarr,radarr,sonarr,bazarr,emby,seerr,recyclarr,unpackerr} sudo chown -R 1000:1000 /opt/arr-stack sudo -u '#1000' touch /mnt/unas/arr-data/.arr-stack-storage ./substitute_env.sh docker-compose-files/arr-stack/config/recyclarr_template.yml /opt/arr-stack/appdata/recyclarr/recyclarr.yml .env ./substitute_env.sh docker-compose-files/arr-stack/template.yaml docker-compose.arr-stack.yml .env -
Validate and start the stack:
docker compose -f docker-compose.arr-stack.yml config --quiet docker compose -f docker-compose.arr-stack.yml up -d -
Verify the containers and VPN:
docker compose -f docker-compose.arr-stack.yml ps docker exec gluetun wget -qO- https://ipinfo.io/ip
Apply Configuration Changes
After changing .env or a template, render the affected file again and
recreate the stack:
./substitute_env.sh docker-compose-files/arr-stack/template.yaml docker-compose.arr-stack.yml .env
docker compose -f docker-compose.arr-stack.yml config --quiet
docker compose -f docker-compose.arr-stack.yml up -d
Initial Setup
Configure Prowlarr, Radarr, Sonarr, download clients, and media paths using
container paths under /data. See Recyclarr for the
quality-profile sync workflow.
Network Requirements
- The host needs
/dev/net/tunfor Gluetun. - Download clients require outbound VPN access.
- Caddy or trusted clients need access to the published application ports.
Troubleshooting
Use the deployment guide for storage and permissions and the troubleshooting guide for stack issues.
Useful Commands
docker compose -f docker-compose.arr-stack.yml logs --tail=100
docker compose -f docker-compose.arr-stack.yml restart <service>
Backup
Back up DOCKERCONFDIR. Shared media and downloads live in DOCKERSTORAGEDIR.