mrkeyoor.com_
Thu 12 Nov 16:01 UTC
Self-Hostedevaluationupdated 17 Oct 2026

Calibre-Web-Automated review

Calibre-Web Automated (CWA) is a self-hosted ebook library project that combines Calibre-Web's browser interface with Calibre tools and additional automation. Its README describes watched-folder ingest, conversion, metadata enforcement, duplicate management, processed-file backups, Kobo sync and KOReader progress sync. These are documented capabilities, not workflows validated by our recorded sandbox run.

+28stars / 7d
Verdict

Calibre-Web Automated is worth evaluating if you want Calibre-Web with automated library processing and can check the resulting files. Our September 28, 2026 run at commit 9805ac0 was inconclusive about deployment: the install status conflicts with a dependency compilation error, and the test log includes missing dependencies, a missing /config directory and import failures. Those results do not prove that the supported container is broken. Separately, the supplied sources document ownership fixes across v4.0.7 and v4.0.8 and a reported Convert Library false-success problem. Start with a copied library, verify added formats and file ownership, and check backup and restore behavior before relying on the automation.

We ran it

Lab card: what happened when we ran Calibre-Web-AutomatedScreenshot of Calibre-Web-Automated (github.com/crocodilestick/Calibre-Web-Automated)
Install✓ · 26s62 packages · 93 MB
Build✓ · 3s
Tests✗ · 22s90 passed · 26 failed · 90 skipped · 46 errors of 162 (pytest)
Known vulns0(pip-audit)
Repo1197 files~162,511 lines of source · 154.1 MB · 6 CI workflows · Dockerfile · tests dir

Answers from our run

Does Calibre-Web-Automated build from source?

Dependencies installed in 26 seconds (62 packages), and the build succeeded in 3 seconds. We cloned commit 9805ac0 into a clean Debian container with 3 CPUs and no project-specific setup.

Do Calibre-Web-Automated's tests pass?

No. The project's own test command finished in 22 seconds and reported 90 passed, 26 failed, 90 skipped, 46 collection errors (pytest).

Does Calibre-Web-Automated have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use Calibre-Web-Automated?

Readers who need this review to establish that a production container, conversion workflow or reader integration works: our run did not validate those workloads.

What are the alternatives to Calibre-Web-Automated?

Calibre-Web, Calibre. Calibre-Web Automated is worth evaluating if you want Calibre-Web with automated library processing and can check the resulting files.

Setup3/5The README recommends Compose and supplies configuration examples, but network storage, ownership and proxy depth require deliberate setup. Our sandbox did not validate deployment.
Docs4/5The supplied README covers features, Compose, storage, proxies and integrations, and the release notes include upgrade actions. The conversion-format heading and extension list disagree.
Community3/5The supplied release notes and issue discussions show contributor work, maintainer responses and follow-up patches. They do not establish support response times or justify a score based on popularity.
Maturity3/5Versioned releases document maintenance and ownership fixes, while issue 1551 and PR 1552 describe a consequential conversion problem. Our incomplete sandbox setup cannot establish production reliability.

Who it’s for

Self-hosters who want Calibre-Web with automated ebook processing and can verify the results on copied books.
Existing Calibre-Web users evaluating whether CWA's additional automation fits their library.
Kobo and KOReader owners prepared to configure and check device sync themselves.
NAS operators comfortable with ownership settings, SQLite behavior and polling watchers.

Who it’s NOT for

Readers who need this review to establish that a production container, conversion workflow or reader integration works: our run did not validate those workloads.
Operators who need several separate libraries in one instance: the README documents one library per instance.
Users unwilling to check conversion output: issue 1551 reports false success on v4.0.6, and the author of PR 1552 reports reproducing it on the stock v4.0.8 image.
Anyone expecting network storage to require no additional configuration: the README calls for NETWORK_SHARE_MODE=true on NFS and SMB.

Setup reality

In our recorded run on September 28, 2026, at commit 9805ac09e03359fecf12e23e2c112c019651f2d7, the harness marked the install step successful after 26 seconds and recorded 62 dependencies and 93 MB. However, the install tail contains a failed python-ldap@3.4.8 compilation because lber.h was missing. The successful step status therefore does not establish a complete dependency installation.

The build-labeled step exited 0 after about 3 seconds, with an empty recorded tail. That does not establish a Docker image build, a running service or an installed executable check. The test step exited 1 after about 22 seconds. Its summary reported 26 failed, 90 passed, 90 skipped and 46 errors. The stored total of 162 is not a verified suite denominator; the tail also says collected 238 items / 14 errors. No complete-log reconciliation was performed.

The audit record contains zero findings and zero packages. It does not establish that dependencies were scanned successfully or that the application has no known vulnerabilities.

The README recommends Docker Compose. Its template includes PUID, PGID, timezone and optional integration settings. For NFS or SMB, NETWORK_SHARE_MODE=true disables SQLite WAL, skips recursive ownership changes and switches watchers to polling. Multiple proxies require an appropriate TRUSTED_PROXY_COUNT; the documented two-proxy example uses TRUSTED_PROXY_COUNT=2. None of these deployment paths was validated in our run.

Calibre-Web with more authority over your books

Calibre-Web Automated combines a browser library interface with ebook processing. The project's README describes watched-folder ingest, conversion, cover and metadata enforcement, duplicate management, processed-file backups and reader sync. It aims to reduce the need to run Calibre and Calibre-Web side by side.

That makes it relevant to self-hosters who want automation as well as browsing. It also means evaluating what happens to the files. According to the README, cover and metadata changes can be written into ebooks, duplicate management includes optional automatic resolution, and conversion can replace files. Keep a separate library backup and trial these operations on copies.

The README says originals processed by CWA are stored in /config/processed_books by default, with a setting to disable that behavior. Treat this as a documented recovery feature whose contents and restore process you still need to check.

What our recorded run establishes

Our recorded run took place on September 28, 2026, at commit 9805ac09e03359fecf12e23e2c112c019651f2d7. The sandbox used ghcr.io/astral-sh/uv:python3.12-bookworm, with 3 CPUs and 8 GB of memory. It was a source-checkout run, not a validated production deployment.

The stored checkout measurements were 1,197 files, 162,511 lines of source and 154.1 MB. The harness recorded 62 dependencies and 93 MB, and marked its 26-second install step successful. But the raw install tail shows python-ldap@3.4.8 failing to compile because lber.h was missing. We cannot use the step's exit status to claim that all dependencies installed.

The build-labeled step exited 0 in 2.779 seconds. Its recorded output is empty, so it supplies no evidence that a Docker image was built or that CWA started successfully. There is no recorded installed-binary check or measured ingest, conversion, restore or device-sync workload.

The test step exited 1 in 22.336 seconds. The pytest summary says 26 failed, 90 passed, 90 skipped, 46 errors in 19.11s. These are recorded summary counts, not independently reconciled unique coverage. The parser's stored total is 162, while the tail also contains collected 238 items / 14 errors. A pass percentage would misrepresent this record.

The failures include missing tabulate, a missing /config directory, imports reporting that cps is not a package, and an absent _timestamp_or_default attribute. Some failures named duplicate and queue tests, but import failures do not demonstrate that those product workflows malfunctioned. The log establishes an unsuccessful test execution in this sandbox; it does not isolate product defects from environment or test setup problems.

The pip-audit record lists zero findings and zero packages. With no demonstrated package coverage, it provides no basis for a clean dependency-security claim.

Check conversion results rather than the closing message

The README documents automatic ingest and conversion, with EPUB as the default conversion target. It labels ingest support as 27 formats and conversion support as 28 file types, although the displayed conversion list contains 29 extensions. Those are documentation claims with an internal count mismatch, not formats exercised in our run. The README also notes that .acsm requires an additional Calibre plugin.

A separate report gives a concrete conversion check to perform. In issue 1551, opened September 20, 2026, a user reports that Convert Library on v4.0.6 added no formats after ingest while logging success. The report attributes this to a removed temporary directory and subprocess failures falling through to success messages. This was not an observation from our sandbox.

PR 1552 proposes recreating the directory and reporting failed commands. In a September 29 comment, its author also reports reproducing the problem with the stock v4.0.8 image and testing the proposed replacement script against a scratch library. Those are contributor-reported results, not our tests. The supplied extract shows follow-up changes through October 4 but does not establish that the CWA pull request was merged or released. A merged reference to Calibre-Web-NextGen is a different repository.

Before bulk conversion, record the formats present for a few copied books. Run ingest and then Convert Library, check that the requested formats actually appear, and open the resulting files. A successful closing message alone cannot resolve the reported problem.

Ownership reports have a documented resolution

Issue 1472 concerns files whose ownership prevented metadata edits, deletion or directory moves on v4.0.6. It is closed as completed in the supplied source, rather than an unresolved issue.

The maintainer's September 28, 2026 comment says the fixes span v4.0.7 and v4.0.8: ingest runs as abc from v4.0.7, and the cover and metadata enforcer also runs as abc in v4.0.8. The comment says existing root-owned files still need a one-time ownership correction to the configured PUID and PGID. It also advises running manual calibredb commands as abc to avoid creating root-owned files.

The v4.0.7 release notes independently document the ingest change and an ownership upgrade note. Neither source proves that every storage configuration is trouble-free. After a trial import and metadata edit, check that CWA can still edit, move and delete the copied book.

Storage and proxy settings are part of setup

The README recommends Docker Compose and provides settings for PUID, PGID, timezone, the default web port of 8083 and an optional Hardcover token. Its library discovery supports one library per instance; it recommends parallel instances for separate libraries that you do not want to consolidate.

For NFS and SMB, the documented setting is NETWORK_SHARE_MODE=true. It disables WAL for metadata.db and app.db, skips recursive ownership changes and replaces filesystem-event watching with polling. The README describes slightly higher I/O and up to a few seconds of detection delay. These are documented tradeoffs, not latency measurements from our run. It also documents automatic polling selection on Docker Desktop and the override CWA_WATCH_MODE=poll.

For reverse proxies, CWA's documented default is to trust one proxy. The README's Cloudflare Tunnel followed by nginx example uses TRUSTED_PROXY_COUNT=2. Set the count for your actual chain; the documentation connects an incorrect count with repeated session-protection warnings and logins.

Kobo sync, KOReader progress sync, OAuth/OIDC and metadata providers are further reasons to evaluate CWA, but our run did not verify their configuration or behavior.

Read release fixes separately from our test result

The supplied v4.0.7 release notes describe access-control fixes for Kobo tokens, administrative service pages, internal endpoints and the single-book EPUB fixer. These are maintainer-reported fixes, not security findings from our sandbox. The notes also describe test isolation and CI fixes; their presence does not reconcile our local test failures.

The practical decision is whether CWA's documented automation is useful enough for you to validate on your own storage. Trial a copied library, inspect conversion output and ownership, check the processed originals, and perform a restore before making it responsible for your collection. Our recorded source run supports that evaluation process, but does not establish production readiness or a product-wide failure.

Alternatives

ProjectWhat it isPick it when
Calibre-WebThe browser interface that CWA builds on.Consider it when you want the web library interface and do not need CWA's added processing automation. The CWA README distinguishes stock Calibre-Web features from its own additions; we did not compare installations.
Calibre gh↗The ebook management tool whose capabilities CWA aims to combine with Calibre-Web.Consider it when you prefer managing the library directly in Calibre rather than through CWA's automated web service. The CWA README describes Calibre as the fuller-featured tool, while noting drawbacks to its containerized interface.

What people are saying

  1. [github-trending] crocodilestick/Calibre-Web-Automated

Sources

  1. Calibre-Web Automated README
  2. Calibre-Web Automated repository
  3. Calibre-Web Automated v4.0.7
  4. Issue 1472: file ownership after upload and ingest
  5. Issue 1551: Convert Library reports false success
  6. Pull request 1552: conversion directory and command failures

More self-hosted reviews

goaccess · ladder · iSponsorBlockTV · run-ai · sure · woodpecker · the whole board →