Calibre-Web-Automated is a free, open source publishing project written in JavaScript and released under GPL-3.0. It has 6,293 GitHub stars, 519 forks and 443 open issues, and was last pushed 1 months ago. On this registry it ranks #12 of 46 tracked projects in Publishing, with 5 head-to-head comparisons available. It gained 7 stars over the last 3 tracked days.

What is Calibre-Web-Automated?

Calibre-Web Automated is a free, GPL-3.0, self-hosted digital library server distributed as the Docker image crocodilestick/calibre-web-automated, aimed at self-hosters who want one automated service instead of running Calibre and Calibre-Web side by side.

What it is

Calibre-Web Automated (formerly Calibre-Web Automator) is an open-source project written in JavaScript and released under the GPL-3.0 licence. It ships as a Docker container and combines the lightweight, modern web interface of Calibre-Web with the feature set of full Calibre, adding automation for importing and converting eBooks on top of both. The registry entry records 6,292 stars, 519 forks and 443 open issues, with the most recent push on 2026-08-07.

The concrete problem it solves is the split library setup. Calibre, when containerised, depends on a KasmVNC server instance to render its user interface, which is near impossible to use on mobile and relatively resource-heavy on a small, low-power server. Calibre-Web swings the other way: a resource-light UI and a more modern interface, but without core features that full Calibre provides, so many people run both services in parallel and let each fill in where the other lacks, producing a clunky result. Calibre-Web Automated replaces that pair with a single all-in-one service.

Key capabilities

  • Automated import of new books into the Calibre library, covered by the documented "Adding Books to Your Library" workflow.
  • Format conversion across EPUB, Kepub and Kindle targets, run by the project's automation rather than manual Calibre steps.
  • Container deployment as the crocodilestick/calibre-web-automated Docker image, with a recommended docker-compose setup.
  • OAuth 2.0 and OIDC authentication, allowing sign-in through an external identity provider.
  • KOReader syncing through KOSync, for reading progress across devices.
  • Companion mobile browsing and download through Calibre-Web Companion, an unofficial Flutter application built with Material You.
  • Affiliated Shelfmark web interface for searching and requesting book downloads and preparing them for integration into the Calibre library.

Who uses it and how

  • Self-hosters running small, low-power servers, which the README names directly as the motivation, since a KasmVNC-based Calibre instance is resource-heavy there.
  • People migrating from stock Calibre-Web, for whom the project documents a dedicated migration path.
  • Readers on Kindle, Kobo and KOReader devices who want library access plus progress sync served from one host.
  • Individuals and small groups that already run an identity provider and want OAuth 2.0 or OIDC login rather than local accounts.
  • Operators currently running Calibre and Calibre-Web in parallel, who can consolidate both into one container.

Getting started

Deploy the Docker image crocodilestick/calibre-web-automated; the README documents a quick install and recommends the docker-compose route. Default admin login credentials and post-install tasks are covered there as well.

How it compares

Among the tools named in the facts, it sits between Calibre, which supplies the full feature set but needs a KasmVNC UI when containerised, and stock Calibre-Web, which supplies the lightweight modern UI but lacks those core features. Calibre-Web Companion is an unofficial Flutter client for browsing and downloading from the library, and Shelfmark is an affiliated downloader that prepares books for it, so both extend this server rather than compete with it.

When to use it — and when not to

A self-hoster must operate the Docker container and maintain the underlying Calibre library, and must additionally configure OAuth 2.0 or OIDC if external identity is wanted, and KOSync if KOReader progress sync is wanted. It is the wrong pick for anyone unwilling to run and maintain a containerised service, since the README documents no non-Docker install path. The 443 open issues against 6,292 stars also point to a real support burden, and the project moves quickly enough that the gap between releases and commits is worth checking before upgrading.

project readme (upstream, from github) — read inline

Calibre-Web Automated (formerly Calibre-Web Automator)

Calibre-Web Automated

Making Calibre-Web your dream, all-in-one self-hosted digital library solution.

Docker Pulls GitHub Release GitHub commits since latest release OAuth 2.0 + OIDC

Supporting the Project ❤️

CWA is and always will be free and open source. If it makes your library life easier and you're able to support development, contributions go directly to:

  • Testing hardware (ereader devices & tablets ect.)
  • Development tools and infrastructure
  • Coffee ☕ (lots of coffee)

ko-fi

Quick Access

Why does it exist? 🔓

Calibre, while a fantastic tool for its age, has several problems when containerised, including its reliance on a KasmVNC server instance for the UI, which is near impossible to use on mobile and is relatively resource-heavy if you're running a small, lower power server like I am.

For many, Calibre-Web has really swooped in to save the day, offering an alternative to a containerised Calibre instance that's resource-light and with a much more modern UI to boot.

However, when compared to full-fat Calibre, it unfortunately lacks a few core features leading many to run both services in parallel, each serving to fill in where the other lacks, resulting in an often clunky, imperfect solution.

Goal of the Project 🎯

Calibre-Web Automated aims to be an all-in-one solution, combining the modern lightweight web UI from Calibre-Web with the robust, versatile feature set of Calibre, with a slew of extra features and automations thrown in on top.

Calibre-Web Automated Example Homepage Calibre-Web Automated Example Book Page

CWA allows you to keep your ebook library accessible & organised and looks good while doing it 😎🦚

Affiliated Projects 👬

Shelfmark: Book Downloader

  • An intuitive web interface for searching and requesting book downloads, designed to work seamlessly with Calibre-Web-Automated. This project streamlines the process of downloading books and preparing them for integration into your Calibre library

[!IMPORTANT]
CWA does not approve of or support piracy of copyrighted materials and is not responsible for user behaviour

Get it on GitHub


Calibre-Web Companion

  • Built with Flutter and using Material You, Calibre Web Companion is an unofficial companion application for Calibre Web & Calibre Web Automated that allows you to browse your book collection and download books directly on your device, providing a much more modern, mobile-friendly UX than either service can currently provide on its own

Calibre Web Companion Preview

Get it on F-Droid Get it on GitHub

Join our Community! ❤️

  • I want to say a big thanks 🙏 to all the members of this community that have taken the time to participate in the testing and development of this project and we encourage anyone who would like to to contribute in some way. Anyone of any level is welcome and every little helps!

  • For anyone that wish to contribute to this project in some way, please reach out on our Discord Server and see how you can best get involved:

  • Or alternatively make your own companion project, come hang out and or come get help if you're facing issues :)

🚨 Deploying on Network Shares (NFS/SMB) 🚨

  • CWA now supports network-share deployments via NETWORK_SHARE_MODE=true
    • This disables SQLite WAL on metadata.db and app.db to prevent locking issues
    • Skips recursive ownership changes that often fail on NFS/SMB
    • Switches ingest/metadata watchers to a polling-based watcher for reliability
  • Network shares are still slower than local disks, but are now fully supported with this mode enabled

Network shares and SQLite WAL mode

  • CWA optimizes SQLite concurrency by enabling Write-Ahead Logging (WAL) on local disks.

  • Some network filesystems (NFS/SMB) do not fully support WAL or reliable file locking, which can cause intermittent "database is locked" errors or corruption risks.

  • If you are deploying on a network share, set the following environment variable to disable WAL:

    • NETWORK_SHARE_MODE=true

This tells CWA to avoid enabling WAL on the Calibre metadata.db and the app.db settings database. It also disables recursive ownership changes (chown) performed by init/maintenance scripts to avoid permission issues on network filesystems. Default is false (WAL enabled) for better performance on local disks.

File watching on network shares
  • By default, CWA uses Linux inotify (via inotifywait) to detect new files in the ingest folder with minimal latency and overhead.
  • On network shares (NFS/SMB), filesystem events can be unreliable or unavailable. When NETWORK_SHARE_MODE=true is set, CWA switches the ingest and metadata watcher services to a polling-based watcher that periodically scans for changes. This improves reliability on NAS/network mounts at the cost of slightly higher I/O and up to a few seconds of latency.
  • On Docker Desktop (Windows/macOS), the container runs on a LinuxKit/WSL2 VM and host-mounted paths may not propagate inotify events reliably. CWA auto-detects Docker Desktop at startup and prefers the same polling watcher for reliability.
  • Advanced: You can also force polling regardless of share mode by setting CWA_WATCH_MODE=poll.

Running behind multiple proxies (Cloudflare Tunnel, reverse proxy)

  • CWA uses Werkzeug's ProxyFix middleware to properly handle X-Forwarded-For, X-Forwarded-Proto, and other proxy headers.

  • By default, it trusts 1 proxy in the chain. If you have multiple proxies (e.g., Cloudflare Tunnel → nginx → CWA), set:

    • TRUSTED_PROXY_COUNT=2 (or the total number of proxies in your chain)
  • Why this matters: Session protection validates requests based on the client's IP address. If ProxyFix doesn't trust enough proxies, it may see different IPs between requests, causing "Session protection triggered" warnings and forcing re-login.

  • Troubleshooting: If you see frequent session protection warnings in logs, check your proxy chain depth and adjust this variable accordingly.

Features:

CWA supports all Stock CW Features:

Modern & responsive Bootstrap 3 HTML5 interface Comprehensive user management with per-user permissions OPDS feed for ereader apps
eBook metadata editing and deletion support Metadata download from various sources (exten

readme truncated — read the full docs on github

Frequently asked questions

Is Calibre-Web-Automated free to use?

Calibre-Web-Automated is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Calibre-Web-Automated do?

Calibre-Web but Automated and with tons of New Features! Fully automate and simplify your eBook set up!

What is Calibre-Web-Automated written in?

Calibre-Web-Automated is primarily written in JavaScript. Its source is publicly available at https://github.com/crocodilestick/Calibre-Web-Automated, and it has 6,293 GitHub stars.