
===== HOST =====

Hostname:   vm-esh-nas.esteban.net
Date:       2026-04-20T19:01:19-07:00
Uptime:     up 3 weeks, 2 hours, 44 minutes
OS:         Debian GNU/Linux 12 (bookworm)
Kernel:     6.1.0-32-amd64
Arch:       x86_64

===== HARDWARE =====

CPU cores:  4
CPU model:  Intel(R) Xeon(R) W-1250 CPU @ 3.30GHz
MemTotal:   3.8 GB
MemAvailable: 3.1 GB

===== GPUS =====

nvidia-smi not present (no NVIDIA GPUs or driver not installed)

===== FILESYSTEMS (df) =====

Filesystem             Size  Used Avail Use% Mounted on
/dev/sda1              125G  7.2G  111G   7% /
10.0.50.50:/mnt/share   96T  4.0T   92T   5% /mnt/share
10.0.50.50:/mnt/music   92T     0   92T   0% /mnt/music
10.0.50.50:/mnt/books   92T   96G   92T   1% /mnt/books
10.0.50.50:/mnt/media  111T   20T   92T  18% /mnt/media

===== PERSISTENT MOUNTS (/etc/fstab, non-comment) =====

UUID=e7048b10-408e-4cf7-8d2c-e3a3b4b41454 /               ext4    errors=remount-ro 0       1
UUID=335486fa-ba3c-442d-99fe-a29ec498f218 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
10.0.50.50:/mnt/books /mnt/books nfs defaults 0 0
10.0.50.50:/mnt/media /mnt/media nfs defaults 0 0
10.0.50.50:/mnt/share /mnt/share nfs defaults 0 0
10.0.50.50:/mnt/music /mnt/music nfs defaults 0 0

===== TARGETED DATA PATHS =====

/opt  (total: 60K)
  total 16
  drwxr-xr-x  4 root root 4096 2024-06-08 10:55 .
  drwxr-xr-x 19 root root 4096 2025-04-04 11:42 ..
  drwx--x--x  4 root root 4096 2024-06-08 10:55 containerd
  drwxrwxrwx  3 root root 4096 2026-04-20 18:56 docker

/opt/docker  (total: 52K)
  total 12
  drwxrwxrwx 3 root    root    4096 2026-04-20 18:56 .
  drwxr-xr-x 4 root    root    4096 2024-06-08 10:55 ..
  drwxr-xr-x 6 lkraven lkraven 4096 2026-04-20 18:57 compose

/opt/docker/compose  (total: 48K)
  total 24
  drwxr-xr-x 6 lkraven lkraven 4096 2026-04-20 18:57 .
  drwxrwxrwx 3 root    root    4096 2026-04-20 18:56 ..
  drwxr-xr-x 2 lkraven lkraven 4096 2026-04-19 01:09 beszel-agent-esh-nas
  drwxr-xr-x 2 lkraven lkraven 4096 2026-04-20 18:56 dockge
  drwxr-xr-x 2 root    root    4096 2026-04-19 00:43 dozzle-agent
  drwxr-xr-x 2 root    root    4096 2025-04-04 11:42 filezilla

/var/lib/docker  (total: 4.0K)

/srv  (total: 4.0K)
  total 8
  drwxr-xr-x  2 root root 4096 2024-06-08 10:34 .
  drwxr-xr-x 19 root root 4096 2025-04-04 11:42 ..


===== DOCKER =====

Server: 28.0.4   Client: 28.0.4

----- docker info -----
Containers:      4 (running 4, paused 0, stopped 0)
Images:          9
Runtimes:        map[io.containerd.runc.v2:{{runc []  map[]} map[org.opencontainers.runtime-spec.features:{"ociVersionMin":"1.0.0","ociVersionMax":"1.2.0","hooks":["prestart","createRuntime","createContainer","startContainer","poststart","poststop"],"mountOptions":["async","atime","bind","defaults","dev","diratime","dirsync","exec","iversion","lazytime","loud","mand","noatime","nodev","nodiratime","noexec","noiversion","nolazytime","nomand","norelatime","nostrictatime","nosuid","nosymfollow","private","ratime","rbind","rdev","rdiratime","relatime","remount","rexec","rnoatime","rnodev","rnodiratime","rnoexec","rnorelatime","rnostrictatime","rnosuid","rnosymfollow","ro","rprivate","rrelatime","rro","rrw","rshared","rslave","rstrictatime","rsuid","rsymfollow","runbindable","rw","shared","silent","slave","strictatime","suid","symfollow","sync","tmpcopyup","unbindable"],"linux":{"namespaces":["cgroup","ipc","mount","network","pid","time","user","uts"],"capabilities":["CAP_CHOWN","CAP_DAC_OVERRIDE","CAP_DAC_READ_SEARCH","CAP_FOWNER","CAP_FSETID","CAP_KILL","CAP_SETGID","CAP_SETUID","CAP_SETPCAP","CAP_LINUX_IMMUTABLE","CAP_NET_BIND_SERVICE","CAP_NET_BROADCAST","CAP_NET_ADMIN","CAP_NET_RAW","CAP_IPC_LOCK","CAP_IPC_OWNER","CAP_SYS_MODULE","CAP_SYS_RAWIO","CAP_SYS_CHROOT","CAP_SYS_PTRACE","CAP_SYS_PACCT","CAP_SYS_ADMIN","CAP_SYS_BOOT","CAP_SYS_NICE","CAP_SYS_RESOURCE","CAP_SYS_TIME","CAP_SYS_TTY_CONFIG","CAP_MKNOD","CAP_LEASE","CAP_AUDIT_WRITE","CAP_AUDIT_CONTROL","CAP_SETFCAP","CAP_MAC_OVERRIDE","CAP_MAC_ADMIN","CAP_SYSLOG","CAP_WAKE_ALARM","CAP_BLOCK_SUSPEND","CAP_AUDIT_READ","CAP_PERFMON","CAP_BPF","CAP_CHECKPOINT_RESTORE"],"cgroup":{"v1":true,"v2":true,"systemd":true,"systemdUser":true,"rdma":true},"seccomp":{"enabled":true,"actions":["SCMP_ACT_ALLOW","SCMP_ACT_ERRNO","SCMP_ACT_KILL","SCMP_ACT_KILL_PROCESS","SCMP_ACT_KILL_THREAD","SCMP_ACT_LOG","SCMP_ACT_NOTIFY","SCMP_ACT_TRACE","SCMP_ACT_TRAP"],"operators":["SCMP_CMP_EQ","SCMP_CMP_GE","SCMP_CMP_GT","SCMP_CMP_LE","SCMP_CMP_LT","SCMP_CMP_MASKED_EQ","SCMP_CMP_NE"],"archs":["SCMP_ARCH_AARCH64","SCMP_ARCH_ARM","SCMP_ARCH_MIPS","SCMP_ARCH_MIPS64","SCMP_ARCH_MIPS64N32","SCMP_ARCH_MIPSEL","SCMP_ARCH_MIPSEL64","SCMP_ARCH_MIPSEL64N32","SCMP_ARCH_PPC","SCMP_ARCH_PPC64","SCMP_ARCH_PPC64LE","SCMP_ARCH_RISCV64","SCMP_ARCH_S390","SCMP_ARCH_S390X","SCMP_ARCH_X32","SCMP_ARCH_X86","SCMP_ARCH_X86_64"],"knownFlags":["SECCOMP_FILTER_FLAG_TSYNC","SECCOMP_FILTER_FLAG_SPEC_ALLOW","SECCOMP_FILTER_FLAG_LOG"],"supportedFlags":["SECCOMP_FILTER_FLAG_TSYNC","SECCOMP_FILTER_FLAG_SPEC_ALLOW","SECCOMP_FILTER_FLAG_LOG"]},"apparmor":{"enabled":true},"selinux":{"enabled":true},"intelRdt":{"enabled":true},"mountExtensions":{"idmap":{"enabled":true}}},"annotations":{"io.github.seccomp.libseccomp.version":"2.5.4","org.opencontainers.runc.checkpoint.enabled":"true","org.opencontainers.runc.commit":"v1.2.5-0-g59923ef","org.opencontainers.runc.version":"1.2.5"},"potentiallyUnsafeConfigAnnotations":["bundle","org.systemd.property.","org.criu.config"]}]} runc:{{runc []  map[]} map[org.opencontainers.runtime-spec.features:{"ociVersionMin":"1.0.0","ociVersionMax":"1.2.0","hooks":["prestart","createRuntime","createContainer","startContainer","poststart","poststop"],"mountOptions":["async","atime","bind","defaults","dev","diratime","dirsync","exec","iversion","lazytime","loud","mand","noatime","nodev","nodiratime","noexec","noiversion","nolazytime","nomand","norelatime","nostrictatime","nosuid","nosymfollow","private","ratime","rbind","rdev","rdiratime","relatime","remount","rexec","rnoatime","rnodev","rnodiratime","rnoexec","rnorelatime","rnostrictatime","rnosuid","rnosymfollow","ro","rprivate","rrelatime","rro","rrw","rshared","rslave","rstrictatime","rsuid","rsymfollow","runbindable","rw","shared","silent","slave","strictatime","suid","symfollow","sync","tmpcopyup","unbindable"],"linux":{"namespaces":["cgroup","ipc","mount","network","pid","time","user","uts"],"capabilities":["CAP_CHOWN","CAP_DAC_OVERRIDE","CAP_DAC_READ_SEARCH","CAP_FOWNER","CAP_FSETID","CAP_KILL","CAP_SETGID","CAP_SETUID","CAP_SETPCAP","CAP_LINUX_IMMUTABLE","CAP_NET_BIND_SERVICE","CAP_NET_BROADCAST","CAP_NET_ADMIN","CAP_NET_RAW","CAP_IPC_LOCK","CAP_IPC_OWNER","CAP_SYS_MODULE","CAP_SYS_RAWIO","CAP_SYS_CHROOT","CAP_SYS_PTRACE","CAP_SYS_PACCT","CAP_SYS_ADMIN","CAP_SYS_BOOT","CAP_SYS_NICE","CAP_SYS_RESOURCE","CAP_SYS_TIME","CAP_SYS_TTY_CONFIG","CAP_MKNOD","CAP_LEASE","CAP_AUDIT_WRITE","CAP_AUDIT_CONTROL","CAP_SETFCAP","CAP_MAC_OVERRIDE","CAP_MAC_ADMIN","CAP_SYSLOG","CAP_WAKE_ALARM","CAP_BLOCK_SUSPEND","CAP_AUDIT_READ","CAP_PERFMON","CAP_BPF","CAP_CHECKPOINT_RESTORE"],"cgroup":{"v1":true,"v2":true,"systemd":true,"systemdUser":true,"rdma":true},"seccomp":{"enabled":true,"actions":["SCMP_ACT_ALLOW","SCMP_ACT_ERRNO","SCMP_ACT_KILL","SCMP_ACT_KILL_PROCESS","SCMP_ACT_KILL_THREAD","SCMP_ACT_LOG","SCMP_ACT_NOTIFY","SCMP_ACT_TRACE","SCMP_ACT_TRAP"],"operators":["SCMP_CMP_EQ","SCMP_CMP_GE","SCMP_CMP_GT","SCMP_CMP_LE","SCMP_CMP_LT","SCMP_CMP_MASKED_EQ","SCMP_CMP_NE"],"archs":["SCMP_ARCH_AARCH64","SCMP_ARCH_ARM","SCMP_ARCH_MIPS","SCMP_ARCH_MIPS64","SCMP_ARCH_MIPS64N32","SCMP_ARCH_MIPSEL","SCMP_ARCH_MIPSEL64","SCMP_ARCH_MIPSEL64N32","SCMP_ARCH_PPC","SCMP_ARCH_PPC64","SCMP_ARCH_PPC64LE","SCMP_ARCH_RISCV64","SCMP_ARCH_S390","SCMP_ARCH_S390X","SCMP_ARCH_X32","SCMP_ARCH_X86","SCMP_ARCH_X86_64"],"knownFlags":["SECCOMP_FILTER_FLAG_TSYNC","SECCOMP_FILTER_FLAG_SPEC_ALLOW","SECCOMP_FILTER_FLAG_LOG"],"supportedFlags":["SECCOMP_FILTER_FLAG_TSYNC","SECCOMP_FILTER_FLAG_SPEC_ALLOW","SECCOMP_FILTER_FLAG_LOG"]},"apparmor":{"enabled":true},"selinux":{"enabled":true},"intelRdt":{"enabled":true},"mountExtensions":{"idmap":{"enabled":true}}},"annotations":{"io.github.seccomp.libseccomp.version":"2.5.4","org.opencontainers.runc.checkpoint.enabled":"true","org.opencontainers.runc.commit":"v1.2.5-0-g59923ef","org.opencontainers.runc.version":"1.2.5"},"potentiallyUnsafeConfigAnnotations":["bundle","org.systemd.property.","org.criu.config"]}]}]
Default runtime: runc
Storage driver:  overlay2
Root dir:        /var/lib/docker
Server version:  28.0.4

----- running containers -----
NAMES             IMAGE                         STATUS                   PORTS
beszel-agent      henrygd/beszel-agent:latest   Up 4 minutes             
dockge-dockge-1   louislam/dockge:latest        Up 4 minutes (healthy)   0.0.0.0:5001->5001/tcp, [::]:5001->5001/tcp
dozzle-agent      amir20/dozzle:latest          Up 42 hours              0.0.0.0:7007->7007/tcp, 8080/tcp
filezilla         jlesage/filezilla             Up 2 weeks               0.0.0.0:5800->5800/tcp, [::]:5800->5800/tcp, 5900/tcp

----- all containers -----
NAMES             IMAGE                         STATUS
beszel-agent      henrygd/beszel-agent:latest   Up 4 minutes
dockge-dockge-1   louislam/dockge:latest        Up 4 minutes (healthy)
dozzle-agent      amir20/dozzle:latest          Up 42 hours
filezilla         jlesage/filezilla             Up 2 weeks

----- networks -----
NAME                DRIVER    SCOPE
bridge              bridge    local
filezilla_default   bridge    local
host                host      local
none                null      local
traefik-net         bridge    local

----- networks (external, non-default — worth knowing for compose external: true) -----
filezilla_default
traefik-net

----- named volumes -----
VOLUME NAME                              DRIVER
beszel-agent-esh-nas_beszel_agent_data   local
beszel-vm-esh-nas_beszel_agent_data      local
dockge_dockge_data                       local
dozzle-agent_dozzle_agent_data           local

----- compose projects currently running -----
beszel-agent-esh-nas
dockge
dozzle-agent
filezilla

===== COMPOSE FILES (/opt/docker/compose/) =====


>>> /opt/docker/compose/beszel-agent-esh-nas/compose.yaml
# Beszel — lightweight server/container monitoring.
#
# Hub: single web UI with the SQLite store. Agents: per-host metric collectors
# that the hub pulls from over SSH.
#
# Multi-host layout via compose profiles:
#   COMPOSE_PROFILES=hub          → hub only        (ana-docker)
#   COMPOSE_PROFILES=hub,agent    → hub + local agent on the same host
#   COMPOSE_PROFILES=agent        → agent only      (ana-ml2)
#
# The agent uses network_mode: host so it sees real host CPU/mem/net/disk
# counters rather than container-scoped ones — that's why it can't share
# the tnet network with the hub.
#
# All tunables live in .env — edit that, not this file.

services:
  beszel:
    image: henrygd/beszel:${BESZEL_VERSION}
    container_name: beszel
    profiles: [hub]
    restart: unless-stopped
    ports:
      - "${BESZEL_PORT}:8090"
    volumes:
      - beszel_data:/beszel_data
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://localhost:8090/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 15s
    networks:
      - tnet
    labels:
      - homepage.group=PFI-ANA
      - homepage.name=Beszel
      - homepage.icon=mdi-chart-line
      - homepage.description=Server + container monitoring
      - homepage.href=http://10.250.50.70:${BESZEL_PORT}

  beszel-agent:
    image: henrygd/beszel-agent:${BESZEL_VERSION}
    container_name: beszel-agent
    profiles: [agent]
    restart: unless-stopped
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - beszel_agent_data:/var/lib/beszel-agent
    environment:
      - PORT=${BESZEL_AGENT_PORT:-45876}
      - KEY=${BESZEL_HUB_KEY}
      - HUB_URL=${HUB_URL}
      - TOKEN=${BESZEL_TOKEN}
      - EXTRA_FILESYSTEMS=${BESZEL_EXTRA_FS:-}

volumes:
  beszel_data:
  beszel_agent_data:

networks:
  tnet:
    name: traefik-net
    external: true
>>> /opt/docker/compose/dockge/compose.yaml
services:
  dockge:
    image: louislam/dockge:latest
    restart: unless-stopped
    ports:
      # Host Port : Container Port
      - 5001:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - dockge_data:/app/data
      - /opt/docker:/opt/docker
    labels:
      - homepage.group=ESH
      - homepage.name=Dockge
      - homepage.icon=si-portainer
      - homepage.description=Docker on ESH-NAS
      - homepage.href=http://10.0.50.55
    environment:
      # Tell Dockge where is your stacks directory
      - DOCKGE_STACKS_DIR=/opt/docker/compose
    networks:
      - tnet

volumes:
  dockge_data: null
  
networks:
  tnet:
    name: traefik-net
    external: true

>>> /opt/docker/compose/dozzle-agent/compose.yaml
# Dozzle — container log viewer.
#
# Multi-host layout via compose profiles:
#   COMPOSE_PROFILES=hub   → runs the web UI (deploy on ana-docker)
#   COMPOSE_PROFILES=agent → runs the remote agent (deploy on ana-ml2)
#
# Same compose.yaml on both servers; per-host `.env` picks the profile.
#
# All tunables live in .env — edit that, not this file.

services:
  dozzle:
    image: amir20/dozzle:${DOZZLE_VERSION}
    container_name: dozzle
    profiles:
      - hub
    restart: unless-stopped
    ports:
      - ${DOZZLE_PORT}:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - dozzle_data:/data
    environment:
      - DOZZLE_HOSTNAME=${DOZZLE_HOSTNAME}
      - DOZZLE_REMOTE_AGENT=${DOZZLE_REMOTE_AGENT:-}
      - DOZZLE_AUTH_PROVIDER=${DOZZLE_AUTH_PROVIDER:-none}
      - DOZZLE_USERNAME=${DOZZLE_USERNAME:-}
      - DOZZLE_PASSWORD=${DOZZLE_PASSWORD:-}
    healthcheck:
      test:
        - CMD
        - /dozzle
        - healthcheck
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 15s
    networks:
      - tnet
    labels:
      - homepage.group=PFI-ANA
      - homepage.name=Dozzle
      - homepage.icon=mdi-text-box-search
      - homepage.description=Container logs (ana-docker + ana-ml2)
      - homepage.href=http://10.250.50.70:${DOZZLE_PORT}
  dozzle-agent:
    image: amir20/dozzle:${DOZZLE_VERSION}
    container_name: dozzle-agent
    profiles:
      - agent
    restart: unless-stopped
    command: agent
    ports:
      - ${DOZZLE_AGENT_BIND:-0.0.0.0}:${DOZZLE_AGENT_PORT}:7007
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - dozzle_agent_data:/data
    environment:
      - DOZZLE_HOSTNAME=${DOZZLE_HOSTNAME}
    networks:
      - tnet
volumes:
  dozzle_data: null
  dozzle_agent_data: null
networks:
  tnet:
    name: traefik-net
    external: true
>>> /opt/docker/compose/filezilla/compose.yaml
services:
  filezilla:
    image: jlesage/filezilla
    environment:
      - PUID=2000
      - PGID=2000
    volumes:
      - /home/user:/storage:rw
      - /docker/appdata/filezilla:/config:rw
      - /mnt/share:/NAS/share
      - /mnt/music:/NAS/music
      - /mnt/books:/NAS/books
      - /mnt/media:/NAS/media
    ports:
      - 5800:5800
    container_name: filezilla
networks: {}

===== CONFIG LAYOUT (/opt/docker/conf/ — top 200 entries) =====

/opt/docker/conf not present

===== LISTENING PORTS =====

0.0.0.0:111
0.0.0.0:22
0.0.0.0:5001
0.0.0.0:5800
0.0.0.0:7007
[::]:111
[::]:22
[::]:5001
[::]:5800

===== MODEL / HUGGINGFACE CACHES =====


===== DOCKER-ADJACENT SYSTEMD SERVICES =====

containerd.service running
docker.service running

===== DONE =====

Paste the above back into the chat, or pass a path as argv[1] to save.
