Files
arr-tui/dev/README.md
T
nilsandClaude Opus 5.5 b71659b357 dev/screenshots: the tooling for the README screenshots
take.sh builds arr-tui, starts a fake Radarr, Sonarr and SABnzbd with a
made-up library (catalog.py, server.py, generated posters), and runs the
scene scripts in Ghostty under Xvfb, writing docs/screenshots/. Run on the
same day it reproduces the committed pictures byte for byte. make test
also shellchecks the scripts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 17:05:01 +02:00

58 lines
2.5 KiB
Markdown

# Local test instances
Radarr, Sonarr and SABnzbd in containers (same versions as the author's setup), pre-wired together:
fixed dev API keys, root folders `/media/movies` and `/media/tv`, and SABnzbd registered as the
download client in both (categories `radarr` / `sonarr`).
```sh
dev/up.sh # start + configure (idempotent); needs docker/podman compose
go run ./cmd/arr-tui --config dev/config.json
docker compose -f dev/compose.yaml down # stop; state lives in dev/data (gitignored)
```
| Service | URL | Port |
|---|---|---|
| Radarr | http://127.0.0.1:17878 | 17878 |
| Sonarr | http://127.0.0.1:18989 | 18989 |
| SABnzbd | http://127.0.0.1:18080 | 18080 |
No indexers or Usenet servers are configured, so nothing actually downloads. To get something into
the SABnzbd queue, upload any NZB:
```sh
curl -F name=@some.nzb -F cat=radarr \
"http://127.0.0.1:18080/api?mode=addfile&output=json&apikey=devsabnzbdapikey0000000000000000"
```
Metadata lookups (search) need internet access, since Radarr/Sonarr query their cloud metadata services.
To get an item into the Radarr (or Sonarr) queue as well, add a movie to Radarr, serve an NZB from the
host and push it as a release. Containers reach the host as `host.containers.internal`:
```sh
python3 -m http.server 19191 --bind 0.0.0.0 & # directory containing some.nzb
curl -H "X-Api-Key: devradarrapikey00000000000000000" -H 'Content-Type: application/json' \
-d '{"title":"The.Matrix.1999.1080p.BluRay.x264-DEV","downloadUrl":"http://host.containers.internal:19191/some.nzb","protocol":"usenet","publishDate":"2026-01-01T00:00:00Z"}' \
http://127.0.0.1:17878/api/v3/release/push
```
## Interactive search without a real indexer
`dev/fake-indexer.py` is a tiny Newznab indexer that returns a fixed set of releases for "The Matrix (1999)"
and "Breaking Bad"; Radarr/Sonarr still do their own parsing and approve/reject decisions. Its NZBs are
dummies, so grabbed releases just sit in the SABnzbd queue.
```sh
python3 dev/fake-indexer.py & # listens on :19292
dev/add-indexer.sh # registers it in the dev Radarr and Sonarr
```
Add the movie / series to the dev instances first (e.g. from the TUI), then press `i` on it.
To test with a real indexer, add it in the dev Radarr/Sonarr web UI (Settings, Indexers) instead of pasting
credentials anywhere else.
## Screenshots
`dev/screenshots/take.sh` makes the README screenshots from a fake, made-up library; see
[screenshots/README.md](screenshots/README.md).