Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 19:36
· 130 commits to main since this release

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, correct Season 01 naming).
  • 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 pluggable Indexer /
    DownloadClient / LibraryTarget interfaces.
  • Typed HTTP API under /api/v1 with an OpenAPI 3.1 spec
    (transpondarrd openapi prints 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 to PUID/PGID (default 1000:1000) before serving, so there's no
    pre-creating the bind-mount dir with sudo chown (pass --user to skip the
    root phase; an unwritable data dir fails fast with an actionable error).
    Ships with a built-in container HEALTHCHECK (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).