my-homelab-configs/infra/arr-stack/docs/bootstrap.md

2.5 KiB

ARR Stack Bootstrap Notes

This stack is intentionally separate from jeannie, OpenTofu, Argo CD, and the Kubernetes app pipeline.

Storage Layout

All persistent data lives under /data/arr by default:

  • /data/arr/config/<app> for app databases and settings
  • /data/arr/downloads/complete
  • /data/arr/downloads/incomplete
  • /data/arr/downloads/torrents
  • /data/arr/media/movies
  • /data/arr/media/tv
  • /data/arr/media/comics
  • /data/arr/media/manga

Use the same in-container paths when wiring apps:

  • Radarr root folder: /data/media/movies
  • Sonarr root folder: /data/media/tv
  • qBittorrent completed downloads: /data/downloads/complete
  • qBittorrent incomplete downloads: /data/downloads/incomplete

Initial Run

cd infra/arr-stack
cp .env.example .env
./bootstrap.sh

After first boot, each app writes its own API key into its config. Retrieve the keys from:

grep -h '<ApiKey>' /data/arr/config/radarr/config.xml /data/arr/config/sonarr/config.xml /data/arr/config/prowlarr/config.xml

Then copy the keys into .env.

Run the optional safe baseline configurator:

./configure-arr.py

It configures Radarr and Sonarr root folders and adds qBittorrent as a download client by using the apps' own schemas. It does not configure indexers.

Public Lists

Radarr and Sonarr can use import lists, but most useful providers require user authorization or provider API keys. Do not hard-code third-party credentials or piracy-oriented sources in this repo.

Safe examples to configure from the UI:

  • Radarr: TMDb popular, trending, or collection lists with your TMDb API access
  • Radarr/Sonarr: your own Trakt public lists after authorizing Trakt
  • Sonarr: your own Trakt watched/collection/list sources after authorizing Trakt

Recommended settings for any import list:

  • Set a tag such as public-list or watchlist.
  • Disable automatic search until quality profiles and root folders are correct.
  • Use /data/media/movies for Radarr and /data/media/tv for Sonarr.
  • Keep monitoring conservative until you confirm disk usage and download rules.

Prowlarr indexers and download-client credentials should be configured in the UI or from a local, uncommitted automation file. Keep that material out of Git.

If you want to automate import lists, export RADARR_IMPORT_LISTS_JSON or SONARR_IMPORT_LISTS_JSON to a local JSON file that contains the exact payloads for your authorized providers. examples/import-lists.example.json is only a shape placeholder; do not use it as-is.