Files
esh-pfi-infrastructure/stacks/dockge/README.md
T
vh 0be8de8ab0 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.
2026-04-20 22:14:13 -07:00

1.9 KiB

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_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

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.