Calibre desktop GUI and Calibre-Web served as Docker containers. Calibre runs a full KasmVNC desktop for library management; Calibre-Web provides a browser-based reading interface backed by the same library.
| Service | Port | Description |
|---|---|---|
| Calibre | 8085 | Desktop GUI (HTTP, via KasmVNC) |
| Calibre | 8086 | Desktop GUI (HTTPS, via KasmVNC) |
| Calibre | 8081 | Webserver GUI / content server (enable in Calibre settings) |
| Calibre-Web | 8083 | Web reading interface |
Create persistent storage directories before deploying:
mkdir -p /mnt/SSD/Containers/calibre
mkdir -p /mnt/SSD/Containers/calibre-web
chown -R 3001:3001 /mnt/SSD/Containers/calibre
chown -R 3001:3001 /mnt/SSD/Containers/calibre-webEnsure your book library is accessible at /mnt/Data/Media/Books (mounted read-write into Calibre-Web at /books).
cp example.env .env
# Edit .env — set CALIBRE_DOMAIN and CALIBRE_WEB_DOMAIN
docker compose up -ddocker compose ps
docker compose logs -fNavigate to https://<CALIBRE_DOMAIN> for the Calibre desktop GUI or https://<CALIBRE_WEB_DOMAIN> for Calibre-Web. Direct host access is also available on http://<host-ip>:8085 and http://<host-ip>:8083.
- Open
http://<host-ip>:8085in your browser. - When prompted for a library location, set it to
/config/Calibre Library. - Optionally enable the content server: Preferences → Sharing → Content server → Start.
- Open
http://<host-ip>:8083in your browser. - Log in with default credentials:
admin/admin123— change immediately. - Set the Calibre library location to
/books(or the subdirectory matching your library). - Optional paths to configure in admin settings:
- Unrar:
/usr/bin/unrar - Kepubify:
/usr/bin/kepubify - Ebook converter:
/usr/bin/ebook-convert
- Unrar:
| Variable | Service | Description |
|---|---|---|
CALIBRE_DOMAIN |
calibre | Hostname Traefik routes to the Calibre desktop GUI |
CALIBRE_WEB_DOMAIN |
calibre-web | Hostname Traefik routes to Calibre-Web |
CUSTOM_PORT |
calibre | Remaps the HTTP desktop GUI port (default: 8080) |
CUSTOM_HTTPS_PORT |
calibre | Remaps the HTTPS desktop GUI port (default: 8181) |
DOCKER_MODS |
calibre-web | Adds ebook conversion support (x86-64 only) |
PASSWORD |
calibre | Optional password for the KasmVNC desktop |
CLI_ARGS |
calibre | Optional extra arguments passed to the Calibre startup command |
If the Calibre desktop GUI fails to render on your Docker host, uncomment
security_opt: seccomp:unconfinedincompose.yaml.
| Data | Path |
|---|---|
| Calibre config and library | /mnt/SSD/Containers/calibre |
| Calibre-Web config and database | /mnt/SSD/Containers/calibre-web |
| Book library (shared, read-write) | /mnt/Data/Media/Books |
docker compose pull
docker compose up -ddocker compose down
tar -czf calibre-backup-$(date +%Y%m%d).tar.gz \
/mnt/SSD/Containers/calibre \
/mnt/SSD/Containers/calibre-web
docker compose up -dThe book files at /mnt/Data/Media/Books should be backed up separately as part of your media backup strategy.