All in-repo path references (AGENTS.md, README, old scripts, report artifacts,
test code paths) rewritten in the same commit; focused-test map extended for
.gitignore, old/scripts/*, dankclaw/comfyui/*, and report/* per this repo's
own convention ('add one before committing'). Obsidian wikilinks are
title-based and unaffected.
70 lines
2.6 KiB
Markdown
70 lines
2.6 KiB
Markdown
# 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
|