No description
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .opencode/skills/docker-stack-setup | ||
| docs | ||
| .gitignore | ||
Docker Knowledge Base
Operating rules for self-hosted Docker stacks on this host. No per-container documentation yet — this is the rulebook to follow when adding a new stack.
Host facts
| Fact | Value |
|---|---|
| Docker mode | Rootless (unprivileged-docker, uid 1121), fuse-overlayfs |
| Docker root | /mnt/newhome/unprivileged-docker/.local/share/docker (ext4) |
| Compose | Docker Compose v5 |
| Timezone | America/Los_Angeles (set TZ explicitly per stack) |
| Stack dirs | /mnt/newhome/unprivileged-docker/<stack>/ |
| Agent skill | .opencode/skills/docker-stack-setup/SKILL.md |
Read in this order
- Storage tiers — where state may live, and why.
- New container rules — the setup checklist and hard bans.
- Compose conventions — naming, ports, networks, secrets, logging, health, upgrades.
Templates: templates/docker-compose.yml and
templates/.env.example.
Per-container notes will be added under docs/containers/ once a stack is
deployed; until then the rulebook is the only source of truth.
Golden rules
- Databases and write-heavy state go on ext4 (
/mnt/newhome/...), never on btrfs COW. - Irreplaceable data goes on the mirrored NAS (
/mnt/nas/...). - Rebuildable hot data goes on NVMe btrfs (
/mnt/nvmesrv/...). - Compose files live on ext4, one directory per stack,
.envmode0600. - No
0.0.0.0port publishing by accident, noprivileged, no Docker socket mounts, nodocker system prune --volumes. - Snapshot ≠ database backup. Live databases need an application-level dump.