Phase 9 (улучшения автоматизации):

A. kb-autosync.sh переписан: pull → regenerate index → commit → push.
   После каждого push с Mac индекс objects-map.json и _index.md
   обновляются автоматически на code-server (LXC 132).

B. kb-objects-map.py + kb-objects-audit.py добавлены в воскресный
   weekly cron на LXC 132 — health-check автогенерируется раз в неделю.

C. Чистка битых wiki-ссылок (score 84 → 9):
   - notes/govru-diagnosis → projects/niikn/govru-quickfix-playbook (2)
   - claude-memory/podkop → 2026-04-17-peredelki-podkop-stability-fix
   - [[../snippets/clients/]] → snippets/clients/ (текстом, 2)
   - [[feedback_*]] (user memory) → backtick-cited (2)
   - [[../znamenskoye/]] → [[../znamenskoye/README]] (4)

   Скрипт kb-objects-audit.py улучшен: regex теперь требует [[...]] с
   двойной скобкой (не одной), исключает audit/ и CLAUDE.md (placeholder
   и autogen).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
dttb
2026-05-06 16:52:09 +03:00
parent 94aae3ca26
commit 47394e668e
11 changed files with 32 additions and 47 deletions

View File

@@ -157,7 +157,7 @@ Pre-production audit (2026-04-30) с найденными уязвимостям
- **NPM streams через UI/API не публикуются наружу docker-контейнера.** Нужно править compose-файл и пересоздавать контейнер. Compose лежит в `/data/compose/2/docker-compose.yml` на host LXC 103 (мы его положили туда, ранее Portainer хранил только в своём volume). При обновлении stack ВАЖНО: `cd /data/compose/2 && docker compose -p npm up -d` — relative `./data` resolve в `/data/compose/2/data` (где реальные данные NPM). НЕ обновляй stack через Portainer UI — он работает со своей копией compose в `/var/lib/docker/volumes/portainer_data/_data/compose/2/`, может перезаписать. Текущий compose содержит ports: 80, 81, 443, 21115-21119 (TCP+UDP где надо).
- **WebClient в браузере** работает на инфра-уровне (wss://remot.dttb.ru:21118/ws/id и :21119/ws/relay → 101 Switching Protocols). TLS termination для 21118/21119 через `/data/compose/2/data/nginx/custom/stream.conf` (custom stream block в NPM с `listen 21118 ssl` + `ssl_certificate /etc/letsencrypt/live/npm-41/...`). Streams 21115/21117/21116-tcp/udp идут через обычные NPM streams (id 38, 39, 40, 43). Чтобы реально использовать — нужны online peers с api-server login. Подключение Mac→Mac через WebClient невозможно (это и есть `MUST_LOGIN`-style ошибка "не удалось подключиться к серверу ретрансляции").
- **community-script может пытаться обновить пакеты** — `apt-mark hold` защищает hbbs/hbbr, но если запустить полный re-run скрипта community-scripts, могут быть сюрпризы. Не запускать без необходимости.
- **`/proc/loadavg` в LXC = нагрузка хоста**, не контейнера ([[../../../knowledge-base/feedback_lxc_loadavg]] в memory).
- **`/proc/loadavg` в LXC = нагрузка хоста**, не контейнера (`feedback_lxc_loadavg` (user memory) в memory).
## Развёртывание клиентов

View File

@@ -69,7 +69,7 @@ WAN — белый IP, прямой DNAT возможен без хаба `swtes
## Связанные
- [[../znamenskoye/]] — соседний «куст» в Истре, **не путать**
- [[../znamenskoye/README]] — соседний «куст» в Истре, **не путать**
- [[../../claude-memory/znamenskoye-ohothozyistvo]] — соседний OpenWrt 100.70.63.67 (Охотхозяйство)
- [[../dttb/openwrt-router]] — homelab-роутер, тот же стек (OpenWrt 24.10.3, 1qaz!QAZ)
@@ -82,11 +82,11 @@ WAN — белый IP, прямой DNAT возможен без хаба `swtes
- [ ] LAN-подсеть и DHCP-диапазон
- [ ] Пароль/ключ доступа на сам OpenWrt
- [ ] Есть ли DNAT через VPS-хаб или доступ только через NetBird
- [ ] Почему отдельный объект, не часть [[../znamenskoye/]]
- [ ] Почему отдельный объект, не часть [[../znamenskoye/README]]
## Связанные
- [[../znamenskoye/]] — другой объект-«куст» в Истре, **не путать**
- [[../znamenskoye/README]] — другой объект-«куст» в Истре, **не путать**
- [[../../claude-memory/znamenskoye-ohothozyistvo]] — соседний OpenWrt 100.70.63.67 (Охотхозяйство)
- [[../dttb/netbird-inventory]] — единственный пока источник по Липкам

View File

@@ -25,7 +25,7 @@ aliases: [Sergey, sergey, OpenWrt_Sergey, Одинцово]
- [ ] Кто такой Сергей — клиент / друг / семья?
- [ ] Точный адрес и контакт
- [ ] Тот ли это Сергей, что управляющий [[../znamenskoye/]] (вероятно НЕТ — там объекты в Истре, этот в Одинцово)
- [ ] Тот ли это Сергей, что управляющий [[../znamenskoye/README]] (вероятно НЕТ — там объекты в Истре, этот в Одинцово)
- [ ] Что роутер обслуживает (камеры / IoT / рабочие места)
- [ ] LAN, провайдер, белый WAN или CGNAT
- [ ] Пароль/ключ доступа