dc8faaacc0
services.yaml: - ANA-Firewall: href + siteMonitor both point at the IP now (was href to FQDN but siteMonitor to IP — inconsistent) - PFI-VM-Docker, NH3-SW1, NH3-VM-Docker, ESH-VM-Docker: upgrade from `ping:` to `siteMonitor:` against the href URL so the up/down dot reflects whether the web UI actually responds, not just ICMP dockge canonical: - icon sh-dockge.png (was si-portainer — wrong project). Applies to all five fleet Dockge instances once their compose files are redeployed. Per-group colors investigated but not supported by homepage (only site- wide `color:` exists); skipped.
dockge
Per-host Dockge — 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_IPvary
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
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:
# 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.