unsubbed.co

Shelfmark

Self-hosted e-books & digital libraries tool that provides interface for searching and requesting book downloads.

Self-hosted book acquisition, honestly reviewed. No marketing fluff, just what you get when you run it yourself.

TL;DR

  • What it is: Self-hosted web interface for searching and downloading books and audiobooks from multiple sources — archive sites, torrents, Usenet, and IRC — in one unified UI [README].
  • Who it’s for: Readers who want to own their digital library without per-book costs, technical hobbyists building a home media stack around Calibre or Audiobookshelf, and anyone tired of DRM-locked ebooks that disappear when a subscription lapses [README].
  • Cost savings: Audible runs $14.95/mo for one credit, Kindle Unlimited $11.99/mo for limited selection. Shelfmark itself is $0. Infrastructure cost is a $5–10/mo VPS or zero if you already run a home server [README].
  • Key strength: Genuinely zero-config for the default use case. Download the docker-compose file, docker compose up -d, open port 8084, and you’re searching. No API keys required to start [README].
  • Key weakness: No independent review data available — this is a relatively young project (formerly CWABD, recently rebranded), and the legal gray zone it operates in keeps mainstream tech press away. What you see in the README is largely what you get; community documentation is thin [README].

What is Shelfmark

Shelfmark is a self-hosted web application for finding and downloading books and audiobooks. It was previously called Calibre Web Automated Book Downloader (CWABD) before being renamed. The project lives at github.com/calibrain/shelfmark, sits at 2,760 stars with 149 forks as of this writing, and is MIT licensed [README].

The pitch is simple: instead of searching Anna’s Archive in one tab, checking LibGen in another, and manually dropping files into your Calibre library, Shelfmark gives you a single web UI that searches across sources, handles the download, and optionally drops the file directly into your Calibre, Calibre-Web-Automated, Grimmory, or Audiobookshelf ingest folder [README].

What makes it more interesting than a simple scraper: it has two distinct search modes. Direct mode searches popular archive sources immediately, no setup required. Universal mode queries metadata providers (Hardcover, Open Library) first to get clean book records, then aggregates download releases from multiple configured sources — useful when you’re searching for audiobooks or need cleaner metadata matching [README].

The project also integrates with Prowlarr (for indexers and download clients), supports IRC book channels natively, handles Usenet via NZBGet or SABnzbd, and includes a built-in Cloudflare bypass for sources that block scrapers [README]. It is, in short, a *arr-style automation tool applied specifically to books.


Why People Choose It

No independent reviews of Shelfmark were available at the time of writing — the project is young enough and niche enough that mainstream review sites haven’t covered it, and the legal context (automated downloading from archive sites) keeps it out of most “best of” roundups. What follows is based on the project’s own positioning and the obvious gaps it fills.

The core use case is people who already run a home media stack. If you have Jellyfin for video, Navidrome for music, and Audiobookshelf for audiobooks, you’ve probably already accepted that self-hosting requires some setup work in exchange for owning your data and eliminating recurring fees. Shelfmark slots into that stack the same way Sonarr handles TV or Lidarr handles music: one web UI, automatic imports, no monthly bill [README].

The multi-user request system addresses a specific friction point that competing tools miss. If you share an Audiobookshelf instance with a spouse or small household, Shelfmark lets other users browse and request books rather than giving them full download access. You get notifications, manage approvals, and maintain control. This is a real feature gap in the alternatives [README].

The OIDC single sign-on support is notable for a project at this star count. Most tools in this category have a binary: no auth (fine for LAN-only) or a basic username/password. Shelfmark supports OIDC SSO, proxy auth (Authelia, Authentik, etc.), and can use your existing Calibre-Web user database [README]. For a self-hosting household that has already standardized on an auth provider, this matters.


Features

Based on the README:

Search and discovery:

  • Direct mode: works out of the box, no API keys, searches archive sources immediately [README]
  • Universal mode: queries Hardcover or Open Library for metadata, then aggregates download releases from configured sources [README]
  • Full audiobook search and download with dedicated audiobook processing [README]
  • Multi-source download: download the same book from multiple sources simultaneously [README]

Download infrastructure:

  • Torrent support (via Prowlarr or direct clients) [README]
  • Usenet support (NZBGet, SABnzbd) [README]
  • IRC book channel support — search and download directly from the UI [README]
  • Cloudflare bypass built in, no external bypasser needed [README]
  • Real-time unified download queue with live status across all sources [README]
  • AudiobookBay scraping source for audiobook torrents [README]

Library integration:

  • Automatic import to Calibre-Web-Automated (point the download volume at the CWA ingest folder) [README]
  • Automatic import to Grimmory [README]
  • Automatic import to Audiobookshelf [README]
  • Library link in UI header pointing to your Calibre-Web or Grimmory instance [README]
  • Customizable download paths and file processing [README]

Multi-user:

  • Built-in user registration and login [README]
  • Request system: users browse and request, admin approves [README]
  • Configurable notifications [README]
  • OIDC SSO, proxy auth, Calibre-Web database auth [README]

Infrastructure:

  • Fully standalone — no external database required by default [README]
  • Docker and Docker Compose deployment [README]
  • PUID/PGID support for correct file permissions [README]
  • Tor routing support (requires NET_ADMIN capability) [README]
  • Environment variable configuration with web UI override [README]

Optional paid acceleration: The README mentions a “Fast Download Key” — a paid account option that bypasses Cloudflare challenges and uses faster direct downloads [README]. This implies a freemium layer on one of the source sites, not a charge from the Shelfmark project itself. The free (default) path still works, just slower on protected sources.


Pricing: SaaS vs Self-Hosted Math

Shelfmark itself: $0. MIT licensed. [README]

Infrastructure: A VPS to run it on costs $5–10/mo (Hetzner, Contabo, DigitalOcean). If you already have a home server, NAS, or Raspberry Pi, it costs nothing beyond electricity.

What you’re replacing:

ServiceMonthlyAnnualWhat you get
Kindle Unlimited$11.99$143.88~4M titles, DRM-locked, exits when you cancel
Audible$14.95$179.401 credit/mo, DRM-locked
Scribd$11.99$143.88Unlimited with throttling, DRM-locked
Shelfmark + VPS$5–10$60–120Files you own, no DRM

The math is obvious on paper. The practical caveat: what you actually get with Shelfmark depends on what sources are configured and what’s available. The reference article format asks for a concrete savings number, but fabricating one here would be dishonest — availability of specific titles varies, and some readers will hit gaps that subscription services fill cleanly. What’s accurate: for anyone reading more than 3–4 books per month who doesn’t care about bestsellers in the first week of release, the economics favor self-hosting significantly.

The “Fast Download Key” mentioned in the README is not priced in the documentation — it references a paid account on one of the source services, not a Shelfmark subscription. If you need faster downloads on protected sources, budget accordingly, but it’s optional [README].


Deployment Reality Check

The install path is about as clean as Docker-based self-hosting gets [README]:

curl -O https://raw.githubusercontent.com/calibrain/shelfmark/main/compose/docker-compose.yml
docker compose up -d

Open http://localhost:8084. Configure settings in the web UI. That’s the whole path for a single-user local install.

What you actually need:

  • Docker and Docker Compose (the only hard prerequisite) [README]
  • A domain and reverse proxy if you want HTTPS and external access (Caddy or nginx — not bundled)
  • Correct volume mounts: /config for database and cache, /books for downloads, and optionally your torrent/Usenet client path mounted identically to the Shelfmark container if you want client-side downloads [README]

Volume gotcha: If you’re using CIFS (Samba) shares as your download destination, the README flags that you need the nobrl mount option to avoid database lock errors [README]. This is a real operational note — miss it and you’ll see intermittent failures that are annoying to diagnose.

Prowlarr integration: If you want torrent and Usenet download clients beyond the built-in scrapers, you’ll need Prowlarr (and the underlying clients like qBittorrent, Deluge, or SABnzbd) set up separately. Shelfmark integrates with them, it doesn’t ship them [README].

IRC support: IRC book channels require you to know the server/channel details and have an account where the source requires registration. The UI handles the download once configured, but the setup assumes familiarity with IRC book distribution (XDCC bots) [README].

Tor routing: Available via the USING_TOR=true environment variable but requires NET_ADMIN capability in your Docker container. Not a default setup; adds complexity and is for specific privacy threat models [README].

For a technical user already running Docker on a VPS or home server: 20–40 minutes to a working Direct-mode install. Add another hour if you’re wiring up Prowlarr, audiobook sources, and the multi-user request system. For a non-technical user following a guide: this is not in scope — there’s no guided setup, no wizard, no hosted option, and the documentation is thin beyond the README. You need someone technical to deploy it for you.


Pros and Cons

Pros

  • Zero-config default path. Direct mode requires no API keys, no account setup, no configuration — just Docker and a port [README].
  • MIT licensed. Own the code, fork it, modify it. No vendor lock-in at the software level [README].
  • Genuinely standalone. No external database, no mandatory cloud services, no phoning home [README].
  • Multi-source in one UI. Archive sites, torrents, Usenet, and IRC under a single interface with a unified download queue [README]. Competing tools typically cover only one download method.
  • Audiobook support is first-class. Full audiobook search, dedicated processing, AudiobookBay integration, Audiobookshelf auto-import [README]. Most ebook tools treat audiobooks as an afterthought.
  • Multi-user request system. Share an instance with household members without giving them raw download access [README]. This is a real feature that alternatives lack.
  • OIDC SSO. Integrates with Authelia, Authentik, or any OIDC provider [README]. Uncommon at this project scale.
  • *Good arr stack citizen. Prowlarr integration, auto-import to CWA/Grimmory/Audiobookshelf — fits cleanly into an existing home media automation setup [README].
  • Cloudflare bypass built in. Doesn’t require a separate FlareSolverr container or manual workaround [README].

Cons

  • Legal gray zone. Shelfmark automates downloading from archive sources. In most jurisdictions this is legally murky for copyrighted material. The project doesn’t pretend otherwise, but if you’re a founder worried about legal exposure, that’s a real consideration.
  • No independent reviews. You’re largely trusting the README and other users’ GitHub issue threads. There’s no Trustpilot score, no G2 page, no tech press coverage to validate claims [no external sources found].
  • Thin documentation beyond the README. The docs/environment-variables.md is referenced but community guides, troubleshooting wikis, and deployment tutorials are sparse. If something breaks, you’re reading GitHub issues.
  • Young project. 269 commits and a recent rename from CWABD suggests the project is still maturing. API surface, configuration options, and behavior can change between releases [README].
  • No mobile app. Web UI only. If you want to request a book from your phone while browsing a library, the web interface needs to be externally accessible (requires reverse proxy + domain setup).
  • Source reliability is not Shelfmark’s problem. If your sources go down, get blocked, or change their structure, Shelfmark can’t help. The tool is only as good as the sources it talks to.
  • Fast Download Key is opaque. The README mentions it but doesn’t link to what it is or what it costs [README]. Worth investigating before you rely on it for speed-sensitive workflows.
  • Prowlarr dependency for power use. If you want torrent and Usenet properly integrated, you’re running another service. Acceptable for an existing arr-stack household, friction for everyone else.

Who Should Use This / Who Shouldn’t

Use Shelfmark if:

  • You already run a home media server (Jellyfin, Navidrome, Audiobookshelf) and want books to fit the same pattern.
  • You’re paying for Kindle Unlimited, Audible, or Scribd primarily for access to older or non-bestseller content and are comfortable with the legal implications of switching.
  • You want to share a book server with family or a small household and need the request-and-approve workflow.
  • You have Calibre-Web-Automated or Audiobookshelf already deployed and want automatic imports.
  • You’re comfortable with Docker and can read a GitHub README to troubleshoot.

Skip it (use Calibre directly) if:

  • You want a tool that’s been around for a decade with extensive documentation and community support. Calibre’s desktop app handles downloads, metadata, and library management without Docker.

Skip it (use Readarr + Prowlarr) if:

  • You’re already running the full *arr stack and want book acquisition to work exactly like Sonarr/Radarr. Readarr is more mature, has Servarr wiki documentation, and integrates with the same Prowlarr instance you already run.

Skip it entirely if:

  • You’re a non-technical founder without a technical person to help. There’s no hosted option, no setup wizard, and no support channel beyond GitHub issues. This tool requires hands-on Linux/Docker administration.
  • The legal exposure around automated downloading from archive sites concerns you professionally. The tool makes it easy; the risk calculation is yours to make.
  • You primarily read recent bestsellers within the first weeks of release. Archive source availability for new releases is inconsistent.

Alternatives Worth Considering

  • Readarr + Prowlarr — the *arr stack’s book module. More mature, more documentation, works identically to Sonarr/Radarr if you’re already in that ecosystem. Doesn’t have Shelfmark’s unified UI or multi-user request system.
  • Calibre — the original, desktop-based library manager with its own download plugins. Requires a desktop environment (or the Calibre Content Server for web access). Established, extensively documented, not Docker-native.
  • Calibre-Web — web frontend for an existing Calibre library. Doesn’t handle acquisition; pairs well with Shelfmark for the browsing/reading side.
  • Calibre-Web-Automated — adds automation layers to Calibre-Web. The README explicitly lists this as a complement to Shelfmark, not a replacement [README].
  • LazyLibrarian — older acquisition tool for books, magazines, and audiobooks. More community documentation than Shelfmark but a less modern UI.
  • Grimmory — listed as a Shelfmark integration target; appears to be a newer library management tool with auto-import [README]. Less information available publicly.
  • Audiobookshelf — if audiobooks are your primary use case, Audiobookshelf is a first-class audiobook server with its own mobile apps. Shelfmark feeds it, it doesn’t replace it [README].

The realistic comparison for most users is Shelfmark vs Readarr+Prowlarr. Pick Shelfmark if you want a simpler single-tool install and the multi-user request system. Pick Readarr if you want mature *arr documentation and identical patterns to your existing video/music automation.


Bottom Line

Shelfmark fills a real gap: a single, modern web UI for book and audiobook acquisition that doesn’t require assembling five different tools to get a working setup. The zero-config Direct mode, built-in Cloudflare bypass, multi-user request system, and OIDC SSO are genuine differentiators over the alternatives. The trade-offs are also real — it’s a young project with thin documentation, no independent review track record, and a legal context that means mainstream coverage will stay limited. For a technically capable founder already running a home server who wants books to get the same treatment as their video and music library, the math is straightforward: $0 for the software plus your existing infrastructure, in exchange for a few hours of setup. For anyone without Docker experience or a tolerance for the legal gray zone, the subscription services are the right call.

If the deployment is the blocker, that’s exactly the kind of one-time setup that upready.dev handles for clients — deploy it once, you own the infrastructure, the monthly bill goes away.


Sources

Primary sources (no independent third-party reviews of Shelfmark were available at time of writing):

Features

Authentication & Access

  • Single Sign-On (SSO)

Integrations & APIs

  • REST API