# Calibre-Web / Books Infrastructure repository for the Calibre-Web service at: ```text https://books.mischlabs.de ``` The service currently uses the upstream LinuxServer image: ```text 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: ```text 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 ```text 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: ```sh 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: ```sh 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 `/books` mount can make the library look empty even when the files still exist. - A wrong `/config` mount 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: ```text /volume2/docker/calibreweb/docker-compose.yml ``` Only documentation and `.env.example` were added around it.