homelab-codex-ws/kb/subsystems/fleet-inventory.md
oskar 00de8107ea feat(kb): przenosiny type=subsystem do kb/subsystems/ (18 plikow, bez SPLIT)
public (wzorce/schematy, bez IP/portow/sciezek hostow): observer,
capability-model, event-system, standards, agent-operating-procedures,
service-model, action-approval-model.

private: recon-multiagent, fleet-inventory, fleet-inventory-verify,
kb-mail-pillar, kb-documents-pillar, topology, agent-system.

deprecated (martwe stuby z 2026-04-15) — visibility private wg
rozstrzygniecia 6: access-model, core-stack, legacy-services-list, networking.

git mv + frontmatter, tresc nietknieta.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:58:04 +02:00

20 KiB
Raw Permalink Blame History

okf type visibility status updated links
0.1 subsystem private active 2026-07-03

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.