# Calibre Calibre is the e-book library manager that backs Calibre-Web. It manages metadata, formats, and conversions for the library that Calibre-Web serves. **Host:** Dankserver (library directory on host) — **Docs:** https://calibre-ebook.com ## Role in this Stack Calibre itself is a desktop/GUI application, not a container service. This stack runs **Calibre-Web** in a container and points it at an existing Calibre library directory on the Dankserver host. Calibre is used to: - Import books into the library (drag-and-drop or CLI `calibredb`) - Edit metadata (author, title, series, tags, cover art) - Convert between formats (EPUB → MOBI, MOBI → EPUB, etc.) - Manage collections and reading lists The actual library files (`.epub`, `.mobi`, `.pdf`) and the Calibre database (`.db` file) live on the host filesystem. Calibre-Web reads and writes them through the mounted volume. ## Current Version Calibre 9.2.1 is the version on the live host (9.9.0 is the upstream latest). Major features include: - Bookshelf view - Opt-in AI features - Content server security fix (CVE-2025-7404 equivalent): a bug since v6.16.0 allows any user with server access to read non-Calibre files on the host. Upgrade to 9.9.0+ if serving content to untrusted users. ## Library Directory | Purpose | Host path (convention) | |---------|------------------------| | Calibre library | `/opt/calibre-web/books` (bind-mounted to `/books` in the Calibre-Web container) | ## What the Container Needs - Read/write access to the library directory. Calibre-Web edits metadata through the database file. - Ownership matching `PUID=1000` / `PGID=1000` (the `dank` user on Dankserver). ## Optional: Calibre Content Server Calibre includes a built-in HTTP content server (`calibre-server`) that can serve the library via OPDS feeds and a mobile-friendly web interface. This enables: - OPDS feeds for mobile reading apps (FBReader, Moon+ Reader) - Mobile-optimized UI via the `--mobile` flag - Direct Kindle push To run as a container: ```yaml services: calibre-server: image: lscr.io/linuxserver/calibre:latest container_name: calibre-server restart: unless-stopped environment: PUID: "1000" PGID: "1000" TZ: Etc/UTC command: calibre-server --daemonize --port 8080 --enable-auth --url-prefix /calibre /books volumes: - /opt/calibre-web/books:/books ports: - "8084:8080" ``` Note: The content server runs headless in `--daemonize` mode. It requires the full Calibre package, not a minimal server. ## See Also - [[Calibre-Web]] — the containerized frontend - [[Dankserver Stack]] - [[ARR-Stack]] — Readarr for automatic ebook downloads