mrkeyoor.com_
Tue 06 Oct 04:12 UTC
Self-Hostedevaluationupdated 06 Oct 2026

bindery review

Bindery is a self-hosted manager for ebook and audiobook acquisition, built as a replacement for Readarr. It monitors authors, searches Usenet and torrent indexers, sends releases to download clients, imports the finished files, and keeps metadata from several providers instead of depending on one backend.

Verdict

Our Bindery run passed all 124 tests in 264 seconds after a 74-second build, which is strong evidence for the codebase at commit 87ebea6. Use it if you are replacing Readarr and already understand indexers, download clients, mounts, and ownership. Skip it for magazines, an external SQL database, or a simple reading server; those jobs fall outside its stated design.

We ran it

Lab card: what happened when we ran binderyScreenshot of bindery (github.com/vavallee/bindery)
Install✓ · 20s67 packages
Build✓ · 74s
Tests✓ · 264s124 passed · 0 failed of 124 (go test)
Repo1697 files~419,692 lines of source · 24.1 MB · 18 CI workflows · Dockerfile · tests dir

Answers from our run

Does bindery build from source?

Dependencies installed in 20 seconds (67 packages), and the build succeeded in 74 seconds. We cloned commit 87ebea6 into a clean Debian container with 3 CPUs and no project-specific setup.

Do bindery's tests pass?

Yes: 124 of 124 passed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use bindery?

People who only need to read or stream an existing library: Bindery manages acquisition and pairs with Calibre-Web-Automated or Audiobookshelf rather than replacing them.

What are the alternatives to bindery?

LazyLibrarian, Livrarr, Calibre-Web-Automated. Our Bindery run passed all 124 tests in 264 seconds after a 74-second build, which is strong evidence for the codebase at commit 87ebea6.

Setup4/5Simple container start; useful imports still need careful path wiring
Docs5/5Detailed setup, migration, storage, auth, API, and upgrade guides
Community4/5490 stars, an October 5 push, and active issue and PR traffic
Maturity4/5v1.40.1, 124 passing tests, and a broad integration surface

Who it’s for

Readarr users who want to import their old database instead of rebuilding an author list by hand.
Self-hosters already running Newznab or Torznab indexers and a supported download client.
Ebook and audiobook collectors who want separate roots, quality rules, and one catalogue.
Operators who prefer a single Go binary and SQLite over a service with an external database.

Who it’s NOT for

People who only need to read or stream an existing library: Bindery manages acquisition and pairs with Calibre-Web-Automated or Audiobookshelf rather than replacing them.
Magazine collectors: the roadmap says periodicals are explicitly out of scope because the author-to-book data model does not fit recurring issues.
Teams that require MySQL or PostgreSQL: the project has deliberately chosen SQLite in WAL mode and lists external databases under work it will not do.
Users who will not configure an indexer, download client, three persistent paths, and container permissions: the image starts easily, but it cannot fetch and import a book without that wiring.
Unattended Usenet operators who cannot watch failed grabs until issue 3024 is resolved: the report shows content failures being selected again instead of blocklisted.
Privacy-sensitive operators unwilling to disable telemetry: Bindery sends one daily install ping by default, though the README documents an environment switch that stops it before first boot.

Setup reality

Our sandbox installed commit 87ebea6 in 20 seconds, adding 67 packages. The build succeeded in 74 seconds. Go test finished in 264 seconds with 124 passed and 0 failed of 124.

The first Docker start only needs port 8787 and persistent mounts for config, books, and downloads. Useful operation also requires at least one Newznab or Torznab indexer, a matching download client, an admin account, library rules, and paths both containers can see.

The 24.1 MB checkout held 1,697 files and about 419,692 source lines. It had a Dockerfile, a tests directory, and 18 CI workflow files. The distroless image runs as the UID you assign, so permissions and path remaps deserve attention before imports begin.

Six metadata sources make Bindery a credible Readarr replacement

Bindery exists because Readarr's central metadata backend disappeared. Its answer is architectural: OpenLibrary is the default source, while Google Books, Hardcover, DNB, Audnex, and Audible can enrich or fill gaps. The app monitors authors, searches indexers, sends a chosen release to a download client, and imports the result into an ebook or audiobook root. A Readarr database importer carries authors, indexers, clients, and the blocklist into the new system.

That scope is narrower than the long feature list first suggests. Bindery acquires and organizes books. It does not try to become the best reader or audiobook player. The README describes Calibre-Web-Automated and Audiobookshelf as downstream tools, and the project can hand files or catalogue data to them. This division makes sense: one service decides what to fetch and where it belongs, while another handles the reading experience.

The 124-test run backs up the single-binary pitch

Our sandbox installed commit 87ebea6 in 20 seconds and added 67 packages. The build succeeded in 74 seconds. Go test then completed in 264 seconds with 124 passed and 0 failed of 124. The container was unprivileged, had 3 CPUs and 8 GB of RAM, and held no secrets. We tested repository mechanics, not metadata quality or real download throughput.

The checkout was substantial at 1,697 files, roughly 419,692 lines of source, and 24.1 MB. It included a Dockerfile, a tests directory, and 18 CI workflow files. That is a reassuring amount of visible verification for a project that writes files, stores API keys, and talks to services on a home network. It also tells contributors this is no tiny Go utility despite the single-binary deployment.

What happened when we ran it

Our run produced a clean install, build, and test result at commit 87ebea6. Installation took 20 seconds for 67 packages, the build took 74 seconds, and all 124 Go tests passed in 264 seconds. No supplied result measures search relevance, metadata accuracy, download speed, or the success rate of matching an existing library. Those need your own catalogue and storage layout.

The repository signals were equally concrete. We found 18 CI workflows, a Dockerfile, and a tests directory. The size was 24.1 MB before installed packages. This combination matters more than the binary being easy to launch: an ebook manager can rename, move, copy, or hardlink files, so a regression can damage a carefully arranged library even when the landing page loads. Keep backups and test imports against a sample root.

Port 8787 is easy; the three mounted paths are the work

The quick start maps port 8787 and mounts /config, /books, and /downloads. First load creates the administrator. From there you still need an indexer and a download client whose protocol matches it. Bindery must understand the path reported by that client, see the completed file, and write to the correct library root. Separate containers or machines often require a path remap.

Permissions add one sharp edge. The official image is distroless and cannot change users after it starts, so the Compose user value must match the owner of the mounted files. Hardlinks only work on the same filesystem. Copy mode is safer across mounts but uses more storage. The built-in Diagnose action checks client connectivity, category, path mapping, readability, and hardlink ability, which turns a vague failed import into a specific configuration problem.

One open bug can repeat a failed Usenet grab

Issue 3024, opened October 5, 2026, describes failed NZBGet or SABnzbd content being selected again after the cooldown instead of entering the blocklist. The reporter documented repeated grabs of the same unusable releases. We did not reproduce that network workflow in our sandbox, so this is an upstream report rather than our test result. It is still a concrete reason to watch the queue after enabling unattended search.

The current tracker also shows work around concurrent scans, duplicate review, metadata matching, and import behavior. GitHub listed 134 open issues and pull requests combined on October 6. That total includes active pull requests, not 134 confirmed bugs. Release v1.40.1 arrived on October 5, and the repository was pushed later that day. The maintenance pace is high, with user reports and fixes moving together.

SQLite and daily telemetry are deliberate choices

Bindery uses SQLite in WAL mode and explicitly declines MySQL or PostgreSQL support. For one homelab instance, that removes another service and keeps backup recovery understandable. It also closes the door for teams whose platform rules require a managed database. The docs say every credential stored by Bindery is present in database backups, so those backup files need the same protection as indexer and download-client secrets.

One daily telemetry ping is enabled by default. The documented payload includes a random install ID, version, OS, architecture, deployment method, feature counts, and fixed error-message strings. The project says it excludes library contents, URLs, hostnames, and log attributes. You can disable the ping in settings or set BINDERY_TELEMETRY_DISABLED=true before the first start. That clear opt-out is good; privacy-sensitive deployments should use it deliberately.

Magazines and external databases will stay outside the plan

The roadmap says magazines and periodicals do not fit Bindery's author, book, and edition model. It also rejects an external database and direct shadow-library integrations. These are standing design limits, not missing checkboxes waiting for the next sprint. LazyLibrarian is the closer fit for magazines and comics. Calibre-Web-Automated or Audiobookshelf is better when serving files is the whole requirement.

For the intended Readarr migration, Bindery is easy to recommend for a trial. Our 124 passing tests support confidence in commit 87ebea6, while the Readarr importer and multiple metadata providers address the exact failure that displaced users faced. Start with copied data and one monitored author. If paths, permissions, and failed-download handling behave on your storage, this is the replacement I would keep.

Alternatives

ProjectWhat it isPick it when
LazyLibrarianA long-running book, audiobook, magazine, and comic download manager.pick this instead when magazine or comic support matters more than Bindery's Readarr import and newer interface.
LivrarrA Rust-based ebook and audiobook manager with a smaller, earlier-stage feature set.pick this instead when you want to follow a newer Rust implementation and can accept alpha-stage software.
Calibre-Web-Automated gh↗A Calibre-centered server for ingesting, organizing, and serving an existing ebook library.pick this instead when library serving and Calibre workflows matter more than author monitoring and indexer search.
Audiobookshelf gh↗A self-hosted audiobook and podcast server with listening clients.pick this instead when playback and listening progress are the job; it can also sit downstream of Bindery.

What people are saying

  1. [github-trending] vavallee/bindery

Sources

  1. Bindery repository and README
  2. Bindery quickstart
  3. Bindery roadmap and stated limits
  4. Bindery v1.40.1 release
  5. Issue 3024: failed releases can be grabbed again
  6. Measured commit 87ebea6

More self-hosted reviews

esp32-c3-adblock · ALVR · hysteria · skillbox · vm2api · FounderOS-DEMO · the whole board →