Analytics cookies only (Google Analytics, PostHog). No ad networks, no cross-site tracking. See our privacy policy.
CW
Self-host Calibre-Web Automated
updated Oct 2026deployed by usprices checked · Jul 2026Install verified on Ubuntu 26.04 · Oct 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →
Builds on Calibre-Web, adding automation around the same web reader: drop a book into an ingest folder and it is converted, optionally metadata-fetched and added to a Calibre library for you, with duplicate detection, magic shelves, auto-send to e-readers, KOReader sync, Kobo sync, an OPDS feed and OAuth/OIDC sign-in. GPL-3.0 Python; runs as one container with SQLite.
Runs on a VPS from $6/mo (Kamatera 2GB, 2 GB RAM) · prices checked Sep 2026
Our recommendation
Pick Calibre-Web Automated when you want a Calibre library you do not have to babysit. It keeps the Calibre-Web reader (browse, read in the browser, OPDS, shelves, per-user permissions, send to an e-reader, Kobo sync) and adds a pipeline in front of it: books dropped in a watched ingest folder are converted to your target format (EPUB by default), can have metadata fetched on ingest, are checked for duplicates and are added to the library, with the originals backed up. Our snippet is the project's Compose example with the image pinned to a release tag, the three mounts as local folders and a library that is created for you when the folder is empty. We did not find an upstream RAM minimum, so our 512 MB floor is an estimate. The catalog's Calibre-Web is the project this one builds on, with the same reader and none of the automation. Kavita and Komga are built around comics and manga as much as books; pick one of those if a comics collection is the main job.
What you need
Any VPS with at least 512 MB of RAM
A domain you control — most self-hosted setups need HTTPS in front of them
The project's README and Compose example flag these before you put real books in it:
non-negotiableThe default administrator is admin with the password admin123, which the README prints in its post-install steps; sign in and change it before the port is reachable from anywhere you do not trust. With an empty library folder CWA creates the Calibre library itself at the /calibre-library mount, and PUID/PGID 1000 decide which host user owns the files, so the three folders in the snippet are created up front as that user.
non-negotiableThe ingest folder is a conveyor belt, not a library: the Compose example's own comment says everything placed in /cwa-book-ingest is removed after processing. By default the originals of processed files are kept in /config/processed_books, which the README lists as the automated back-up service, so back up /config as well as the library. The Refresh Library button re-ingests anything left behind by an interrupted run.
non-negotiableUpstream's Compose example runs crocodilestick/calibre-web-automated:latest; the Docker Hub listing also carries development tags, and we pin an exact release tag. On NFS or SMB shares set NETWORK_SHARE_MODE=true (it turns off SQLite WAL and switches to a polling watcher); behind more than one proxy set TRUSTED_PROXY_COUNT, or session protection logs you out.
non-negotiablePort 8083 is plain HTTP, so put a TLS reverse proxy in front before anyone signs in over the internet. The Compose example also lists a HARDCOVER_TOKEN variable for the Hardcover metadata provider, which needs your own API key and is left out of our snippet.