# login-health — status on SSH login (koopa) SSH login shows a short **pre-collected** snapshot: Forgejo, GOA (`goa-regio-ng`), Caddy edge, host Tor, rest of inventory. Inventory: `configs/ports.md` + this script’s arrays (not `host/overview/`). ## New / changed services Same package: 1. `koopa-login-health.sh` — `EXPECT_CONTAINERS`, `PROBES`, critical vs optional 2. `configs/ports.md` 3. Deploy → `~/.local/bin/koopa-login-health` on koopa (no git commit on koopa) 4. `koopa-login-health collect` Workflow: `koopa-services-health`. ## Design: no probes at login | Path | What | |------|------| | **user timer** (5 min + after boot) | `collect` — podman, Caddy, Tor, loopback HTTP → snapshot | | **SSH / bashrc** | `show` only — cat snapshot | State: `~/.local/state/koopa-login-health/` (`status.compact` / `.verbose` / `.meta`). Stale if older than `KOOPA_HEALTH_STALE_SEC` (default 900). ## Login must never break `KOOPA_HEALTH_FROM_LOGIN=1` → exit 0 · `timeout 2s` · `|| true` · `bash -n` on install. Skip: `KOOPA_SKIP_HEALTH=1 ssh koopa` ## What you see ```text koopa health koopa Sat, 19 Sep 2026 … git.hacktivism.ch = Forgejo :9024/:9200 · edge Caddy :9000/:9001 OK all critical checks passed (… ok) overall: OK ok=… warn=0 fail=0 ``` ## Checks (collect only) | Area | What | |------|------| | Edge | `caddy.service`, proxy sockets | | Tor | host `tor.service` (ORPort 8080 / ControlPort 9051) — WARN if down | | Listen | critical + optional ports | | Podman | `goa-regio-ng`, forgejo, optional apps | | HTTP | loopback backends (2s curl) | | Git SSH | TCP `:9200` | **Critical** (FAIL): `goa-regio-ng`, `koopa-forgejo`, edge/ports **9010–9012**, **9024**, **9200**. **Optional** (WARN): castopod, bonfire, lemmy, decidim, prime, bt, paivana, tops, nym. GOA = single CTR `goa-regio-ng` (pasta **9010–9015**). Landings **9013–9015** host-side (`~/goa-landing-deploy`). Legacy `taler-hacktivism*` / `koopa-tor-relay` are not expected. Read-only. No restarts, no secrets. ## Install (koopa as `hernani`) ```bash cd ~/src/koopa/koopa-admin-log ./scripts/login-health/install-login-health.sh sudo loginctl enable-linger hernani ``` ## Manual ```bash koopa-login-health koopa-login-health show -v koopa-login-health collect systemctl --user status koopa-login-health.timer ``` ## Related - `configs/ports.md` · `host/tor/README.md` (host Tor) - units: `configs/systemd/user/koopa-login-health.{service,timer}`