Calibre-Web / Books
Infrastructure repository for the Calibre-Web service at:
https://books.mischlabs.de
The service currently uses the upstream LinuxServer image:
lscr.io/linuxserver/calibre-web:latest
No custom Docker image is required right now. Gitea stores the Compose setup and documentation; the universal Watchtower instance on the NAS updates the upstream image.
NAS Paths
Current production paths:
Compose path: /volume2/docker/calibreweb/docker-compose.yml
Books: /volume1/calibreweb/data/books
Config: /volume1/calibreweb/data/config
The book library and Calibre-Web config stay on the NAS. They are mounted into the container and must not be committed to Git.
Current Container
Container: calibre-web
Image: lscr.io/linuxserver/calibre-web:latest
Port: 8083 -> 8083
TZ: Europe/Berlin
PUID: 1000
PGID: 1000
Deploy On NAS
From the NAS:
cd /volume2/docker/calibreweb
cp .env.example .env
nano .env
docker compose config
docker compose up -d
docker ps --filter "name=calibre-web" --format "table {{.Names}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}"
Watchtower
The existing universal Watchtower service should remain responsible for updates. Do not create a second project-specific Watchtower unless explicitly requested.
Manual one-time check:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /volume2/docker/watchtower/config.json:/config.json:ro containrrr/watchtower --run-once
Notes
- A wrong
/booksmount can make the library look empty even when the files still exist. - A wrong
/configmount can make Calibre-Web start like a fresh install. - Always verify mounts before recreating the container.
Source Of Truth
The committed docker-compose.yml was copied from the live NAS compose file at:
/volume2/docker/calibreweb/docker-compose.yml
Only documentation and .env.example were added around it.