docs: record Zabbix decision, CT122 conflict, OIDC/exposure status
CI / web (push) Successful in 18s
CI / api (push) Successful in 24s

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-12 21:17:06 -06:00
parent a431b87f1f
commit 04131006ed
+29 -9
View File
@@ -27,9 +27,10 @@ One login instead of logging into Proxmox, Zabbix, OMV, and every service separa
server always runs a fixed read-only script regardless of what's exec'd, so a leaked key is still
contained. See `docs/ssh-collector-key-setup.md`, including the gotcha that `diskPaths` in
`hosts.yaml` must be kept in sync **by hand** with the remote script's `DISK_<label>=` lines.
- Everything else (Zabbix alerts) is filed as backlog issues, not yet implemented.
- Auth: local (bcrypt + signed session cookie) is live. `AUTH_MODE=oidc` is a stubbed config value only —
Authentik wiring is issue #12, not implemented.
- No Zabbix collector — see "Zabbix: intentionally skipped" below.
- Auth: local (bcrypt + signed session cookie) is **always** available — it's not an exclusive mode
switch. OIDC via Authentik is an *additional* sign-in button, live when `OIDC_ENABLED=true`. See
`docs/oidc-setup.md`. Deliberately additive so OIDC config problems can never lock out the admin login.
- **Device discovery** (done, separate from the collector system above — it's inventory, not per-host
metrics): `scripts/discover-devices.sh` runs via systemd timer **on the CT122 host**, not in Docker
(real ARP entries live in the host's network namespace, not Docker's bridge network). API reads the
@@ -41,16 +42,35 @@ One login instead of logging into Proxmox, Zabbix, OMV, and every service separa
- **Proxmox API token**: `monitor@pve!dashboard`, role `PVEAuditor` (read-only), created via `pveum` on
`pve`. Secret lives only in CT122's `.env`.
- **Deployment**: CT122 (`homelab-monitor`, 192.168.1.103), unprivileged LXC on `pve`, Docker + Compose.
SSH alias `homelab-monitor` in `~/.ssh/config` (root, key-based). Not yet exposed externally — see
issue #13 (needs NPM proxy host + Cloudflare tunnel route).
SSH alias `homelab-monitor` in `~/.ssh/config` (root, key-based).
⚠️ **CT122 ID conflict**: the main homelab repo's `jhodgkin/homelab#15` (Grafana/Loki/Prometheus
migration) also planned to use CT122. That issue predates this dashboard's CT122 but wasn't checked
before provisioning. Flagged in a comment on that issue — when #15 is picked up, it needs a different
CT ID (123 or next free).
- **SSH collector key**: `monitor_ed25519` keypair lives only at `/opt/homelab-monitor/ssh/` on CT122
(gitignored, not in the repo). Public key installed on `omv` and `ripper` with a forced command —
see `docs/ssh-collector-key-setup.md`.
- **Vaultwarden**: dashboard admin credentials saved as "Homelab Monitor (dashboard admin)".
- **Authentik OIDC provider**: set up via an Authentik blueprint on CT121 (not a manual UI step) — see
`docs/oidc-setup.md`. Purely additive, didn't touch any existing Authentik user/credential.
- **NPM proxy host**: `monitor.jerodrigged.com` → 192.168.1.103:8090 created (id 14 in NPM), but **no
DNS/Cloudflare tunnel route yet** — the hostname won't resolve until issue #13 finishes (needs a
Cloudflare API token from the user). No SSL cert requested yet either (Let's Encrypt HTTP-01 needs the
domain to actually resolve first).
- **Vaultwarden**: dashboard admin credentials saved as "Homelab Monitor (dashboard admin)". OIDC client
credentials not yet saved there (pending a `BW_SESSION` from the user).
## Zabbix: intentionally skipped, not blocked
Investigated CT109 while working issue #11 and found Zabbix was never actually finished being set up
(frontend not wired into Apache, setup wizard never run, no real hosts monitored, likely still on
default `Admin`/`zabbix` credentials). Turned out this is expected: `jhodgkin/homelab#15` already plans
to decommission Zabbix entirely in favor of Prometheus+Loki+Grafana. User's call: skip Zabbix
integration entirely rather than finish configuring a service that's being replaced. homelab-monitor
issue #11 is closed as won't-do — if a metrics-alerting panel is wanted later, it should target
Grafana/Prometheus once `homelab#15` lands, as a new issue, not a reopening of #11.
## Known gaps / explicitly deferred (see issues for detail)
- No historical charts yet — only the latest snapshot is shown (24h retention in SQLite unused by the UI so far).
- No Zabbix/Graylog integration yet — this dashboard doesn't duplicate their alerting, just complements it later.
- Public exposure and Authentik OIDC both need either credentials from the user or manual dashboard steps
(Cloudflare Zero Trust, NPM admin UI, Authentik admin) — flagged in the relevant issues, not blocking.
- Public exposure (issue #13) is half-done: NPM proxy host exists, Cloudflare DNS/tunnel route does not.
Needs a Cloudflare API token (Zero Trust: Edit) from the user to finish.