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

78 lines
2.5 KiB
Markdown

# 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/<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
```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 '<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:
```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.