# 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 | x86_64 (Intel i7-4710MQ), 4 core/8 thread, nproc=8 | arm64, 8 core/8 thread | **TAK — arch i cores błędne w repo** |
| 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 | — | — |

> **ERRATA 2026-07-03**: audyt błędnie podał SATURN jako arm64 (sprawdzono tylko nproc=8, nie arch). Faktycznie x86_64, Intel i7-4710MQ, 4c/8t — potwierdzone lokalnym `uname -m` + `lscpu` na saturn. Naprawione w capabilities.yaml (branch task/fix-capabilities).

**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.
