diff --git a/docs/backlog.md b/docs/backlog.md index bb22371..c0ebe8b 100644 --- a/docs/backlog.md +++ b/docs/backlog.md @@ -387,3 +387,42 @@ oknem offline (statyczna reguła jest głupia, ale przewidywalna). Uwzględnić **Na teraz**: targety scrape'owane BEZ polityki alertowej, label tylko `node:`. Prometheus gromadzi historię. Anomaly detection = osobny świadomy projekt później (CC, z testami). + +--- +## Rozjazdy repo<->rzeczywistosc (z inwentaryzacji 2026-06-30) +**Zrodlo**: `docs/infra/inventory-2026-06-30.md` (23 rozjazdy, pelna tabela tam). +Ponizej te wymagajace akcji, pogrupowane wg ryzyka. Naprawa = osobny task/kilka. + +### Grupa A — czyste docs, zero ryzyka +- **forgejo** `service.yaml owner_node`: saturn -> piha (biega na PIHA always-on) +- **mosquitto** `service.yaml owner_node`: piha -> vps (biega na VPS, nie na PIHA) +- **capabilities SATURN**: RAM 8 -> 14GiB; dysk sd-card 64GB -> /dev/sda 159GB +- **capabilities SOLARIA**: CPU 24 -> 32 nproc +- **`hosts/saturn/services.yaml`** nie istnieje — 5 kontenerow bez deklaracji +- **`hosts/vps/services.yaml`** niekompletne (4 z 9 z topology); **solaria** tez (brak planner-agent) + +### Grupa B — wymaga decyzji +- **npm x2**: PIHA (LAN ingress :80/:443) + VPS (public). Repo zna jedna (owner=vps). + Decyzja: zostawic oba (intentional, wildcard cert via NPM@PIHA) czy usunac PIHA? + Jesli oba zamierzone -> dodac piha do service.yaml + hosts/piha. +- **control-plane na SATURN**: biega (control-plane-ui UNHEALTHY) obok VPS. Repo zna tylko VPS. + Decyzja: dev-instance czy pomylka? Usuniecie odzyska zasoby + zlikwiduje UNHEALTHY. +- **ollama**: `service.yaml owner=solaria` ale NIE biega. Wdrozyc czy wyrzucic z repo? + +### Grupa C — sprzatanie +- **control-plane-ui healthcheck**: uzywa `curl` ktorego NIE MA w obrazie -> failuje w + kolko -> UNHEALTHY + log spam (4.2G syslog na SATURN). Fix: wget/nc w healthcheck + albo curl w Dockerfile. (Przyczyna rozjazdu #6 znaleziona przy gaszeniu dysku.) +- **homeassistant5 na PIHA** (HA "ken" :8123) niedeklarowany -> dodac do hosts/piha + topology +- **VPS**: outline-postgres-1 anonimowy image (4e6e670bb069) -> named tag; + joplin-db postgres:18 (pre-release) -> postgres:17/16; humanai-landing/mailer/umami do repo +- **PIHA: 33 shadow kontenery** poza GitOps (immich, vaultwarden, wikijs, actual, + audiobookshelf, elasticsearch, grafana, prom, portainer, code-server, diskover...) + -> audyt + stopniowo do hosts/piha/services.yaml +- **zigbee2mqtt** topology mowi chelsty-infra, biega na PIHA -> poprawic topology +- **stability-agent / node_exporter** owner_node single, biegaja wielomiejscowo -> per-host + +### Tech debt SATURN (z gaszenia dysku 2026-06-30) +- **`/opt/anaconda3` 16G** — najwiekszy pojedynczy zjadacz dysku (env-y Pythona). Decyzja Oskara kiedy/czy czyscic. +- Dysk 91% -> 83% ugaszone (docker prune + journal + syslog), ale `/home` zaszyfrowany + i ciasny strukturalnie. SATURN dzwiga dev + drugi control-plane + agent-webui — napiecie. diff --git a/docs/sessions/2026-06-30-fleet-inventory.md b/docs/sessions/2026-06-30-fleet-inventory.md new file mode 100644 index 0000000..d79dd01 --- /dev/null +++ b/docs/sessions/2026-06-30-fleet-inventory.md @@ -0,0 +1,56 @@ +# Sesja 2026-06-30 — Inwentaryzacja floty + gaszenie dysku SATURN + +## Cel +Pełna inwentaryzacja floty (repo↔rzeczywistość) jako fundament przed dalszą +architekturą dokumentów KB. Start od weryfikacji stanu faktycznego wszystkich nodów. + +## Zrobione + +### Inwentaryzacja floty (główna robota) +- CC (Sonnet 4.6) w worktree `fleet-inventory` zebrał stan faktyczny (docker ps + + free/df/nproc) z 4 dostępnych nodów: PIHA, VPS, SOLARIA, SATURN. LUSTRO+CHELSTY + offline (timeout :22) -> oznaczone UNREACHABLE. +- Wynik: `docs/infra/inventory-2026-06-30.md` — 23 zpriorytetyzowane rozjazdy. +- Kluczowe ustalenia: + - **forgejo** biega na PIHA (always-on), ale `service.yaml owner_node=saturn` — rozjazd + - **mosquitto** biega na VPS, `service.yaml owner=piha`, na PIHA go nie ma + - **npm** — dwie instancje: PIHA (LAN ingress :80/:443) + VPS (public); repo zna jedna + - **homeassistant5** na PIHA (HA "ken", :8123) niedeklarowany w repo + - **control-plane** biega na VPS (healthy) I SATURN (control-plane-ui UNHEALTHY) + - **PIHA: 40 kontenerow, ~6 w GitOps, 33 "shadow" poza repo** (immich, vaultwarden, + wikijs, actual, audiobookshelf, elasticsearch, grafana, prom, portainer...) + - capabilities nieaktualne: SATURN RAM 8->14GiB, dysk 64->159GB; SOLARIA CPU 24->32 + - ollama zadeklarowana (owner=solaria) ale NIE biega + +### Gaszenie dysku SATURN (pilne — ugaszone) +- SATURN dysk 91% (15G wolne) = jedyne realne ryzyko awarii. +- `docker image prune -a -f` -> +4.1G (k3s/k3d sprzed 4 lat, stary HA 2.3G, postgresy) +- `journalctl --vacuum-size=200M` -> +3.7G +- `rm syslog.1 + rotacje` -> +4.2G +- Wynik: **91% -> 83%** (27G wolne), poza strefa ryzyka. +- Bonus diagnostyczny: przyczyna `control-plane-ui UNHEALTHY` = healthcheck uzywa + `curl`, ktorego NIE MA w obrazie -> failuje w kolko -> log spam (4.2G syslog). +- `/opt/anaconda3` 16G = najwiekszy pojedynczy zjadacz dysku (env-y Pythona, decyzja Oskara). + +### safeclean.sh — 3 bugi naprawione (repo ubuntu-scripts, osobne) +- BUG #1: dry-run pokazywal reclaimable z `docker system df` (bez filtra), a apply + prune'owal z `--filter until=168h` -> dry-run obiecywal 4.8G, apply robil 0B. Fix: + dry-run pokazuje teraz realny reclaim z filtrem + tip o `--docker-all`. +- BUG #2: `du` podwojnie liczyl eCryptfs home -> warning dodany. +- BUG #3: rotated rsyslog (`syslog.1` 4.2G) byl poza zakresem -> dodana kategoria + "rotated system logs" (kasuje tylko zrotowane, nigdy aktywne). +- Commit `37233f0` na main (ubuntu-scripts). + +## Nastepna sesja — naprawa 23 rozjazdow (pogrupowana) +- **Grupa A** (czyste docs, zero ryzyka): capabilities SATURN/SOLARIA, forgejo + owner_node->piha, mosquitto->vps, brakujace `hosts/saturn/services.yaml` +- **Grupa B** (wymaga decyzji): npm x2 (zostawic oba czy usunac PIHA?), control-plane + na SATURN (dev-instance czy usunac? + healthcheck curl fix), ollama nie biega +- **Grupa C** (sprzatanie): postgres:18->17, anonimowy outline-postgres image, + humanai/umami do repo, audyt 33 shadow kontenerow PIHA + +## Watek wstrzymany (z poprzedniej sesji) +Architektura dokumentow KB — decyzje zamkniete (SSO=Forgejo-OIDC, ingress LAN-only, +archiwum hybryda Nextcloud-kopia/Paperless-referencja), host OTWARTY (PIHA ~0.5G wolne +RAM -> Nextcloud sie nie zmiesci). Wrocic po naprawie rozjazdow — inwentaryzacja +potwierdzila ze PIHA przeciazona (40 kontenerow), wiec host dokumentow wymaga decyzji.