Calibre Web Automated

This is a follow-up to my post about setting up Calibre book library on my local server. I found a better way!
This post is a part of my Homelab Series. See the index here.
CWA Installation
Calibre Web Automated is the final (so far) form of modernizing the OG book management app, Calibre. It runs in docker and it has tons of QOL improvements.
---
secrets:
hardcover-api:
file: /home/pe8er/.secrets/hardcover
services:
calibre-web-automated:
image: crocodilestick/calibre-web-automated:latest
container_name: calibre-web-automated
secrets:
- hardcover-api
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Warsaw
- HARDCOVER_TOKEN=/run/secrets/hardcover-api
volumes:
- /home/pe8er/docker/cwa:/config
- /home/pe8er/Downloads/Completed:/cwa-book-ingest
- /mnt/ssd-sandisk/CalibreLibrary:/calibre-library
ports:
- 8083:8083
restart: unless-stopped
Default login credentials:
- Username: admin
- Password: admin123
Post Install
- Disable password requirements: Basic Configuration → Security Settings → User Password Policy
- Change admin password
- Enable uploads: Basic Configuration → Feature Configuration → Enable Uploads
- Enable Kobo and Hardcover sync: same panel as above
- Enable Kobo integration
Calibre Downloader (aka Shelfmark aka Litfinder)
This apps lets me search and download books from annas-archive.org, and adds them to CWA automatically.
- Make a folder for it:
mkdir /home/pe8er/docker/cwa-downloader
cd /home/pe8er/docker/cwa-downloader
- Get the docker-compose.yml:
curl -O https://raw.githubusercontent.com/calibrain/shelfmark/main/compose/docker-compose.yml
services:
calibre-web-automated-book-downloader:
image: ghcr.io/calibrain/shelfmark:latest
# Uncomment to build the image from the Dockerfile for local testing changes.
# Remember to comment out the image line above.
#build: .
container_name: shelfmark
environment:
TZ: Europe/Warsaw
UID: 1000
GID: 100
ports:
- 8084:8084
restart: unless-stopped
volumes:
- /home/pe8er/Downloads/Books:/cwa-book-ingest
- /mnt/ssd-internal/Audiobooks:/Audiobooks
- /home/pe8er/docker/cwa-downloader:/config
- Start the service:
docker compose up -d
- Access the web interface at
http://192.168.1.199:8084
Nice! Downloading works well and books show up in Calibre automatically. Next step:
Kobo Integration
There is a way to seamlessly display Calibre library on Kobo e-readers. It works very well and it’s pretty damn easy to do!
- Connect Kobo to computer via USB-C.
- Open CWA -> Account dropdown -> Admin -> Kobo Sync Token -> Create / View
-
Open
.kobo/Kobo/Kobo eReader.confand add the generated token to it:api_endpoint=http://192.168.1.199:8083/kobo/<hash> - Hit “Force Full Kobo Sync”
- Bob’s your uncle!
Mousehole
And there’s this.
services:
mousehole:
image: tmmrtn/mousehole:latest
network_mode: "container:transmission-openvpn"
environment:
MOUSEHOLE_AUTH_PASSWORD: [PASSWORD]
TZ: Europe/Warsaw
volumes:
- mousehole:/home/pe8er/docker/mousehole
restart: unless-stopped
volumes:
mousehole: