Zmiany wyłącznie w repo (config/ken/ automations), deploy LIVE robi operator. - 1752086407230 "dry in Kuchnia": trigger moist -> not_moist (kopiuj-wklej z "moist in Kuchnia", "sucho" nigdy nie przyjdzie). - 1752085965483 "dry in Lazienka": literówka mesaage -> message (skrypt notify_email_ntfy dostawał niezdefiniowane message, akcja się wykładała). - 1764190493305 "after 15 minutes anyway": dodany warunek stanu automation.turn_off_lights_in_kuchania == on, żeby respektować ręczne "Disable AUTO off" (double-click) zamiast unieważniać je po 15 minutach. - 1700832676138 "unconditionally at 3am": time_pattern hours: '3' (60 odpaleń/noc) -> punktowy trigger time: 03:00:00, zgodnie z intencją aliasu. - 1784804668795 "Klima salon: wyłącz...": dodany warunek input_boolean.klima_salon_auto == on dla gałęzi sunset/balkon (automat ubija tylko chłodzenie, którym sam zarządza — ręczne chłodzenie przy zgaszonym auto zostaje nietknięte). Trigger auto_off (zgaszenie klima_salon_auto) ma osobną gałąź choose bez tego warunku — graceful shutdown suszenia parownika działa nawet gdy przełącznik właśnie zgasł. Zweryfikowano na żywym ken: helpery klimy istnieją (input_boolean. klima_salon_auto=off, input_number.klima_salon_temp_docelowa=24.0, input_number.klima_salon_tolerancja=3.0). DESIGN.md: nowa sekcja "Decyzje operatora po audycie 2026-07-23" — co zaimplementowane, co świadomie odłożone (enforcer sleep mode + konsolidacja nocnych wyłączników -> projekt night_mode; OwnTracks / Leave batch 02 / alerty on-leave -> bez zmian). docs/backlog.md: cztery nowe wpisy w Aktywne — guard TRV przed sezonem grzewczym, przycisk graceful shutdown klimy na dashboard, diagnoza wspólnej awarii sprzętowej 2026-07-17 (czujniki ruchu + pilot 4button + xiaomi_miot), projekt architektura night_mode. Walidacja: round-trip scripts/ha/lib/normalize.py na wszystkich 5 zmienionych plików (stabilny), 4 zestawy testów offline scripts/ha/tests/*.sh (wszystkie PASS), dry-run scripts/ha/deploy.sh ken --dry-run per plik na żywym ken (wszystkie: check_config valid, brak driftu, brak abortu). Choinkowe automatyzacje (audyt 4.2) celowo nietknięte w plikach — disable to stan runtime, nie config; operator wyłączy je przez UI. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude/skills | ||
| backups/zigbee | ||
| docs | ||
| dotfiles | ||
| hardware/esp/ir-ac-ha-integration | ||
| hosts | ||
| inventory | ||
| jobs | ||
| packages | ||
| scripts | ||
| services | ||
| .codex | ||
| .gitignore | ||
| CLAUDE.md | ||
| codex_context | ||
| codex_context.yaml | ||
| deploy_agent.py | ||
| ollama_client.py | ||
| README.md | ||
| start-aider.sh | ||
| start-codex.sh | ||
| sync-context.sh | ||
| tech-debt.md | ||
| update-context.md | ||
Homelab Codex
GitOps-lite orchestration for a distributed homelab environment.
Architecture
The homelab consists of several nodes connected via a Tailscale internal mesh.
| Host | Role | Description |
|---|---|---|
| SATURN | Primary Node | Development, orchestration, and git source of truth (commit node). |
| SOLARIA | Compute Node | GPU, inference, and heavy compute workloads. |
| PIHA | Infra Node | Core infrastructure services, automation, and monitoring. |
| VPS | Edge Node | Public ingress, reverse proxy, and edge services. |
Agent System
The homelab uses a multi-agent orchestration model with human-in-the-loop for destructive actions:
| Agent | Node | Role |
|---|---|---|
| stability-agent | all nodes | Per-node watchdog — monitors Docker, disk, Tailscale, MQTT; emits events |
| node-agent | all nodes | Publishes container health events to Redis pub/sub |
| observer | VPS | Synthesizes world state from events into /opt/homelab/world/*.json |
| supervisor | VPS | Detects drift between desired and actual state; writes pending actions |
| planner-agent | SOLARIA | LLM-powered diagnosis — listens to Redis, proposes remediation actions |
| executor | VPS | Executes actions only after operator approval |
| operator-ui + telegram-bot | VPS / PIHA | Operator reviews and approves/rejects pending actions |
Action approval flow: pending/ → operator approves → approved/ → executor runs.
Repository Structure
docs/: Infrastructure Standards and Deployment Conventions.hosts/: Host-specific configurations and service assignments.services/: Reusable Docker Compose service definitions.scripts/: Deployment and management scripts.
Getting Started
- Standardization: Follow the Infrastructure Standards.
- Deployment: See Deployment Conventions for how to roll out changes.
- SATURN: Remember that SATURN is the only node where commits should be made.
Documentation Index
- Infrastructure Standards
- Agent Operating Procedures (For AI/Non-Human Agents)
- Deployment Conventions
- Hardware
- Networking
- Services
- Node Capabilities
- Action Model
Note: This repository documents the state of the homelab. Runtime state lives outside the repository in /opt/homelab.