# vm-esh-nas Docker VM on the `esh-pve-nas` hypervisor (10.0.50.55), at the ESH home lab. Runs nas-adjacent containers that need local mounts of the shares served by the Debian NAS at `10.0.50.50` — Filezilla, a Beszel agent, a Dozzle agent, and Dockge. ## Network - **LAN IP:** 10.0.50.154 - **FQDN:** `vm-esh-nas.esteban.net` - **SSH:** `lkraven@vm-esh-nas` (key auth; `/etc/hosts` entry on the workstation) ## Hardware (from latest snapshot) - **OS:** Debian 12 (bookworm), kernel 6.1.0-32-amd64 - **CPU:** 4 cores, Intel Xeon W-1250 @ 3.30 GHz (shared with the host) - **RAM:** 3.8 GB total, ~3.1 GB available - **Root disk:** 125 GB at 7% used - **NFS mounts (all from `10.0.50.50`):** - `/mnt/share` — 96 TB, 4 TB used (general share) - `/mnt/music` — 92 TB, empty - `/mnt/books` — 92 TB, 96 GB used - `/mnt/media` — 111 TB, 20 TB used - All in `/etc/fstab`, reconnect on boot. ## What runs here | Container | Image | Role | |---|---|---| | `beszel-agent` | henrygd/beszel-agent:latest | Metrics agent reporting to the hub on ana-docker | | `dozzle-agent` | amir20/dozzle:latest | Log agent (exposed on port 7007) | | `dockge-dockge-1` | louislam/dockge:latest | Local compose UI, port 5001 | | `filezilla` | jlesage/filezilla | Web Filezilla on port 5800 (referenced in homepage bookmarks.yaml under UltraSeedbox) | ## Refresh state ```bash scripts/refresh-server-info.sh vm-esh-nas ``` ## Stack mirror layout - `stacks-mirror/vm-esh-nas/beszel-agent-esh-nas/` — Beszel agent (canonical in `stacks/beszel/`) - `filezilla` — canonical in `stacks/filezilla/` - Other stacks (`dockge`, `dozzle-agent`) not yet canonicalized; run `sync-stacks.sh vm-esh-nas` to pull them into the mirror. ## Placement rule NAS-adjacent Docker host. Good choice for anything that needs direct NFS mounts (`/mnt/{share,music,books,media}`) without routing through another VM. Low RAM ceiling (3.8 GB) — keep heavy workloads elsewhere. ## Known nits - **Check restart policies after any reboot of this host.** `dockge`, `dozzle-agent`, and `beszel-agent` carry restart policies; `filezilla` did not, and stayed down silently for four days after the 2026-08-18 reboot (fixed 2026-08-22 — `restart: unless-stopped`). Anything else added here needs the policy set explicitly. - `/opt/docker/compose` is world-writable (drwxrwxrwx). Harmless but worth tightening at some point. - `/opt/docker/conf` doesn't exist yet; stacks that need bind-mounted config (Traefik, CrowdSec, etc.) would need to create it.