docs: record quadlet standardization of dankserver media + dankclaw data roots
Phase 1/2 of the podman standardization plan: service pages updated to the quadlet reality (units, Containers data roots, env-file secret convention, the v1-generator findings each caught live), Storage Policy documents the two rootless ownership regimes and the merge-move migration, Deployment Flow's service-manager table no longer claims dankserver media is bare inventory-only. Bundle change log entry added.
This commit is contained in:
@@ -11,6 +11,45 @@ timestamp: 2026-09-14
|
||||
|
||||
# Bundle Change Log
|
||||
|
||||
## 2026-09-01 — dankserver media stack standardized to quadlet; dankclaw data roots migrated
|
||||
- **Incident context**: Dankserver hard-crashed and rebooted 2026-09-01; every
|
||||
bare compose-era media container (RomM trio, Jellyfin, Calibre-Web,
|
||||
Copyparty) stayed dead at boot — the failure mode the Boot Persistence rule
|
||||
exists for. Recovery doubled as the Phase 1 cutover.
|
||||
- **Phase 1 (dankserver)**: six quadlet units shipped
|
||||
(`dankserver/{romm,jellyfin,calibre-web,copyparty}/quadlet/`) + first-cutover
|
||||
deploy handlers (retire bare containers → rescue RomM's anonymous `/romm`
|
||||
volume → merge-move `/opt/<svc>` into `/home/dank/Containers/<svc>` →
|
||||
ordered start with health gates). All six verified: units `active`,
|
||||
`is-enabled=generated` (wants in the generator dir), ports 8085→8080,
|
||||
8096, 8083, 3923 answering, jellyfin holds `/dev/dri` render nodes,
|
||||
entropy binds provably ro except copyparty's `/w`. MariaDB continuity
|
||||
proven via the real `dank` admin row (created 2026-08-31), not a fresh
|
||||
bootstrap. Stale compose-era `container-*.service` generate-systemd units
|
||||
retired to `~/.AGENTTRASH/20260901-stale-generate-systemd`.
|
||||
- **Deployer findings fixed** (each caught live, each with a new seam):
|
||||
v1 generator rejects `Command=` (→ `Exec=`), `Device=` (→ `AddDevice=`,
|
||||
whole-unit rejection is silent), and splits spaces in `HealthCmd=`
|
||||
(→ omitted for copyparty); `migrate_data_root` must merge into pre-seeded
|
||||
destinations and rename mapped-subuid roots (100998) with `sudo mv`
|
||||
(numeric-preserving, `keep` mode skips the chown — chowning mapped data
|
||||
breaks the in-container users); quadlet unit dir must be created on a host
|
||||
that never had quadlet; missing `PublishPort` = app answers inside the
|
||||
netns only (copyparty 3923); seeded env files must carry **compose-provided
|
||||
vars only** — the image-baked `HOME=/root` in a `[Service]
|
||||
EnvironmentFile=` kills the podman client itself.
|
||||
- **Phase 2 (dankclaw)**: data roots of gitea, authentik, hermes trios moved
|
||||
to `/home/dank/Containers/<svc>/` while running (rename is inode-bound —
|
||||
zero downtime), units repointed, redeployed through `deploy.sh --service`;
|
||||
auth chain verified end-to-end (outpost ping → 302 to flow).
|
||||
`deploy_hermes` ordering bug fixed: generated units must be reloaded
|
||||
**after** unit files are copied, not before (stale ExecStart crash-looped
|
||||
the trio on the old path).
|
||||
- **Docs**: [[RomM]], [[Jellyfin]], [[Calibre-Web]], [[Copyparty]] updated to
|
||||
the quadlet reality; [[Storage Policy]] now documents the Containers layout
|
||||
+ the two ownership regimes; [[Deployment Flow]] service-manager table
|
||||
corrected (dankserver media is no longer "bare containers, inventory only").
|
||||
|
||||
## 2026-08-30 (night II) — frank-default-sightsound deployed; NPU SVA/IOMMU root cause
|
||||
- **Deployed** `frank-default-sightsound` on Dankclaw: FLM v1.0.1 (`/usr/bin/flm`,
|
||||
dpkg `fastflowlm`) serving the whole local registry (36 tags) on port 52626;
|
||||
|
||||
Reference in New Issue
Block a user