Один .bat-файл для самостоятельной установки NetBird на Windows-машины
НИИКН. Автоэлевация через UAC, silent-install последней версии с
pkgs.netbird.io, подключение с reusable setup-key, который авто-привязывает
пира к группе NIIKN (она получает NetBird route 2.63.246.0/24 → pve-LionART
для обхода блокировки nspd.gov.ru).
Setup-key: 6507CC68-2919-4D04-AB8E-3F8507906220 (reusable, без истечения,
NetBird API id d7jj4c3l0ubs73auc270).
Сотрудник скачивает файл, ПКМ → Запустить от имени администратора.
Публичная ссылка для раздачи: https://dttb.ru/s/5o6fXDt2tkraDdW
Заменил socat+DNAT+hosts (утренняя попытка 2026-04-21 не решила авторизацию,
поддомены sso/auth через FakeIP sing-box уходили в awg0→Финляндию где тоже
блок) на два централизованных изменения:
- NetBird Network Route 2.63.246.0/24 → pve-LionART для группы All:
pushed на все 50 пиров автоматически, никаких действий на Windows-клиентах.
- OpenWrt dnsmasq override server=/nspd.gov.ru/8.8.8.8: минует sing-box
FakeIP, клиенты LAN НИИКН получают реальные 2.63.246.71-76 и Windows
маршрутизирует их через wt0 (NetBird) → pve-LionART → Telekom (195.26.30.163),
WAF НСПД пропускает. Работает для главной + всех поддоменов (sso/auth/api).
Снесено:
- nspd-socat.service на pve-LionART
- DNAT "NSPD socat bypass for NIIKN" на MikroTik LionART
- bat-снипы niikn-nspd-hosts-install/uninstall
- hosts-записи + дубликат Ethernet-маршрута на WIN-BC0OTBOBBCH (192.168.1.202)
Протестировано: fallback через awg0 для non-NetBird клиентов не работает —
НСПД блочит hosting Amnezia-Финляндии тоже. Единственный known-good exit
сейчас — pve-LionART/Telekom 195.26.30.163. Non-NetBird машины НИИКН не
откроют НСПД до установки NetBird.
Добавлен отчёт для руководства НИИКН (projects/niikn/nspd-incident-report.md).
- claude-memory/MEMORY.md: add wikilink index for 21+ memory files to close orphan debt
- claude-memory/mas-niikn.md: add date (2026-03-05) to 5 MAS-related TODOs
- notes/README.md: add karpathy-method to navigation index
- projects/dttb/spaceweb-dns.md: fix broken path -> wikilink [[feedback_spaceweb_dns]]
Score: 98 -> 15 (only remaining penalty is 3 legitimate duplicate basenames).
Добавил ## Навигация секции с [[wikilink]] в README.md каждой папки и
в корневой README. Это убирает 90 orphan_files (180 pts).
Score: 463 → 15 (осталось только 3 duplicate_basenames × 5).
Параллельно (через обёрточный код-server auto-sync) зафиксированы:
- frontmatter для 70 .md файлов (-210 pts)
- даты у 48 TODO (-48 pts)
- исправлен относительный путь в projects/dttb/spaceweb-dns.md (-10 pts)
Алгоритм (полный уровень 4):
1. baseline = kb-health.py → score_before
2. создать ветку auto-fix/DATE
3. Opus через claude -p --permission-mode acceptEdits читает health-отчёт,
правит файлы (fm, broken paths, undated todos), коммитит в ветку
4. score_after = kb-health.py
5. если score_after < score_before → merge + push + удалить ветку
иначе → reset, ничего не применять
Запускать на code-server (LXC 132) где есть Max OAuth. Вручную или cron.
Ограничения жёсткие: не удалять файлы, не трогать factual inventories,
не пушить самостоятельно из Opus — merge решает метрика.