homelab-blueprint/docker-compose-files/arr-stack/README.md
2026-06-15 10:53:29 +02:00

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/:

  • DOCKERCONFDIR stores application configs on local disk.
  • DOCKERSTORAGEDIR stores 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

  1. Create .env if it does not exist:

    cp -n .env.sample .env
    
  2. 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.

  3. 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
    
  4. 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
    
  5. 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/tun for 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.