calibre: replace with Calibre-Web-Automated on esh-docker-vm

Retire the linuxserver.io calibre + calibre-web pair. CWA
(crocodilestick/calibre-web-automated) is an all-in-one: combined web UI
with Calibre backend, auto-ingest via drop folder, scheduled metadata
maintenance — single container on :8083.

- Reuses the existing library at /mnt/books/calibre/calibre_library
  (NFS) and the existing calibre-web config at /opt/docker/conf/calibre-web,
  so user accounts and the book catalogue carry over.
- Requires NETWORK_SHARE_MODE=true (library is on NFS; SQLite WAL would
  corrupt otherwise).
- New drop-zone at /mnt/books/calibre/ingest; files placed there are
  ingested into the library and then removed.
- Loses the LSIO desktop Calibre GUI (ports 8082/8181/8281) — run
  Calibre locally if you need the desktop UI.

Old compose dirs (/opt/docker/compose/{calibre,calibre-web}) removed on
esh-docker-vm; old images can be pruned at leisure.
This commit is contained in:
vh
2026-04-20 22:14:38 -07:00
parent 8d6921cb75
commit dfdabd1d02
4 changed files with 207 additions and 2 deletions
+45
View File
@@ -0,0 +1,45 @@
# Calibre-Web-Automated — all-in-one replacement for the old
# `calibre` + `calibre-web` pair. Upstream: https://github.com/crocodilestick/Calibre-Web-Automated
#
# The library lives on the NH3 / ESH NAS via NFS, so NETWORK_SHARE_MODE
# must be on (disables SQLite WAL, which corrupts on NFS).
#
# All tunables live in .env — edit that, not this file.
services:
calibre-web-automated:
image: crocodilestick/calibre-web-automated:${CWA_VERSION:-latest}
container_name: calibre-web-automated
restart: unless-stopped
environment:
- PUID=${PUID:-2000}
- PGID=${PGID:-2000}
- TZ=${TZ:-America/Los_Angeles}
- NETWORK_SHARE_MODE=${NETWORK_SHARE_MODE:-true}
- CWA_PORT_OVERRIDE=${CWA_PORT:-8083}
- HARDCOVER_TOKEN=${HARDCOVER_TOKEN:-}
ports:
- "${CWA_PORT:-8083}:${CWA_PORT:-8083}"
volumes:
- ${CWA_CONFIG_DIR}:/config
- ${CWA_INGEST_DIR}:/cwa-book-ingest
- ${CWA_LIBRARY_DIR}:/calibre-library
healthcheck:
test: ["CMD-SHELL", "wget -q --spider http://localhost:${CWA_PORT:-8083} || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
networks:
- tnet
labels:
- homepage.group=Media
- homepage.name=Calibre-Web-Automated
- homepage.icon=si-calibreweb
- homepage.description=eBook library + auto-ingest (esh)
- homepage.href=http://10.0.50.45:${CWA_PORT:-8083}
networks:
tnet:
name: traefik-net
external: true