bindery

bindery

Docker app from Selfhosters

Overview

Bindery is a self-hosted ebook and audiobook automation server. Search OpenLibrary, Hardcover, and DNB for books and authors; monitor authors and series; hand requests to your *arr-style indexers and download client (NZB or torrent); import completed files into your library with proper metadata; serve an OPDS 1.2 catalogue to e-readers. Distroless image, Apache 2.0. First-run: open the WebUI to create an admin account. No env vars required for auth. Default user is 99:100. If you change PUID/PGID, also change the --user value in Extra Parameters; the container will fail fast if they don't match.

Runtime arguments

Web UI
http://[IP]:[PORT:8787]/
Network
bridge
Privileged
false
Extra Params
--user 99:100

Template configuration

WebUIPorttcp

HTTP port for the web interface, API, and OPDS catalogue.

Target
8787
Default
8787
Value
8787
ConfigPathrw

SQLite database, image cache, and backups. Must persist across container restarts.

Target
/config
Default
/mnt/user/appdata/bindery
Value
/mnt/user/appdata/bindery
BooksPathrw

Imported ebook library root. Bindery moves/copies/hardlinks files here from Downloads after import.

Target
/books
AudiobooksPathrw

Optional separate root for imported audiobook folders. Leave blank to keep audiobooks under /books. If you map a path here, also set BINDERY_AUDIOBOOK_DIR=/audiobooks below.

Target
/audiobooks
DownloadsPathrw

Watch folder for completed downloads. Should match the path SABnzbd / qBittorrent writes to.

Target
/downloads
Log LevelVariable

Log verbosity: debug, info, warn, error.

Target
BINDERY_LOG_LEVEL
Default
info|debug|warn|error
PUIDVariable

UID the container will validate against. Must match the UID half of the --user flag in Extra Parameters. Default 99 = Unraid 'nobody'.

Target
BINDERY_PUID
Default
99
Value
99
PGIDVariable

GID the container will validate against. Must match the GID half of the --user flag in Extra Parameters. Default 100 = Unraid 'users'.

Target
BINDERY_PGID
Default
100
Value
100
Audiobook DirectoryVariable

Set to /audiobooks if you mapped a separate Audiobooks path above. If blank, audiobooks are imported into /books alongside ebooks.

Target
BINDERY_AUDIOBOOK_DIR
URL BaseVariable

Subpath prefix when hosting behind a reverse proxy at /bindery (e.g. SWAG / Nginx Proxy Manager). Leave blank for root.

Target
BINDERY_URL_BASE
Trusted ProxiesVariable

Comma-separated CIDR list of reverse proxies allowed to set X-Forwarded-* headers. Required if you rely on X-Forwarded-For for auth or rate limits.

Target
BINDERY_TRUSTED_PROXY
Cookie SecureVariable

Session cookie Secure flag: auto (detect TLS via X-Forwarded-Proto), always, or never.

Target
BINDERY_COOKIE_SECURE
Default
auto|always|never
Download Path RemapVariable

Comma-separated from:to pairs, used when SABnzbd / qBittorrent reports a path that doesn't match what Bindery sees. Example: /downloads:/data/downloads

Target
BINDERY_DOWNLOAD_PATH_REMAP
Allow Private Webhook URLsVariable

Set to 1 to allow webhook destinations on RFC1918 networks (ntfy / Home Assistant on the LAN). Default false blocks them as SSRF protection.

Target
BINDERY_NOTIFICATIONS_ALLOW_PRIVATE
Default
false
Value
false
API Key SeedVariable

One-time seed for the persisted API key. Leave blank to let Bindery generate one on first boot; rotate from the WebUI afterwards.

Target
BINDERY_API_KEY

Details

Repository
ghcr.io/vavallee/bindery:latest
Last Updated2026-05-31
First Seen2026-05-10

Run Bindery on Unraid.

Bindery is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.