126 plikow (md, yaml, sh, py) odwolywalo sie do sciezek sprzed migracji.
15 markdown-linkow [..](..) -> policzona sciezka WZGLEDNA wobec pliku
odsylajacego (wczesniej czesc z nich byla repo-root-relative i nie
rozwiazywala sie z katalogu, w ktorym lezala)
200 odwolan tekstowych (backticki, proza, yaml, importy w kodzie)
-> nowa sciezka repo-root-relative, zgodnie z konwencja repo
5 linkow rodzenstwa (gole nazwy plikow, np. "](DEPLOY.md)") — dzialaly
tylko w starym katalogu; przeliczone recznie
Objete m.in.: CLAUDE.md (scripts/onboard/README.md -> kb/runbooks/
node-onboarding-tool.md, docs/backlog.md -> kb/phases/backlog.md),
README.md, .claude/skills/, 20 session logow, kod jobow.
Ostatnie 5 odwolan pochodzi z tresci wciagnietej rebasem z origin/master
(session log 2026-07-31, override node-agenta na SOLARII, dwie pozycje
backlogu) — wskazywaly na docs/incidents/, docs/kb/modules/ i
services/narty27/README.md sprzed migracji.
Dodany wzajemny link miedzy kb/services/control-plane.md (stub kodu)
a kb/subsystems/control-plane.md (opis, deprecated) — dwa dokumenty o tym
samym systemie, latwe do pomylenia.
Weryfikacja na 790 plikach: 0 odwolan do starych sciezek,
0 martwych linkow markdown. Lint OKF: 190/190 plikow ZGODNE.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
65 lines
1.7 KiB
Markdown
65 lines
1.7 KiB
Markdown
---
|
|
okf: "0.1"
|
|
type: runbook
|
|
visibility: private
|
|
status: active
|
|
updated: 2026-06-11
|
|
links:
|
|
- ../services/ha-diag-agent.md
|
|
---
|
|
|
|
# ha-diag-agent — deployment i testy
|
|
|
|
## First-time deployment
|
|
|
|
See **[DEPLOY.md](ha-diag-agent-deploy.md)** for the full procedure: HA token creation,
|
|
per-host `.env` config, deploy commands, verification steps, 48h shadow-mode
|
|
observation, and rollback.
|
|
|
|
**Shadow mode** (`HA_DIAG_SHADOW_MODE`, default `true` on the control-plane):
|
|
`ha_websocket_dead` events are downgraded to `alert_only` with a `[SHADOW MODE]`
|
|
note instead of queuing an automatic `container_restart`. Set to `false` in
|
|
`/opt/homelab/config/control-plane/.env` on the VPS when ready for live actions.
|
|
|
|
## Deployment
|
|
|
|
```bash
|
|
# 1. Create config on target node
|
|
ssh oskar@<node-ip>
|
|
mkdir -p /opt/homelab/config/ha-diag-agent /var/lib/ha-diag-agent
|
|
cat > /opt/homelab/config/ha-diag-agent/.env << 'EOF'
|
|
HA_URL=http://homeassistant.local:8123 # or http://100.70.180.90:8123 for chelsty-infra
|
|
HA_TOKEN=<long-lived-token>
|
|
NODE_NAME=piha # or chelsty-infra
|
|
LOCATION_TAG=ken # or chelsty
|
|
CHECK_INTERVAL=60
|
|
EOF
|
|
|
|
# 2. Deploy
|
|
scripts/deploy/deploy.sh --service ha-diag-agent
|
|
|
|
# 3. Verify
|
|
docker ps --filter name=ha-diag-agent
|
|
docker exec ha-diag-agent python -c "import urllib.request; print(urllib.request.urlopen('http://localhost:8087/health', timeout=5).read().decode())"
|
|
```
|
|
|
|
### chelsty-infra note
|
|
|
|
`chelsty-infra` runs docker-compose v1 (1.29.2). Use `docker-compose` (hyphenated):
|
|
```bash
|
|
docker-compose -f docker-compose.yml up -d --build
|
|
```
|
|
|
|
### HA long-lived token
|
|
|
|
In HA UI: Profile → Long-Lived Access Tokens → Create token.
|
|
|
|
## Running Tests
|
|
|
|
```bash
|
|
cd services/ha-diag-agent
|
|
pip install -e ".[dev]"
|
|
pytest tests/ -v
|
|
```
|
|
|