Bundles the inventory expansion since 2026-04-22:
- New host dirs (READMEs + ssh-target where dir name doesn't resolve):
ana-nas, ana-wg, esh-vm-db, nh3-nas, pbs-ana, pbs-nh3.
- New PFI VM snapshots (registered + key-installed 2026-04-23):
ana-filebot, pfi-ana-webhost, pfi-postgres, pfi-pteradactyl,
pfi-tacticalrmm, sf-ana-container, sfsrv-ana (system + proxmox).
- servers/irv-ml1: ONBOARDING.md (the first-time setup notes from when
the host was brought into the fleet) + ssh-target (10.100.79.3 over
the WG tunnel — name doesn't DNS-resolve from this workstation).
- servers/{ana-ml2,pfi-pve,sf-r630}/README.md: updates to capture BMC
IPs, the iDRAC vs OS hostname distinction (sf-r630 hardware =
sfsrv-ana OS), and the ana-ml2 Supermicro BMC (10.250.250.50,
distinct from the Dell R750xs iDRAC).
- configs/homepage/docker.yaml: irv-ml1-docker provider added so
homepage auto-discovers irv-ml1's stacks over the WG tunnel.
- docs/orientation.md: narrative fleet overview written for fresh
Claude sessions — sites, backup architecture, governing principles,
gotchas, where-to-look guide. Pointed at from CLAUDE.md.
250 lines
6.0 KiB
Plaintext
250 lines
6.0 KiB
Plaintext
|
|
===== HOST =====
|
|
|
|
Hostname: sf-ana-container.surefire.com
|
|
Date: 2026-04-21T16:57:55-07:00
|
|
Uptime: up 3 weeks, 6 days, 1 hour, 17 minutes
|
|
OS: Debian GNU/Linux 12 (bookworm)
|
|
Kernel: 6.1.0-21-amd64
|
|
Arch: x86_64
|
|
|
|
===== HARDWARE =====
|
|
|
|
CPU cores: 16
|
|
CPU model: QEMU Virtual CPU version 2.5+
|
|
MemTotal: 15.6 GB
|
|
MemAvailable: 14.4 GB
|
|
|
|
===== GPUS =====
|
|
|
|
nvidia-smi not present (no NVIDIA GPUs or driver not installed)
|
|
|
|
===== FILESYSTEMS (df) =====
|
|
|
|
Filesystem Size Used Avail Use% Mounted on
|
|
/dev/sda1 250G 7.1G 231G 3% /
|
|
|
|
===== PERSISTENT MOUNTS (/etc/fstab, non-comment) =====
|
|
|
|
UUID=fcc00570-1585-41d4-8c64-8e5d59af40e0 / ext4 errors=remount-ro 0 1
|
|
UUID=35ad80f9-5952-489a-9178-575be588420c none swap sw 0 0
|
|
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
|
|
|
|
===== TARGETED DATA PATHS =====
|
|
|
|
/opt (total: 8.3M)
|
|
total 12
|
|
drwxr-xr-x 3 root root 4096 2024-06-07 10:42 .
|
|
drwxr-xr-x 18 root root 4096 2024-06-07 10:35 ..
|
|
drwxrwxrwx 5 root root 4096 2024-06-07 10:46 docker
|
|
|
|
/opt/docker (total: 8.3M)
|
|
total 20
|
|
drwxrwxrwx 5 root root 4096 2024-06-07 10:46 .
|
|
drwxr-xr-x 3 root root 4096 2024-06-07 10:42 ..
|
|
drwxr-xr-x 6 vhoang vhoang 4096 2024-06-07 11:09 compose
|
|
drwxr-xr-x 3 vhoang vhoang 4096 2024-06-07 10:46 conf
|
|
drwxr-xr-x 2 vhoang vhoang 4096 2024-06-07 10:42 data
|
|
|
|
/opt/docker/compose (total: 8.3M)
|
|
total 24
|
|
drwxr-xr-x 6 vhoang vhoang 4096 2024-06-07 11:09 .
|
|
drwxrwxrwx 5 root root 4096 2024-06-07 10:46 ..
|
|
drwxr-xr-x 2 vhoang vhoang 4096 2024-06-07 10:43 dockge
|
|
drwxr-xr-x 4 root root 4096 2024-06-07 10:58 nginx-proxy
|
|
drwxr-xr-x 2 root root 4096 2024-06-07 10:46 traefik
|
|
drwxr-xr-x 3 root root 4096 2024-06-07 11:09 vaultwarden
|
|
|
|
/opt/docker/conf (total: 8.0K)
|
|
total 12
|
|
drwxr-xr-x 3 vhoang vhoang 4096 2024-06-07 10:46 .
|
|
drwxrwxrwx 5 root root 4096 2024-06-07 10:46 ..
|
|
drwxr-xr-x 2 root root 4096 2024-06-07 10:46 traefik-esh
|
|
|
|
/var/lib/docker (total: 4.0K)
|
|
|
|
/srv (total: 4.0K)
|
|
total 8
|
|
drwxr-xr-x 2 root root 4096 2023-11-09 17:45 .
|
|
drwxr-xr-x 18 root root 4096 2024-06-07 10:35 ..
|
|
|
|
|
|
===== DOCKER =====
|
|
|
|
Server:
|
|
docker daemon not reachable by current user
|
|
|
|
----- docker info -----
|
|
Containers:
|
|
|
|
----- running containers -----
|
|
|
|
----- all containers -----
|
|
|
|
----- networks -----
|
|
|
|
----- networks (external, non-default — worth knowing for compose external: true) -----
|
|
|
|
----- named volumes -----
|
|
|
|
----- compose projects currently running -----
|
|
(none)
|
|
|
|
===== COMPOSE FILES (/opt/docker/compose/) =====
|
|
|
|
|
|
>>> /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/compose:/opt/docker/compose
|
|
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/nginx-proxy/compose.yaml
|
|
version: "3.8"
|
|
services:
|
|
app:
|
|
image: jc21/nginx-proxy-manager:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
# These ports are in format <host-port>:<container-port>
|
|
- 80:80 # Public HTTP Port
|
|
- 443:443 # Public HTTPS Port
|
|
- 81:81 # Admin Web Port
|
|
# Add any other Stream port you want to expose
|
|
# - '21:21' # FTP
|
|
|
|
# Uncomment the next line if you uncomment anything in the section
|
|
# environment:
|
|
# Uncomment this if you want to change the location of
|
|
# the SQLite DB file within the container
|
|
# DB_SQLITE_FILE: "/data/database.sqlite"
|
|
|
|
# Uncomment this if IPv6 is not enabled on your host
|
|
# DISABLE_IPV6: 'true'
|
|
|
|
volumes:
|
|
- ./data:/data
|
|
- ./letsencrypt:/etc/letsencrypt
|
|
|
|
networks:
|
|
default:
|
|
external: true
|
|
name: nginx-proxy_default
|
|
|
|
>>> /opt/docker/compose/traefik/compose.yaml
|
|
#version: "3.3"
|
|
|
|
services:
|
|
traefik:
|
|
image: traefik:latest
|
|
container_name: traefik
|
|
command:
|
|
- --log.level=DEBUG
|
|
- --configFile=/etc/traefik/traefik.yml
|
|
- --api.insecure=true
|
|
- --providers.docker=true
|
|
- --providers.docker.exposedbydefault=false
|
|
- --entrypoints.web.address=:80
|
|
environment:
|
|
- AWS_ACCESS_KEY_ID=${AWS_KEY}
|
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET}
|
|
- AWS_REGION=${AWS_REGION}
|
|
- AWS_HOSTED_ZONE_ID=${AWS_ZONEID}
|
|
ports:
|
|
- 80:80
|
|
- 8380:8080
|
|
- 443:443
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- /opt/docker/conf/traefik-esh:/etc/traefik
|
|
networks:
|
|
- tnet
|
|
env_file:
|
|
- .env
|
|
networks:
|
|
tnet:
|
|
name: traefik-net
|
|
external: true
|
|
|
|
>>> /opt/docker/compose/vaultwarden/compose.yaml
|
|
version: "3"
|
|
services:
|
|
vaultwarden:
|
|
image: vaultwarden/server:latest
|
|
container_name: vaultwarden
|
|
restart: unless-stopped
|
|
ports:
|
|
- 9445:80 #map any custom port to use (replace 8445 not 80)
|
|
volumes:
|
|
- ./bitwarden:/data:rw
|
|
environment:
|
|
- ADMIN_TOKEN=${ADMIN_TOKEN}
|
|
- WEBSOCKET_ENABLED=true
|
|
- SIGNUPS_ALLOWED=true
|
|
- DOMAIN=${DOMAIN}
|
|
- SMTP_HOST=surefire-com.mail.protection.outlook.com
|
|
- SMTP_FROM=vaultwarden@surefire.com
|
|
- SMTP_PORT=25
|
|
# - SMTP_USERNAME=relay@surefire.com
|
|
# - SMTP_PASSWORD=5Gb&237N@p%6
|
|
networks:
|
|
default:
|
|
external: true
|
|
name: nginx-proxy_default
|
|
|
|
===== CONFIG LAYOUT (/opt/docker/conf/ — top 200 entries) =====
|
|
|
|
/opt/docker/conf
|
|
/opt/docker/conf/traefik-esh
|
|
|
|
===== LISTENING PORTS =====
|
|
|
|
0.0.0.0:22
|
|
0.0.0.0:443
|
|
0.0.0.0:5001
|
|
0.0.0.0:80
|
|
0.0.0.0:8000
|
|
0.0.0.0:81
|
|
0.0.0.0:9443
|
|
0.0.0.0:9445
|
|
127.0.0.1:46567
|
|
[::]:22
|
|
[::]:443
|
|
[::]:5001
|
|
[::]:80
|
|
[::]:8000
|
|
[::]:81
|
|
[::]:9443
|
|
[::]:9445
|
|
|
|
===== 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.
|