Calibre-Web but automated and with Calibre features! Fully automate and simplify your eBook set up!
1.0K
This fork include my work to intergrate Hardcover.app into Calibre-Web/CWA. Including a Hardcover Metadata scraper, and read progress syncing with Kobo
Hardcover support is optional, and requires being enable in Setttings and an API key added in user config for each user who would like to use the features.
Metadata: Searching supporting title as per CW default. Editions of books can be selected by searching "hardcover-id:<id from title search>"
Kobo Sync: If a shelf is designated for Kobo Sync, adding a book with proper Hardcover metadata (id and edition) will also add the book to the Hardcover "Want to Read" list. Read progress from these books is then synced with Hardcover.

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 quick, easy to set up, 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.
After discovering that using the DOCKER_MODS universal-calibre environment variable, you could gain access to Calibre's fantastic eBook conversion tools, both in the Web UI and in the container's CLI, I set about designing a similar solution that could really make the most of all of the tools available to try and fill in the gaps in functionality I was facing with Calibre-Web so that I could finally get rid of my bulky Calibre instance for good.

CWA allows you to keep your ebook library accessible & organised and looks good while doing it 😎🦚
| 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 |
| LDAP, Google/GitHub OAuth, and proxy authentication support | Advanced search and filtering options | Multilingual user interface supporting 20+ languages |
Automatic Imports - of .epub files into your Calibre-Web library ✨
Automatic Conversion 🔃 - of newly downloaded books in 28 other formats into .epub for optimal compatibility with the widest number of eReaders, library homogeneity, and seamless functionality with Calibre-Web's excellent Send-to-Kindle Function.
A Weighted Conversion Algorithm: ⚖️
28 Supported file types for conversion: 🤯
Automatic Enforcement of Changes made to Covers & Metadata through the Calibre-Web UI! 👀📔

.epub
.epub libraries in mind due to many factors, chief among which being the fact they are Compatible with the Widest Range of Devices, Ubiquitous as well as being Easy to Manage and Work withnon-epub ebooks in their existing Calibre Libraries was unable to take advantage of all of Calibre-Web Automated's features reliably.epub Version 3 format using a one-step CLI Command from within the CWA Container/config/processed_books or to trust the process and have CWA simply convert and replace those files (not recommended)metadata.db files and point to their location in the Web UI, CWA will now automatically detect the lack of Library in your given bind and automatically create a new one for you! It will even automatically register it with the Web UI so you can really hit the ground runningRefresh Library button on the navbar of the Web UI and anything still sitting in the ingest folder will be automatically ingested!Books Listpage on the left hand side of the Web UI, select the books you wish to edit/ delete and use the buttons either above the table or within the headers to do whatever you need!
Simple CLI Tools for manual fixes, conversions, enforcements, history viewing ect. 👨💻
cover-enforcer -all command from within the container (RECOMMENDED WITH FIRST TIME USE)cover-enforcer --dir <path-to-folder-containing-the-books-epub-here>
.epub filesarm64 architecturesPlease suggest any ideas or wishes you might have! we're open to anything!
curl -OL https://raw.githubusercontent.com/crocodilestick/calibre-web-automated/main/docker-compose.yml
Move the compose file to an empty folder (e.g. ~/docker/calibre-web-automated/docker-compose.yml). This will be used to store the server data and library
Navigate to where you downloaded the Compose file using cd and run:
docker compose up -d
And that's you off to the races! 🥳 HOWEVER to avoid potential problems and ensure maximum functionality, we recommend carrying out these Post-Install Tasks Here.
---
services:
calibre-web-automated:
image: crocodilestick/calibre-web-automated:latest
container_name: calibre-web-automated
environment:
- PUID=1000
- PGID=100
- TZ=UTC
- DOCKER_MODS=lscr.io/linuxserver/mods:universal-calibre-v7.16.0
volumes:
- /path/to/config/folder:/config
- /path/to/the/folder/you/want/to/use/for/book/ingest:/cwa-book-ingest
- /path/to/your/calibre/library:/calibre-library
#- /path/to/your/gmail/credentials.json:/app/calibre-web/gmail.json #Optional
ports:
- 8084:8083 # Change the first number to change the port you want to access the Web UI, not the second
restart: unless-stopped
/config - This is used to store logs and other miscellaneous files that keep CWA running
root:root in your main os)/config directory containing app.db to ensure settings and users are pulled in/cwa-book-ingest - ATTENTION ⚠️ - All files within this folder will be DELETED after being processed. This folder should only be used to dump new books into for import and automatic conversion/calibre-library - This should be bound to your Calibre library folder where the metadata.db & book(s) files reside.
root:root in your main os)metadata.db was utilised/app/calibre-web/gmail.json (Optional) - This is used to setup Calibre-Web and/or CWA with your gmail account for sending books via email. Follow the guide here if this is something you're interested in but be warned it can be a very fiddly process, I would personally recommend a simple SMTP ServerAnd just like that, Calibre-Web Automated should be up and running! HOWEVER to avoid potential problems and ensure maximum functionality,we recommend carrying out these Post-Install Tasks Here.
/config folder in your Docker Compose that you were using for CW/books by default)cwa-book-ingest in your Docker Compose.epub format. If your existing library contains any books of different filetypes, navigate to the Admin panel and scroll until you see the "Convert Library to EPUB" option./config/processed_booksUsername: admin
Password: admin123
/cwa-book-ingest by default or whatever you designated during setup if using the Script Install method. Anything you place in that folder will be automatically analysed, converted if necessary and then imported into your Calibre-Web library.
/cwa-book-ingest is not supported. It can cause duplicate imports and potentially a corrupt database. It is recommended to first download the books completely, then transfer them to /cwa-book-ingest to avoid any issues/cwa-book-ingest are owned by your user rather than root. Otherwise, permission errors may occur and may result in incomplete importing.usage: cover-enforcer [-h] [--log LOG] [--dir DIR] [-all] [-list] [-history] [-paths] [-v]
Upon receiving a log, valid directory or an "-all" flag, this script will enforce the covers and metadata of the corresponding books, making sure that each are correctly stored in
both the epubs themselves and the user's Calibre Library. Additionally, if an epub happens to be in EPUB 2 format, it will also be automatically upgraded to EPUB 3.
options:
-h, --help show this help message and exit
--log LOG Will enforce the covers and metadata of the books in the given log file.
--dir DIR Will enforce the covers and metadata of the books in the given directory.
-all Will enforce covers & metadata for ALL books currently in your calibre-library-dir
-list, -l List all books in your calibre-library-dir
-history Display a history of all enforcements ever carried out on your machine (not yet implemented)
-paths, -p Use with '-history' flag to display stored paths of all epubs in enforcement database
-v, --verbose Use with history to display entire enforcement history instead of only the most recent 10 entries

usage: convert-library [-h] [--replace] [--keep] [-setup]
Made for the purpose of converting ebooks in a calibre library not in epub format, to epub format
options:
-h, --help show this help message and exit
--replace, -r Replaces the old library with the new one
--keep, -k Creates a new epub library with the old one but stores the old files in /config/processed_books
-setup Indicates to the function whether or not it's being ran from the setup script or manually (DO NOT USE MANUALLY)
cwa-checkIf you want to contribute to this project, you can build a local version with your changes by running build.sh in the repository.
The resultant image will then be automatically deployed using the docker-compose.yml.dev (ma
Content type
Image
Digest
sha256:ebcc3f6cd…
Size
783.5 MB
Last updated
about 1 year ago
docker pull demitrixrd/calibre-web-automated:dev-hardcover