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:
@@ -73,7 +73,7 @@ These are set via environment variables or in `config.yml`:
|
||||
|
||||
### Config File
|
||||
|
||||
RomM uses `config.yml` for scan settings, available through the admin UI (Scan Settings). Place the file at `/opt/romm/config/config.yml` on the host.
|
||||
RomM uses `config.yml` for scan settings, available through the admin UI (Scan Settings). Place the file at `/home/dank/Containers/romm/config/config.yml` on the host.
|
||||
|
||||
Key scan config options:
|
||||
|
||||
@@ -99,17 +99,40 @@ scan:
|
||||
export: true # Export ES-DE compatible gamelist.xml
|
||||
```
|
||||
|
||||
## Deployment (Quadlet)
|
||||
|
||||
Since 2026-09-01 the trio runs as repo-tracked quadlet units, deployed with
|
||||
`./scripts/deploy.sh dankserver --service romm` (any of `romm`,
|
||||
`romm-mariadb`, `romm-redis` triggers the full ordered cutover):
|
||||
|
||||
- Units: `dankserver/romm/quadlet/{romm,romm-mariadb,romm-redis}.container`
|
||||
→ generated `romm.service` etc., enabled via the quadlet generator's
|
||||
`default.target.wants` (`is-enabled` reports `generated`).
|
||||
- Secrets: host-local `/home/dank/Containers/romm/env` (0600, 15 app vars —
|
||||
compose-provided keys only; image-baked vars like `HOME`/`PATH` must never
|
||||
enter it, they poison the podman client's service environment).
|
||||
- Network: `dankserver_appnet` with aliases `mariadb`/`redis` (replaces
|
||||
compose service discovery; `DB_HOST`/`REDIS_HOST` still resolve).
|
||||
- Publish: `8085:8080` (`PublishPort=`, see the seam test on published ports).
|
||||
|
||||
## Volumes
|
||||
|
||||
| Container path | Host path (convention) |
|
||||
|----------------|------------------------|
|
||||
| `/romm/library` | `/opt/romm/library` |
|
||||
| `/romm/resources` | `/opt/romm/resources` |
|
||||
| `/romm/config` | `/opt/romm/config` |
|
||||
| Container path | Host path |
|
||||
|----------------|-----------|
|
||||
| `/romm/library` | `/home/dank/Containers/romm/library` |
|
||||
| `/romm/resources` | `/home/dank/Containers/romm/resources` |
|
||||
| `/romm/config` | `/home/dank/Containers/romm/config` |
|
||||
| `/var/lib/mysql` | `/home/dank/Containers/romm/mariadb` (mapped subuid owner — never chown) |
|
||||
| `/data` (redis) | `/home/dank/Containers/romm/redis` (mapped subuid owner) |
|
||||
|
||||
The library volume contains ROM files and subdirectories per platform. The resources volume stores cached artwork, metadata, and the SQLite/SQLite-backed asset cache. The config volume holds `config.yml` and other configuration.
|
||||
The library volume contains ROM files and subdirectories per platform. The resources volume stores cached artwork, metadata, and the asset cache. The config volume holds `config.yml` and other configuration.
|
||||
|
||||
## Docker Compose
|
||||
The cutover rescued RomM's anonymous `/romm` volume (assets, plus empty
|
||||
mountpoint stubs that shadowed nothing) into the data root before first unit
|
||||
start — the mechanism behind the original "RomM data wiped" incident is now
|
||||
structurally impossible: the units declare bind mounts only.
|
||||
|
||||
## Docker Compose (reference — retired 2026-09-01, superseded by the quadlet units above)
|
||||
|
||||
```yaml
|
||||
services:
|
||||
|
||||
Reference in New Issue
Block a user