Files
Frank 327e78b950 docs(vault): destroy the dead weight — 53 pages and the change diary
The vault was 155 pages / 31,210 lines, most of it measurement ledgers for
payloads that no longer run. A throughput figure for a runtime nobody operates is
not a record: AI moves faster than the vault, so the number is wrong before
anyone reads it, and a wrong number in a runbook gets believed. Per the new
purpose test in `AGENTS.md` → *Documentation Policy*, it is destroyed.

Gone (`.AGENTTRASH/20261019-destruction/`, KILL-LIST.txt is the manifest):
- the `frank-medium` endpoint and its five era pages, `frank-npu`, FastFlowLM,
  the ikllama/kingjones/dealign/frank-redo eras, the ling/swift15/freetoken/ubatch
  campaign pages, qwen3.8 spec-matrix and strix-optimizations, the two
  "Running Qwen3.6 …" pages;
- the whole `Pipeline Parallelism/` folder (no live script passes a pipeline flag)
  and the multi-device/x4-pair/hybrid/offload experiment pages;
- every vLLM page — no vLLM endpoint exists on this fleet;
- `LLM/deployment.md` (`Architecture/Deployment Flow.md` is the test-referenced
  owner) and the external surveys (SGLang, Lemonade, llama.cpp forks/diff,
  self-hosted app census, the TTS survey) that were obsolete by construction;
- `log.md`, 2,380 lines. Git holds the chronology; a causal law belongs to the
  page that owns the thing it governs, never to a diary.

Survivors: 101 pages, 17,542 lines, 0 OKF violations, 0 unresolved links. Eras
tables keep the window, payload, runtime, reason and rollback pointer; the rate
columns are blanked. The live shapes stay verbatim — those numbers are what the
deployer and `models.yml` consume.
2026-10-19 10:56:37 -07:00

4.7 KiB

type, description, tags, timestamp
type description tags timestamp
reference Calibre is the e-book library manager that backs Calibre-Web.
dankserver
calibre
2026-09-21

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.15.0 is the version on the live host (the upstream latest as of 2026-09-22). Major features include:

  • Bookshelf view
  • Opt-in AI features
  • Content-server path-traversal fix: a bug since v6.16.0 allowed any user with server access to read non-Calibre files on the host. (The CVE-2025-7404 advisory is tracked against Calibre-Web, see Calibre-Web.) Upgrade to 9.15.0+ if serving content to untrusted users.

Library Directory

The live Calibre-Web container bind-mounts the library at /books:

Purpose Host path (live)
Calibre library /home/dank/Containers/calibre-web/books → /books in the Calibre-Web container

(The older /opt/calibre-web/books path was the compose-era location and is gone; the quadlet unit mounts the Containers data root.)

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).

Calibre Content Server (running)

Calibre includes a built-in HTTP content server (calibre-server) that serves the library via OPDS feeds and a web interface:

  • OPDS feeds for mobile reading apps (FBReader, Moon+ Reader, KyBook)
  • Web UI for browsing, metadata editing, and uploads
  • Direct device push (from the GUI, not the content server)

Live shape (deployed 2026-09-21): a rootless Quadlet unit (dankserver/calibre-server/quadlet/calibre-server.container), boot-persistent and self-healing, on lscr.io/linuxserver/calibre:9.15.0.

The image is the current desktop build (Selkies web-streamed GUI), not the headless image the old compose snippet assumed — the dedicated headless images (ta264/docker-calibre, agentgreen/calibre-server) are dormant (calibre 6.10 / 2017, both below the 9.9.0 content-server fix). The unit therefore runs calibre-server as the image's s6-overlay main service via Exec=.

Surface Host port Auth
Content server (OPDS + web UI) 8084 (internal 8090) HTTP Basic, single admin calibre in the SQLite userdb
Desktop GUI (internal only) none (8080/8181/8082 inside the container) HTTP Basic ready (CUSTOM_USER/CUSTOM_PASSWORD in the env file)

Port notes: Network=pasta on this host is port-FORWARD mode — the container keeps its own netns and only PublishPort'd ports reach the host (verified 2026-09-21). The desktop GUI runs but is unreachable: exposing the browser GUI is one PublishPort line away. 8080 inside the container is the image's own nginx (the desktop), so the content server runs on internal 8090.

Auth model (calibre 9.x): users live in a SQLite userdb whose pw column is plaintext — the file is mode 600. The single admin account is bootstrapped once by the deploy handler (deploy_calibre_server in scripts/deploy-remote.sh) calibre-server --manage-users -- add, the password piped on stdin with printf (a trailing newline from echo lands in the stored password and breaks every login). The desktop's basic auth (CUSTOM_USER/CUSTOM_PASSWORD) reuses the same pair. Both live in the machine-local env file /home/dank/Containers/calibre-server/env (mode 600); the repo holds no secrets. --auth-mode=basic is pinned: on a non-SSL port the server defaults to Digest auth, which rejects plain Basic clients with 400 Unsupported authentication method.

LAN-only (no vhost, no public DNS). The library is mounted read-write — the content server writes metadata, the same library Calibre-Web uses.

See Also