fleet: register vm-esh-nas as 5th Docker host + canonical dockge stack
vm-esh-nas (10.0.50.154) is a NAS-adjacent Docker VM on the esh-pve-nas
hypervisor. Runs filezilla (port 5800), dockge, beszel-agent, dozzle-agent
with /mnt/{share,music,books,media} NFS-mounted from 10.0.50.50.
Use this host when a stack needs direct NFS mounts to the ESH NAS shares.
Canonicalize dockge as stacks/dockge/ — single compose used on all five
Docker hosts with per-host DOCKGE_HOST_LABEL/DOCKGE_HOST_IP in .env so
each card on the homepage points at its own instance. Labeled
homepage.group=Service Networking.
Beszel + Dozzle agent dirs also renamed to beszel-agent-<site> /
dozzle-agent-<site> pattern across the fleet for consistency.
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# dockge
|
||||
|
||||
Per-host [Dockge](https://dockge.kuma.pet/) — a lightweight web UI for
|
||||
the compose files in `/opt/docker/compose/`. Runs one instance on every
|
||||
Docker host in the fleet.
|
||||
|
||||
## Layout
|
||||
|
||||
- `compose.yaml` — canonical, same file pushed to every host
|
||||
- `.env.example` — per-host tunables; `DOCKGE_HOST_LABEL` + `DOCKGE_HOST_IP` vary
|
||||
|
||||
## Homepage
|
||||
|
||||
Labeled `homepage.group=Service Networking` so all five Dockge instances
|
||||
collapse into the toolchain group on the dashboard, each card pointing
|
||||
at its own host's web UI.
|
||||
|
||||
## Deploy
|
||||
|
||||
```bash
|
||||
cp stacks/dockge/compose.yaml stacks-mirror/<host>/dockge/
|
||||
scripts/deploy-stack.sh <host> dockge --compose
|
||||
ssh -t <host> 'cd /opt/docker/compose/dockge && sudo docker compose up -d --force-recreate'
|
||||
```
|
||||
|
||||
The `.env` with the correct `DOCKGE_HOST_LABEL` / `DOCKGE_HOST_IP` must
|
||||
exist on the host before the deploy — otherwise the homepage labels will
|
||||
render with empty substitutions. Initial seed per host:
|
||||
|
||||
```bash
|
||||
# ana-docker
|
||||
ssh -t ana-docker 'sudo tee /opt/docker/compose/dockge/.env > /dev/null <<EOF
|
||||
DOCKGE_HOST_LABEL=ana-docker
|
||||
DOCKGE_HOST_IP=10.250.50.70
|
||||
EOF'
|
||||
|
||||
# ana-ml2
|
||||
ssh -t ana-ml2 'sudo tee /opt/docker/compose/dockge/.env > /dev/null <<EOF
|
||||
DOCKGE_HOST_LABEL=ana-ml2
|
||||
DOCKGE_HOST_IP=10.250.50.54
|
||||
EOF'
|
||||
|
||||
# nh3-docker
|
||||
ssh -t nh3-docker 'sudo tee /opt/docker/compose/dockge/.env > /dev/null <<EOF
|
||||
DOCKGE_HOST_LABEL=nh3-docker
|
||||
DOCKGE_HOST_IP=10.100.50.40
|
||||
EOF'
|
||||
|
||||
# esh-docker-vm
|
||||
ssh -t esh-docker-vm 'sudo tee /opt/docker/compose/dockge/.env > /dev/null <<EOF
|
||||
DOCKGE_HOST_LABEL=esh-docker-vm
|
||||
DOCKGE_HOST_IP=10.0.50.45
|
||||
EOF'
|
||||
|
||||
# vm-esh-nas
|
||||
ssh -t vm-esh-nas 'sudo tee /opt/docker/compose/dockge/.env > /dev/null <<EOF
|
||||
DOCKGE_HOST_LABEL=vm-esh-nas
|
||||
DOCKGE_HOST_IP=10.0.50.154
|
||||
EOF'
|
||||
```
|
||||
|
||||
## Authoritative vs mirror
|
||||
|
||||
Per-host `.env` lives on the server and is gitignored.
|
||||
`compose.yaml` is authoritative in `stacks/dockge/` and gets promoted
|
||||
into `stacks-mirror/<host>/dockge/` before each deploy.
|
||||
Reference in New Issue
Block a user