From 229f85bd9b2dac93a5a0100178c946b1890ff41c Mon Sep 17 00:00:00 2001 From: Oskar Kapala Date: Tue, 30 Jun 2026 19:10:36 +0200 Subject: [PATCH] =?UTF-8?q?docs(infra):=20inwentaryzacja=20floty=202026-06?= =?UTF-8?q?-30=20=E2=80=94=2023=20rozjazdy=20repo=E2=86=94rzeczywisto?= =?UTF-8?q?=C5=9B=C4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/infra/inventory-2026-06-30.md | 319 +++++++++++++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 docs/infra/inventory-2026-06-30.md diff --git a/docs/infra/inventory-2026-06-30.md b/docs/infra/inventory-2026-06-30.md new file mode 100644 index 0000000..8b5337a --- /dev/null +++ b/docs/infra/inventory-2026-06-30.md @@ -0,0 +1,319 @@ +# Inwentaryzacja floty homelab-codex — 2026-06-30 + +Zebrano: 2026-06-30 17:09 CEST +Metoda: `docker ps` + `free/nproc/df/uptime` na każdym dostępnym node (ssh + lokalnie saturn). +Porównanie z: `inventory/topology.yaml`, `hosts/*/services.yaml`, `hosts/*/capabilities.yaml`, `services/*/service.yaml`. + +--- + +## Podsumowanie rozjazdów (TL;DR) + +### Krytyczne (owner_node niezgodny) +- **forgejo**: `service.yaml` owner=saturn, faktycznie biega na **PIHA** (razem z forgejo-db-1 i forgejo_dind) +- **mosquitto**: `service.yaml` owner=piha, faktycznie biega na **VPS** (port 1883 na Tailscale IP); na PIHA *nie ma* mosquitto +- **npm**: `service.yaml` owner=vps — biega na VPS ✓ **i** na PIHA (nginxproxymanager-app-1, porty 80/81/443) → **dwie instancje NPM w robocie** +- **homeassistant5**: niedeklarowana instancja HA biega na **PIHA** (port 8123, lokalizacja "ken"), repo zna tylko HA na chelsty-ha +- **control-plane** (executor/observer/supervisor/ui): biega na **VPS** (healthy) **i** na **SATURN** (control-plane-ui UNHEALTHY) — repo deklaruje tylko VPS + +### Poważne (capabilities niezgodne z hardware) +- **SATURN RAM**: capabilities.yaml=8 GB → faktycznie **14 GiB** (sprzęt prawdopodobnie rozbudowany) +- **SATURN storage**: capabilities.yaml=sd-card 64 GB → faktycznie **/dev/sda 159 GB** (inne urządzenie i pojemność) +- **SATURN dysk 91% pełny**: 137G użyte z 159G, wolne 15G → **pilna uwaga** +- **SOLARIA CPU**: capabilities.yaml=12 core/24 thread → faktycznie **nproc=32** (deklaracja nieaktualna) +- **SOLARIA storage**: capabilities.yaml=2000 GB → widoczna partycja `/dev/nvme0n1p5` ma **890 GB** (do weryfikacji czy jest więcej dysków) + +### Ważne (services.yaml niekompletne vs topology/runtime) +- `hosts/saturn/services.yaml` **nie istnieje** — 5 kontenerów biega bez żadnej deklaracji w repo +- `hosts/vps/services.yaml` ma tylko 4 serwisy, `topology.yaml` wymienia 9 — brak: stability-agent, npm, outline, joplin, ai-cluster +- `hosts/solaria/services.yaml` ma tylko node-agent — biega też: planner-agent, stability-agent, node_exporter (bez deklaracji) +- **PIHA**: 40 kontenerów biega, 6 w GitOps — **34 "shadow" kontenery poza repo** (forgejo, immich, vaultwarden, wikijs, actual, audiobookshelf i in.) +- Na VPS biegną **humanai-landing, humanai-mailer, mosquitto, umami** — brak w topology i services.yaml + +### Informacyjne +- `stability-agent`: `service.yaml` owner=chelsty — biega na PIHA, VPS, SOLARIA (per-node watchdog, powinno być wielomiejscowe) +- `node_exporter`: `service.yaml` owner=vps — biega też na PIHA (jako `node-exporter`) i SOLARIA +- `planner-agent`: `service.yaml` owner=solaria ✓ — biega na SOLARIA, ale brak go w `hosts/solaria/services.yaml` i topology +- `zigbee2mqtt`: `service.yaml` owner=piha ✓ i faktycznie biega na PIHA — ale `topology.yaml` mówi chelsty-infra +- `ollama`: `service.yaml` owner=solaria — **nie biega** na SOLARIA (jedyny serwis w repo który powinien biegać ale nie biega) +- VPS: `outline-postgres-1` używa anonimowego image ID `4e6e670bb069` (brak taga) +- VPS: `joplin-db` używa `postgres:18` (pre-release / development tag) + +--- + +## Per-node + +### SATURN (kontrolny, lokalnie) + +**Zasoby faktyczne:** +| | Faktyczne | capabilities.yaml | Rozjazd? | +|---|---|---|---| +| CPU | arm64, nproc=8 | arm64, 8 core/8 thread | ✓ | +| RAM | 14 GiB total, 9.6G used, 5.2G available (12 GiB swap) | 8 GB | **TAK — 2× więcej RAM** | +| Dysk `/` | /dev/sda5, 159G total, 137G used (91%), **15G wolne** | sd-card, 64 GB | **TAK — inny typ, 2.5× więcej** | +| Uptime | 1 dzień 6h36m | — | — | +| Docker root | /var/lib/docker | — | — | + +**Kontenery biegające (5):** + +| Kontener | Status | Porty | Image | +|---|---|---|---| +| agent-system-webui | Up 31h | 0.0.0.0:8080→8080 | agent-system-webui | +| control-plane-executor | Up 31h (healthy) | — | control-plane-executor | +| control-plane-observer | Up 31h (healthy) | — | control-plane-observer | +| control-plane-supervisor | Up 31h (healthy) | — | control-plane-supervisor | +| control-plane-ui | Up 31h **(unhealthy)** | 0.0.0.0:18180→8080 | control-plane-operator-ui | + +**W GitOps (`hosts/saturn/services.yaml`):** BRAK PLIKU + +**Biega ale NIE w repo:** wszystkie 5 powyżej +**W repo ale NIE biega:** n/d +**owner_node mismatches:** control-plane (service.yaml nie istnieje, topology mówi VPS) + +--- + +### PIHA (always-on, monitoring/infra) + +**Zasoby faktyczne:** +| | Faktyczne | capabilities.yaml | Rozjazd? | +|---|---|---|---| +| CPU | arm64, nproc=4 | arm64, 4 core/4 thread | ✓ | +| RAM | 7.9 GiB total, 4.9G used, 3.0G available (4 GiB swap, 2G used) | 8 GB | ✓ (±rounding) | +| Dysk `/` | /dev/nvme0n1p2, 58G total, 23G used (42%) | — | — | +| Dysk `/home` | /dev/nvme0n1p3, 410G total, 248G used (64%) | home_gb=410 | ✓ | +| Uptime | 7 dni 19h13m | — | — | +| Docker root | /home/docker (na NVMe) | — | — | + +**W GitOps (`hosts/piha/services.yaml`):** ha-diag-agent, node-agent, brain-watchdog, vikunja, kb-postgres +**W runtime override ale nie w services.yaml:** stability-agent + +**Kontenery biegające — W GitOps (6):** + +| Kontener | Status | Porty | Image | +|---|---|---|---| +| ha-diag-agent | Up 3 days (healthy) | — | ha-diag-agent-ha-diag-agent | +| node-agent | Up 3 days (healthy) | — | node-agent-node-agent | +| brain-watchdog | Up 3 days (healthy) | — | brain-watchdog-brain-watchdog | +| vikunja | Up 3 days | 0.0.0.0:3456→3456 | vikunja/vikunja:latest | +| vikunja-db | Up 3 days (healthy) | 5432/tcp | postgres:16-alpine | +| kb-postgres | Up 3 days (healthy) | 0.0.0.0:5433→5432 | pgvector/pgvector:pg16 | + +**Kontenery biegające — w runtime override tylko (1):** + +| Kontener | Status | Uwaga | +|---|---|---| +| stability-agent | Up 3 days (healthy) | w hosts/piha/runtime, nie w services.yaml | + +**Kontenery biegające — POZA repo (33):** + +*Serwisy główne (nie mają żadnej deklaracji w repo):* + +| Kontener | Status | Porty | Image | Uwaga | +|---|---|---|---|---| +| **forgejo** | Up 3 days | 0.0.0.0:3000→3000, 0.0.0.0:222→22 | codeberg.org/forgejo/forgejo:7 | **service.yaml owner=saturn!** | +| forgejo-db-1 | Up 3 days | 5432/tcp | postgres:14 | część forgejo stack | +| forgejo_dind | Up 3 days | 2375-2376/tcp | docker:dind | CI runner dla forgejo | +| **homeassistant5** | Up 3 days | — | ghcr.io/home-assistant/home-assistant:stable | HA "ken", ha-diag-agent celuje w localhost:8123 | +| immich_server | Up 3 days (healthy) | 0.0.0.0:2283→2283, 8081-8082 | ghcr.io/immich-app/immich-server:release | — | +| immich_machine_learning | Up 3 days (healthy) | — | ghcr.io/immich-app/immich-machine-learning:release | — | +| immich_postgres | Up 3 days (healthy) | 5432/tcp | tensorchord/pgvecto-rs:pg14-v0.2.0 | — | +| immich_redis | Up 3 days (healthy) | 6379/tcp | redis:6.2-alpine | — | +| **nginxproxymanager-app-1** | Up 2 hours | 0.0.0.0:80→80, 81→81, 443→443 | jc21/nginx-proxy-manager:latest | **NPM! service.yaml owner=vps; 2 instancje** | +| vaultwarden | Up 3 days (healthy) | 0.0.0.0:3012→80 | vaultwarden/server:latest | — | +| wikijs-wiki-1 | Up 3 days | 0.0.0.0:3300→3000 | ghcr.io/requarks/wiki:2 | — | +| wikijs-db-1 | Up 3 days | 5432/tcp | postgres:15-alpine | — | +| audiobookshelf | Up 3 days | 0.0.0.0:13378→80 | ghcr.io/advplyr/audiobookshelf:latest | — | +| actual-server | Up 3 days | 0.0.0.0:5006→5006 | actualbudget/actual-server:latest-alpine | — | +| **zigbee2mqtt** | Up 3 days | 0.0.0.0:8087→8080 | koenkk/zigbee2mqtt | service.yaml owner=piha ✓, ale topology mówi chelsty-infra | +| llm-gateway | Up 3 days | 0.0.0.0:8080→8080 | llm-gateway-llm-gateway | — | + +*Support/monitoring (poza repo):* + +| Kontener | Status | Porty | Image | +|---|---|---|---| +| agent-system-redis | Up 3 days | 0.0.0.0:6379→6379 | redis:7 | +| agent-system-runtime-materializer | Up 3 days | — | agent-system-runtime-materializer | +| agent-system-telegram-bot | Up 3 days | — | agent-system-telegram-bot | +| agent-system-webui | Up 3 days | 0.0.0.0:18180→8080 | agent-system-webui | +| code-server | Up 3 days | 0.0.0.0:8443→8443 | lscr.io/linuxserver/code-server:latest | +| diskover | Up 3 days | 0.0.0.0:9999→80 | lscr.io/linuxserver/diskover:latest | +| elasticsearch | Up 3 days | 0.0.0.0:9200→9200 | docker.elastic.co/elasticsearch/elasticsearch:7.17.22 | +| fail2ban-prometheus-exporter-exporter-1 | Up 3 days (healthy) | 0.0.0.0:9191→9191 | registry.gitlab.com/hctrdev/fail2ban-prometheus-exporter:latest | +| grafana | Up 3 days | 0.0.0.0:9003→3000 | grafana/grafana-enterprise:latest | +| homepage | Up 3 days (healthy) | 0.0.0.0:3033→3000 | ghcr.io/gethomepage/homepage:latest | +| mqtt-exporter-mqtt-exporter-1 | Up 3 days | 0.0.0.0:9000→9000 | kpetrem/mqtt-exporter:latest | +| node-exporter | Up 3 days | — | quay.io/prometheus/node-exporter:latest | +| own-tracks-frontend-owntracks-frontend-1 | Up 3 days | 0.0.0.0:8084→80 | owntracks/frontend | +| owntracks-prometheus-exporter-prometheus-owntracks-exporter-1 | Up 3 days | 0.0.0.0:8780→80 | linusgroh/prometheus-owntracks-exporter | +| owntracks-recorder | Up 3 days | 0.0.0.0:8083→8083 | owntracks/recorder:latest | +| pihole-exporter | Up 3 days | 0.0.0.0:9617→9617 | ekofr/pihole-exporter:latest | +| portainer | Up 3 days | 0.0.0.0:8008→8000, 0.0.0.0:9009→9000 | portainer/portainer-ce:latest | +| prom | Up 3 days | 0.0.0.0:9090→9090 | prom/prometheus:latest | + +**W repo ale NIE biega:** brak (wszystkie zadeklarowane biją się z rzeczywistością) + +**owner_node mismatches na PIHA:** +- forgejo: service.yaml=saturn, biega na PIHA +- nginxproxymanager-app-1: service.yaml npm owner=vps, biega też na PIHA +- mosquitto: service.yaml owner=piha, ale NIE biega na PIHA (biega na VPS) + +--- + +### VPS (ingress/edge/control-plane) + +**Zasoby faktyczne:** +| | Faktyczne | capabilities.yaml | Rozjazd? | +|---|---|---|---| +| CPU | x86_64, nproc=2 | x86_64, 2 core/2 thread | ✓ | +| RAM | 3.7 GiB total, 1.8G used, 1.5G available (4 GiB swap, 386M used) | 4 GB | ✓ (±rounding) | +| Dysk `/` | /dev/sda1, 75G total, 29G used (41%) | ssd, 80 GB | ✓ (±partition overhead) | +| Uptime | 20 dni 21h36m | — | — | +| Docker root | /var/lib/docker | — | — | + +**W GitOps (`hosts/vps/services.yaml`):** node-agent, control-plane, node_exporter, fleet-prometheus +**W topology.yaml (VPS):** node-agent, control-plane, node_exporter, fleet-prometheus, stability-agent, npm, outline, joplin, ai-cluster + +**Kontenery biegające — W services.yaml (✓):** + +| Kontener | Status | Porty | Image | +|---|---|---|---| +| node-agent | Up 5 days (healthy) | — | node-agent-node-agent | +| control-plane-executor | Up 5 days (healthy) | — | control-plane-executor | +| control-plane-observer | Up 5 days (healthy) | — | control-plane-observer | +| control-plane-supervisor | Up 5 days (healthy) | — | control-plane-supervisor | +| control-plane-ui | Up 5 days (healthy) | 0.0.0.0:18180→8080 | control-plane-operator-ui | +| node_exporter | Up 2 weeks | — | quay.io/prometheus/node-exporter:latest | +| fleet-prometheus | Up 4 minutes (healthy) | 100.95.58.48:9090→9090 | prom/prometheus:v3.5.0 | + +**Kontenery biegające — w topology ale nie w services.yaml:** + +| Kontener | Status | Porty | Image | +|---|---|---|---| +| stability-agent | Up 2 weeks (healthy) | — | stability-agent-stability-agent | +| npm | Up 2 weeks | 0.0.0.0:80→80, 81→81, 443→443 | jc21/nginx-proxy-manager:latest | +| outline-outline-1 | Up 2 weeks (healthy) | 0.0.0.0:3000→3000 | outlinewiki/outline:1.6.1 | +| outline-postgres-1 | Up 2 weeks (healthy) | 5432/tcp | **4e6e670bb069** ← anonimowy image ID! | +| outline-redis-1 | Up 2 weeks (healthy) | 6379/tcp | redis:7-alpine | +| joplin-server | Up 2 weeks | 127.0.0.1:22300→22300 | joplin/server:latest | +| joplin-db | Up 2 weeks (healthy) | 5432/tcp | **postgres:18** ← pre-release tag! | +| ai-cluster-codex-worker-1 | Up 2 weeks | — | ai-cluster-codex-worker | +| ai-cluster-openclaw-1 | Up 2 weeks (healthy) | 0.0.0.0:8000→8000 | ai-cluster-openclaw | +| ai-cluster-planner-worker-1 | Up 2 weeks | — | ai-cluster-planner-worker | +| ai-cluster-redis-1 | Up 2 weeks | 6379/tcp | redis:7-alpine | +| ai-cluster-service-ops-worker-1 | Up 2 weeks | — | ai-cluster-service-ops-worker | + +**Kontenery biegające — POZA topology i services.yaml:** + +| Kontener | Status | Porty | Image | Uwaga | +|---|---|---|---|---| +| **mosquitto** | Up 2 weeks | 100.95.58.48:1883→1883 | eclipse-mosquitto:2 | service.yaml owner=piha, nie ma w VPS topology | +| humanai-landing | Up 5 days | 80/tcp | humanai-landing | brak w repo | +| humanai-mailer | Up 5 days | — | humanai-mailer | brak w repo | +| umami | Up 6 days (healthy) | 3000/tcp | ghcr.io/umami-software/umami:postgresql-latest | brak w repo | +| umami-db | Up 6 days (healthy) | 5432/tcp | postgres:16-alpine | brak w repo | + +**W topology ale NIE biega:** brak + +**owner_node mismatches na VPS:** +- mosquitto: service.yaml owner=piha, biega na VPS +- control-plane: również na SATURN (UNHEALTHY) + +--- + +### SOLARIA (GPU/compute/AI) + +**Zasoby faktyczne:** +| | Faktyczne | capabilities.yaml | Rozjazd? | +|---|---|---|---| +| CPU | x86_64, nproc=32 | x86_64, 12 core/24 thread | **TAK — 32 vs 24 wątków** | +| RAM | 61 GiB total, 2.2G used, 59G available (2 GiB swap) | 64 GB | ✓ (±rounding) | +| Dysk `/` | /dev/nvme0n1p5, 890G total, 530G used (63%) | nvme, 2000 GB | **do weryfikacji** (może są inne dyski/partycje) | +| Uptime | 39 min (świeży reboot) | — | — | +| Docker root | /var/lib/docker | — | — | + +**W GitOps (`hosts/solaria/services.yaml`):** node-agent +**W topology.yaml (SOLARIA):** node-agent + +**Kontenery biegające — W services.yaml (✓):** + +| Kontener | Status | Porty | Image | +|---|---|---|---| +| node-agent | Up 39 min (healthy) | — | node-agent-node-agent | + +**Kontenery biegające — POZA repo (3):** + +| Kontener | Status | Porty | Image | Uwaga | +|---|---|---|---|---| +| planner-agent | Up 39 min (healthy) | — | planner-agent-planner-agent | service.yaml owner=solaria ✓, ale brak w services.yaml/topology | +| stability-agent | Up 39 min (healthy) | — | stability-agent-stability-agent | service.yaml owner=chelsty | +| node_exporter | Up 39 min | — | quay.io/prometheus/node-exporter:latest | service.yaml owner=vps | + +**W repo ale NIE biega na SOLARIA:** +- ollama: service.yaml owner=solaria — **nie biega!** (jedyny serwis zadeklarowany dla SOLARIA którego nie ma) + +**owner_node mismatches na SOLARIA:** +- planner-agent: service.yaml=solaria ✓, ale nieobecny w hosts/solaria/services.yaml i topology +- stability-agent: service.yaml=chelsty, biega na SOLARIA +- node_exporter: service.yaml=vps, biega na SOLARIA + +--- + +### LUSTRO — UNREACHABLE (offline, edge) + +Brak pliku `hosts/lustro/capabilities.yaml`. +Timeout na SSH. Deklaracja w topology: role=edge, services=[node-agent]. +Status: **do weryfikacji gdy node wróci online**. + +--- + +### CHELSTY-INFRA — UNREACHABLE (offline, LTE edge) + +Deklaracja w `hosts/chelsty-infra/services.yaml`: ha-diag-agent, node-agent, mosquitto, zigbee2mqtt, frigate. +Deklaracja w capabilities.yaml: x86_64, 4 core, 16 GB RAM, 250 GB SSD, LTE. +Status: **offline (LTE sleep), do weryfikacji gdy online**. + +--- + +### CHELSTY-HA — UNREACHABLE (offline, LTE edge) + +Deklaracja w `hosts/chelsty-ha/services.yaml`: homeassistant (monitor: false). +Tailscale IP: 100.70.180.90 (per ha-diag-agent config na chelsty-infra). +Status: **offline (LTE sleep), do weryfikacji gdy online**. + +--- + +## Rozjazdy do naprawy (zebrane, priorytetyzowane) + +| # | Rozjazd | Node | Repo mówi | Rzeczywistość | Proponowana poprawka | Priorytet | +|---|---|---|---|---|---|---| +| 1 | SATURN dysk 91% pełny | SATURN | — | 137G / 159G, 15G wolne | Audyt i cleanup `/` — głównie `/var/lib/docker` i logi | **PILNE** | +| 2 | forgejo owner_node | PIHA | service.yaml: owner=saturn | biega na PIHA | Zmień service.yaml: owner_node=piha; dodaj do hosts/piha/services.yaml | Wysoki | +| 3 | mosquitto owner_node | VPS | service.yaml: owner=piha | biega na VPS, nie biega na PIHA | Zmień service.yaml: owner_node=vps; dodaj do hosts/vps/services.yaml i topology | Wysoki | +| 4 | npm dwie instancje | PIHA+VPS | service.yaml: owner=vps (jedna) | biega na VPS i PIHA | Zdecydować czy PIHA-NPM to stary instancja do usunięcia czy intentional (wildcard cert via NPM@PIHA per topology.yaml 2026-06-30). Jeśli obie zamierzone — dodać piha do service.yaml i hosts/piha/services.yaml | Wysoki | +| 5 | homeassistant5 na PIHA | PIHA | brak deklaracji w repo | biega na PIHA (HA "ken", port 8123) | Dodać `homeassistant` do hosts/piha/services.yaml i topology.yaml (piha node) | Wysoki | +| 6 | control-plane na SATURN | SATURN | topology: VPS only | biega na VPS (healthy) i SATURN (ui UNHEALTHY) | Zbadać czy SATURN ma być dev-instance — jeśli nie, zatrzymać i usunąć stack z SATURN | Wysoki | +| 7 | hosts/saturn/services.yaml brak | SATURN | — | 5 kontenerów biega bez deklaracji | Stworzyć hosts/saturn/services.yaml z aktualnym stanem (control-plane-dev? agent-system-webui?) | Wysoki | +| 8 | SATURN capabilities: RAM | SATURN | 8 GB | 14 GiB | Zaktualizować capabilities.yaml: total_gb: 16 (lub 14) | Średni | +| 9 | SATURN capabilities: storage | SATURN | sd-card, 64 GB | /dev/sda, 159 GB | Zaktualizować capabilities.yaml: type=ssd (lub hdd), capacity_gb=160 | Średni | +| 10 | SOLARIA capabilities: CPU threads | SOLARIA | 12 core / 24 thread | nproc=32 | Zaktualizować: cores i threads per `lscpu` na SOLARIA | Średni | +| 11 | SOLARIA capabilities: storage | SOLARIA | 2000 GB | widoczna partycja 890G | Zweryfikować `lsblk` na SOLARIA, zaktualizować jeśli zmieniono konfigurację | Średni | +| 12 | ollama nie biega | SOLARIA | service.yaml owner=solaria | nie biega na SOLARIA | Zweryfikować czy ollama jest zamierzone do wdrożenia — jeśli nie, usunąć service.yaml lub przenieść do archived/ | Średni | +| 13 | hosts/vps/services.yaml niekompletne | VPS | 4 serwisy | 9 w topology biega | Uzupełnić hosts/vps/services.yaml o: stability-agent, npm, outline, joplin, ai-cluster | Średni | +| 14 | planner-agent brak w hosts/solaria | SOLARIA | biega (service.yaml=solaria) | nie ma w services.yaml ani topology | Dodać planner-agent do hosts/solaria/services.yaml i topology.yaml | Średni | +| 15 | zigbee2mqtt topology mismatch | PIHA | service.yaml=piha ✓, topology=chelsty-infra | biega na PIHA | Naprawić topology.yaml: przenieść zigbee2mqtt z chelsty-infra do piha section (lub dodać osobny wpis) | Niski | +| 16 | mosquitto topology mismatch | VPS | topology: chelsty-infra | biega na VPS | Naprawić topology.yaml: dodać mosquitto do vps section | Niski | +| 17 | stability-agent owner_node | wielu | service.yaml owner=chelsty | biega na PIHA, VPS, SOLARIA | Zmień service.yaml: owner_node=per-host (jak ha-diag-agent) | Niski | +| 18 | node_exporter owner_node | wielu | service.yaml owner=vps | biega też na PIHA i SOLARIA | Zmień service.yaml: owner_node=per-host | Niski | +| 19 | outline-postgres-1 anonimowy image | VPS | — | `4e6e670bb069` (brak taga) | Zidentyfikować wersję, przepiąć na named tag w docker-compose | Niski | +| 20 | joplin-db postgres:18 | VPS | — | postgres:18 (pre-release) | Zmień na `postgres:17` lub `postgres:16` (stable) | Niski | +| 21 | humanai-landing/mailer brak w repo | VPS | — | biega | Dodać service.yaml i hosts/vps/services.yaml entry, lub usunąć jeśli zbędne | Niski | +| 22 | umami brak w repo | VPS | — | biega | Dodać service.yaml i hosts/vps/services.yaml entry | Niski | +| 23 | PIHA: 33 shadow kontenery | PIHA | — | biega poza GitOps | Długoterminowa praca: iterować przez listę powyżej i dodawać do hosts/piha/services.yaml | Niski | + +--- + +## Uwagi metodologiczne + +- **LUSTRO i CHELSTY**: pominięte z powodu timeout SSH. Oznaczone jako UNREACHABLE. +- **CHELSTY-INFRA/HA**: nie ma wdrożonego node-agent na chelsty-ha (per `monitor: false`), więc brak zdalnych faktów z tych nodów. +- **Solaria storage**: `df` pokazuje tylko zamontowane partycje. Możliwe że są dodatkowe dyski/partycje niezamontowane na `/` lub `/home` — do zweryfikowania przez `lsblk` bezpośrednio na SOLARIA. +- **Żadne zmiany na nodach nie zostały wprowadzone** — raport wyłącznie read-only.