# ARR Stack Bootstrap Notes This stack is intentionally separate from `lab.sh`, OpenTofu, Argo CD, and the Kubernetes app pipeline. ## Storage Layout All persistent data lives under `/data/arr` by default: - `/data/arr/config/` 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 ```bash 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: ```bash grep -h '' /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: ```bash ./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.