
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)
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.
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.

CWA allows you to keep your ebook library accessible & organised and looks good while doing it 😎🦚
[!IMPORTANT]
CWA does not approve of or support piracy of copyrighted materials and is not responsible for user behaviour
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 :)
NETWORK_SHARE_MODE=truemetadata.db and app.db to prevent locking issuesIf 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.
inotify (via inotifywait) to detect new files in the ingest folder with minimal latency and overhead.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.inotify events reliably. CWA auto-detects Docker Desktop at startup and prefers the same polling watcher for reliability.CWA_WATCH_MODE=poll.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.
| 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 (extensible via plugins) | eBook download restriction to logged-in users |
| Public user registration support | Send eBooks to E-Readers with a single click | Sync Kobo devices with your Calibre library |
| In-browser eBook reading support for multiple formats | Content hiding based on categories and Custom Column content per user | "Magic Link" login for easy access on eReaders |
| Enhanced OAuth 2.0/OIDC authentication with auto-discovery | Advanced search and filtering options | Multilingual user interface supporting 20+ languages |
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|