v0.1.0
The initial release: the full anime acquisition loop, end to end.
Added
- Acquisition pipeline β add a series from AniList, search a Torznab/Prowlarr
indexer, grab via qBittorrent, and hardlink the finished file into a
Plex/Jellyfin-ready library (seeding-safe, correctSeason 01naming). - Web UI (embedded React SPA) β series list, add-series (live AniList search),
per-episode wanted/downloading/have status, release matching + grab, and history. - Runtime settings UI β edit qBittorrent / indexer / library integrations live,
with changes applied without a restart. - Forms authentication β first-run admin setup, session login for the web
UI, and a separate machine API key (X-Api-Key) for dashboards and scripts. - AniList metadata behind a status-aware read-through SQLite cache and a
rate-limit-respecting client (min-interval limiter + 429/Retry-After backoff). - Content-agnostic core keyed on
WantedItem, with pluggableIndexer/
DownloadClient/LibraryTargetinterfaces. - Typed HTTP API under
/api/v1with an OpenAPI 3.1 spec
(transpondarrd openapiprints it) and a public, unauthenticated health
endpoint (GET /api/v1/health). - Docker runtime β multi-arch distroless image that fixes
/config
ownership automatically: it starts as root, chowns the config volume, and
drops toPUID/PGID(default1000:1000) before serving, so there's no
pre-creating the bind-mount dir withsudo chown(pass--userto skip the
root phase; an unwritable data dir fails fast with an actionable error).
Ships with a built-in containerHEALTHCHECK(the binary probes its own
health endpoint β no shell or curl needed) and an example
docker-compose.yml. - Packaging β single static binary (
CGO_ENABLED=0), GoReleaser +
GitHub Actions CI/release, with SPDX SBOMs and build-provenance attestations
for the release archives and the Docker image.
Known limitations
- Indexing is via Torznab/Prowlarr only currently.
- Season-pack / batch releases are recognised but not yet importable (they are
surfaced unmatched with a clear reason rather than grabbed). - No remote path-mapping: qBittorrent and Transpondarr must resolve the same paths
(satisfied by mounting the shared volume identically). - A torrent removed from the client out-of-band is not yet reconciled (a torrent that
errors in the client is marked failed and the item becomes grabbable again).