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
58 lines
2.5 KiB
Markdown
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).
|