CT / VM inventory¶
Verified 2026-05-20 via pct list, pct config <id>, qm config 100 on nuc.
| VMID | Name | Type | IP | Cores | RAM (MiB) | Rootfs | Role | UNAS mount | GPU | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| 100 | haos | VM (q35/OVMF) | DHCP via vmbr0 (.60) |
4 | 16384 (balloon 4096) | 32 GiB local-zfs | Home Assistant OS; USB Zigbee dongle (10c4:ea60) passed through → Zigbee2MQTT add-on + Mosquitto broker add-on; OCPP (EV charger); ~2492 entities | — | no | running |
| 101 | shepard | LXC unpriv | 192.168.1.49/24 | 12 | 32768 | 500 GiB | Shepard product stack (Caddy, frontend, backend, Keycloak, Mongo, Neo4j, TimescaleDB) | mp0 NFS | Intel iGPU (card+render) | running |
| 102 | dns | LXC unpriv | 192.168.1.2/24 | 2 | 1024 | 4 GiB | AdGuard Home — LAN DNS resolver + filter | — | no | running |
| 103 | backrest | LXC unpriv | 192.168.1.3/24 | 1 | 4096 + 1024 swap | 8 GiB | Backrest (restic) backup scheduler | mp0 NFS | no | running |
| 104 | docker | LXC unpriv (idmapped) | 192.168.1.40/24 | 16 | 49152 | 200 GiB | Main Docker host — AI/ML + media + identity-adjacent (~70 containers); Gitea (:3000/:222) + Coder (:7080) migrated from CT 111 2026-05-26; Proton Mail Bridge (:1025 SMTP/:1143 IMAP) | mp0 NFS | Intel iGPU (card+render) | running |
| 105 | nextcloud | LXC priv | 192.168.1.41/24 | 4 | 8196 | 100 GiB | Nextcloud AIO | mp0 NFS | Intel iGPU (render only) | running |
| 108 | zoraxy | LXC unpriv | 192.168.1.4/24 | 2 | 2048 | 6 GiB | Zoraxy reverse proxy + ACME (*.nuclide.systems) |
— | no | running |
| 109 | ops | LXC unpriv | 192.168.1.8/24 | 4 | 4096 | 32 GiB | Ops — Prometheus + Grafana + Loki + Alloy + pve-exporter + Homepage (:10000) + Portainer (:9000) + Dozzle (server) + docs-server + Infisical (:8200) + Pocket-ID (:11000, migrated from CT 110 2026-05-26); Dozzle agents on all Docker hosts | — | no | running |
| ~~110~~ | ~~id~~ | — | — | — | — | — | DESTROYED 2026-05-26 — Pocket-ID migrated to CT 109; LXC removed | — | — | — |
| ~~111~~ | ~~dev~~ | — | — | — | — | — | DESTROYED 2026-05-26 — Coder + Gitea migrated to CT 104; LXC removed | — | — | — |
| ~~112~~ | ~~secrets~~ | — | — | — | — | — | DESTROYED 2026-05-26 — Infisical migrated to CT 109; LXC removed | — | — | — |
| 113 | db | LXC unpriv | 192.168.1.6/24 | 2 | 4096 | 40 GiB | Shared Postgres 17 + pgAdmin + WAL-G → Garage S3; Arcane edge agent | — | no | running |
UNAS NFS = 192.168.1.31:/var/nfs/shared/storage over NFSv3. CT 105 (Nextcloud) is the lone outlier — it mounts the same UNAS share over CIFS/SMB 3.1.1, not NFS.
CT 112 ("secrets") — Infisical deployed 2026-05-22; see services/secrets-manager.md. LAN: http://192.168.1.7:8200. No Zoraxy route — secrets must not be internet-exposed.
CT 105 ("nextcloud") — migrated from CIFS (//192.168.1.31/storage) to NFS (192.168.1.31:/var/nfs/shared/storage) on 2026-05-22. CIFS mount was not remounting after host reboots, causing Nextcloud crash-loops. NFS is consistent with all other CTs.
SSH access¶
The Proxmox host (nuc, 192.168.1.20) has root SSH access to all LXC containers via key auth. To grant your own key access to every running container in one step, run on the host:
deploy-ssh-key "ssh-ed25519 AAAA... you@yourmachine"
# or pipe it:
ssh nuc 'cat' < ~/.ssh/id_ed25519.pub | deploy-ssh-key
Script is at /usr/local/bin/deploy-ssh-key. It iterates pct list, skips stopped CTs, and appends the key to /root/.ssh/authorized_keys idempotently (no duplicates).
VM 100 (HAOS, 192.168.1.60) cannot be reached via pct exec. Install manually in the HA terminal:
Host key (root@nuc, already deployed to all CTs 2026-05-21):
CT 113 ("db") provisioned 2026-05-21; see services/databases.md. Future role: consolidate per-stack Postgres instances once second NVMe lands.
CT 109 ("ops") provisioned 2026-05-23. Debian 13, Docker 29.5.2. Stack /opt/stacks/monitoring: Prometheus (:9090), Grafana (:3000 — LAN only, admin/tapirnase), Loki (:3100), node-exporter (:9100 host-net), pve-exporter (:9221), Alloy (:12345), Portainer BE (:9000), Dozzle server (:10001), docs-server (:13080), Wetty web-SSH (:4090 LAN-only). Homepage (:10000 — ops.nuclide.lan:10000) at /opt/stacks/homepage/ — replaced Homarr 2026-05-26; remote Docker via socket-proxy on CT 110/111/112/113 and direct TCP on CT 104. Scrapes: node-ct104 :9100, node-ct109 :9100, home-assistant 192.168.1.60:8123/api/prometheus, prometheus self, walg CT 113 :9100/textfile.