Files
docs/ct-inventory.md
T
fkrebs 17b6fc6fcb CT 108 decommissioned: Zoraxy replaced by Traefik v3 on CT 109
Traefik v3 now handles all *.nuclide.systems traffic (ports 80/443).
ACME DNS-01 via Cloudflare, HTTP/2, Keep-Alive fix for Immich.
CT 108 backup: vzdump-lxc-108-2026_05_28-00_46_45.tar.zst on UNAS.
2026-05-28 00:49:28 +02:00

53 lines
4.8 KiB
Markdown

# 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~~ | — | — | — | — | — | **DESTROYED 2026-05-28** — replaced by Traefik v3 on CT 109; backup `vzdump-lxc-108-2026_05_28-00_46_45.tar.zst` on UNAS | — | — | — |
| 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) + **Traefik v3** (:80/:443/:8090) — public reverse proxy + ACME DNS-01; 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:
```bash
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:
```bash
echo "ssh-ed25519 AAAA... you@yourmachine" >> ~/.ssh/authorized_keys
```
**Host key** (`root@nuc`, already deployed to all CTs 2026-05-21):
```
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCuVqBW3VXg... root@nuc
```
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`.