Аудит перед запуском в прод. Найдены и исправлены critical и medium issues:
Critical (fixed):
- File permissions 644 → 600/640 для id_ed25519, БД, config.yaml
- Нет logrotate (диск 2GB зальётся) → /etc/logrotate.d/rustdesk
- Нет авто-бэкапа → daily cron 03:00 в /root/rustdesk-backups/
Medium (fixed):
- Brute-force на /api/admin/login → NPM rate-limit 5r/m
Medium (deferred):
- NC share без пароля (NC сейчас down — отдельный task)
- Security headers не наследуются в location / (NPM template limitation)
Документация:
- decisions/2026-04-30-rustdesk-pre-prod-audit.md — полный отчёт
- projects/dttb/rustdesk-runbook.md — операционный runbook (recovery,
troubleshooting, onboarding, updates)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- snippets/clients/sergey-znamenskoye-happ-setup.md: персональная инструкция с готовым сообщением и блоком про US Apple ID hbuggle819
- snippets/assets/vpn-finland-5870-sergey-znamenskoye-20260429.png: QR vless-ссылки
- projects/dttb/vpn-clients.md: запись клиента №2 (UUID 4798936b)
NPM stack пересоздан с публикацией портов 21115-21119. Compose-файл теперь
лежит на host /data/compose/2/docker-compose.yml (Portainer хранил только
в своём volume — теперь синхронизированы). Custom stream.conf с TLS
termination для 21118/21119 в /data/compose/2/data/nginx/custom/.
wss://remot.dttb.ru:21118/ws/id и /ws/relay отвечают 101 Switching Protocols.
WebClient доходит до hbbr с relay request, но peer должен быть online +
залогинен в API чтобы соединение установилось.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
При попытке завести web-client (wss://remot.dttb.ru:21118) выяснилось что
docker port для NPM публикует только 80/81/443. Streams 21115-21119
работают только внутри docker-сети — desktop-клиенты ходят на 10.0.0.244
напрямую через LAN/NetBird. Web-client требует rebuild NPM compose с ports.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Админка lejianwen-api 2.7 при клике на peer открывает /webclient2/#/<id>,
но api отдаёт Flutter WebClient на /webclient/. Без rewrite получаем 404.
Добавлен return 301 в advanced_config NPM Proxy Host 14 — hash остаётся
в браузере, peer-id корректно подхватывается Flutter-app.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Два независимых фейла за один инцидент 2026-04-27:
1. Bonjour-плагин валит node на CIAO PROBING/ANNOUNCEMENT CANCELLED
(mDNS не работает в LXC). Fix: plugins.entries.bonjour.enabled=false.
Не лечится npm install openclaw@latest.
2. /etc/resolv.conf смотрел на 10.0.0.1 (LionART/Mihomo), который
отдавал FakeIP 198.18.0.6 для api.telegram.org — из LXC такой
трафик некуда маршрутизировать. Fix: nameserver 1.1.1.1 8.8.8.8
через pct set --nameserver (резолвят через NetBird wt0).
Создан reusable setup-key tenant'а netbird.io для временных диагностических
подключений Claude к хостам. Группа Claude-Diag (d7jra32fadhs73dmqv5g),
ключ 83301E74-6F86-4CBD-AF77-0C65730103CA, истекает 2026-05-21.
snippets/netbird-claude-install.ps1 — идемпотентный PowerShell-скрипт:
ставит MSI, регистрирует в tenant, включает RDP и WinRM, открывает
firewall только для 100.70.0.0/16.
credentials.md — добавлена секция Netbird (API token, setup keys, команда
перевыпуска ключа).
- SSH алиасы vps-znam / vps-znam-public в ~/.ssh/config (Mac) и /root/.ssh/config (LXC 137 openclaw)
- Приватный ключ vps_znam_key развёрнут на обоих хостах
- projects/dttb/vps-swtest.md — полная справка: пиры WG, DNAT-порты, сценарии
заходов, безопасная правка wg0.conf через wg syncconf
- credentials.md — добавлена строка VPS в раздел SSH-ключи
- znamenskoye-ohothozyistvo.md — ссылка на новую справку VPS
TODO Олег: сохранить приватник в Bitwarden bit.dttb.ru
- 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)
Добавлены разделы:
- "Something went wrong" после удаления модели из models.providers.zai.models
- Kiro 402 credits_exhausted — месячный кредит AWS, reset 1 числа
- cx/gpt-5.4 free plan rolling 3h window, не подходит для primary
- Как добавить Kiro-учётку через OmniRoute UI (нужен SSH-туннель или or.dttb.ru в NPM)
Обновлена memory feedback_openclaw_models.md:
- В 2026.4.15 в config нужен префикс zai/, но sessions.json оставлять как есть
- После очистки каталога — /new в Telegram, sed по sessions.json ломает
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Full peer inventory (44 active peers)
- Groups mapping
- Deleted 12 stale peers (6+ months offline)
- Also staged pending NIIKN and video surveillance docs
3 локации (Знаменское 29, Охотхозяйство, Знаменское Home),
VPS 89.111.140.86 как точка агрегации через WireGuard,
все порты DNAT, RTSP-ссылки, учётные данные оборудования.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>