code-server auto-sync 2026-06-21T06:05:01+00:00

This commit is contained in:
2026-06-21 06:05:01 +00:00
parent de012fc782
commit 4e0d14a20f
9 changed files with 697 additions and 9 deletions

View File

@@ -0,0 +1,52 @@
---
date: 2026-06-21
type: audit
source: kb-audit-creds.py
tags: [audit, creds, reachability]
---
# Credentials reachability — 2026-06-21
Ping-проверка URL из [[../projects/dttb/credentials|credentials.md]].
Проверяется только reachability (HTTP status), не реальный логин.
- Всего URL: **20**
- ✓ Reachable: 15 / ⚠ Questionable: 3 / ❌ Unreachable: 2
## ❌ Недоступные (проверить: сервер упал? URL поменялся?)
| URL | Status | Detail | Контекст |
|---|---|---|---|
| `https://vps.sweb.ru` | FAIL | [Errno 104] Connection reset by peer | --------- ---------- URL https://vps.sweb.ru |
| `https://api.sweb.ru/domains/dns` | FAIL | [Errno 104] Connection reset by peer | ароль `1qaz!QAZ` API `https://api.sweb.ru/ |
## ⚠ Нестандартный ответ
| URL | Status | Detail |
|---|---|---|
| `https://remot.dttb.ru/swagger/index.html` | 404 | Not Found |
| `https://api.netbird.io` | 404 | Not Found |
| `https://api.netbird.io/api/setup-keys` | 404 | Not Found |
## ✓ Все ответили нормально
| URL | Status | Категория |
|---|---|---|
| `https://10.0.0.250:8006` | 200 | ✓ reachable |
| `https://pve.dttb.ru` | 200 | ✓ reachable |
| `http://10.0.0.189:3000` | 200 | ✓ reachable |
| `http://git.dttb.ru` | 200 | ✓ reachable |
| `http://10.0.0.195:81` | 200 | ✓ reachable |
| `https://npm.dttb.ru` | 200 | ✓ reachable |
| `https://remot.dttb.ru/_admin` | 200 | ✓ reachable |
| `https://dttb.ru` | 200 | ✓ reachable |
| `https://dttb.ru/remote.php/dav/files/admin` | 401 | ✓ auth-required (сервер жив) |
| `https://mail.niikn.com` | 200 | ✓ reachable |
| `http://192.168.1.22:81` | 200 | ✓ reachable |
| `https://edit.telegra.ph/auth/f1tfgzYpPpGlAr7cYHRzSeH59fYuNVB2V3fbCdypDc` | 200 | ✓ reachable |
| `https://api.telegra.ph/createPage` | 200 | ✓ reachable |
| `https://api.telegra.ph/editPage` | 200 | ✓ reachable |
| `https://telegra.ph/Nastrojka-VPN-04-24-2` | 200 | ✓ reachable |
---
*Автоматически через `scripts/kb-audit-creds.py`.*

View File

@@ -0,0 +1,93 @@
---
date: 2026-06-21
type: audit
source: kb-audit-dns.py
tags: [audit, dns]
---
# DNS resolve audit — 2026-06-21
Резолвим все домены из NPM через публичный DNS (8.8.8.8) и локальный роутер (10.0.0.1).
- Всего доменов: **31**
- NXDOMAIN на 8.8.8.8: 2 / пустой ответ локально: 1 / split-horizon: 23
## ❌ NXDOMAIN / не резолвится на 8.8.8.8 (публичный DNS)
| Домен | Локальный IP |
|---|---|
| `itilegent.ru` | (тоже нет) |
| `vpn.dttb.ru` | 10.0.0.195 |
## ⚠ Split-horizon — разные IP снаружи и внутри
Это нормально для *.dttb.ru (внешний Let's Encrypt IP vs локальный 10.0.0.195). Но неожиданный split может быть багом.
| Домен | Публичный (8.8.8.8) | Локальный (10.0.0.1) |
|---|---|---|
| `ai.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `bit.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `bitrix24.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `bot.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `git.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `home.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `ip.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `link.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `mail.dttb.ru` | 176.62.183.186 | 10.0.0.107 |
| `matrix.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `npm.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `office.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `omni.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `plex.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `porteiner.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `pve.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `rec.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `remot.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `router.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `swarm.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `unifi.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `z.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
## ⚠ Пустой локальный резолв (роутер не знает)
- `itilegent.ru` (публичный: -)
## Полная таблица резолва
| Домен | 8.8.8.8 | 10.0.0.1 |
|---|---|---|
| `ai.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `ai.umnybot.ru` | 158.255.0.139 | 158.255.0.139 |
| `bit.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `bitrix24.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `bot.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `git.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `home.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `ip.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `itilegent.ru` | — | — |
| `link.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `mail.dttb.ru` | 176.62.183.186 | 10.0.0.107 |
| `matrix.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `npm.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `office.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `omni.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `omni.umnybot.ru` | 158.255.0.139 | 158.255.0.139 |
| `plex.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `porteiner.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `pve.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `rec.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `remot.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `router.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `rustdesk.umnybot.ru` | 158.255.0.139 | 158.255.0.139 |
| `swarm.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `tg.umnybot.ru` | 158.255.0.139 | 158.255.0.139 |
| `umnybot.ru` | 158.255.0.139 | 158.255.0.139 |
| `unifi.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `vpn.dttb.ru` | — | 10.0.0.195 |
| `z.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
| `zima.umnybot.ru` | 158.255.0.139 | 158.255.0.139 |
---
*Автоматически через `scripts/kb-audit-dns.py`.*

72
audit/2026-06-21-drift.md Normal file
View File

@@ -0,0 +1,72 @@
---
date: 2026-06-21
type: audit
source: kb-audit.py
tags: [audit, drift, infrastructure]
---
# KB drift audit — 2026-06-21
Сравнение живого `pct list` / `qm list` с [[../projects/dttb/proxmox-inventory|proxmox-inventory.md]]
- Живых гостей Proxmox: **43**
- Упомянуто в inventory: **42**
- В обоих: 42 / только в live: 1 / отсутствуют в live: 0
- Известны как удалённые: 0 (в `## 🗑️ Удалённые`)
## ⚠ В Proxmox есть, в inventory НЕТ (надо добавить)
| VMID | Type | Status | Name |
|---|---|---|---|
| 139 | LXC | running | severny-les |
## Полный живой список
| VMID | Type | Status | Name |
|---|---|---|---|
| 100 | VM | stopped | NV |
| 101 | LXC | stopped | n8n |
| 102 | LXC | stopped | SMB |
| 103 | LXC | running | NPM |
| 104 | VM | stopped | Agent-DVR |
| 105 | VM | stopped | Nextcloud-AIO-dttb.ru |
| 106 | VM | running | pbs |
| 107 | VM | running | Mailcow |
| 108 | LXC | stopped | zabbix |
| 109 | VM | stopped | itilelegent |
| 110 | VM | stopped | Cloud |
| 111 | VM | running | WinServer2025 |
| 112 | VM | running | cloud-dttb |
| 113 | LXC | running | VaultWarden |
| 114 | LXC | running | LinkWarden |
| 115 | LXC | running | watchyourlan |
| 116 | LXC | running | rustdeskserver |
| 117 | LXC | stopped | motioneye |
| 118 | LXC | stopped | plex |
| 119 | LXC | running | myspeed |
| 120 | VM | stopped | 7 |
| 121 | LXC | stopped | docker-windows |
| 122 | LXC | stopped | qbittorrent |
| 123 | LXC | stopped | proxmox-local |
| 124 | VM | stopped | Matrix |
| 125 | VM | stopped | datacentr |
| 126 | LXC | stopped | debian |
| 127 | VM | running | haos-17.0 |
| 128 | LXC | stopped | profi-parser |
| 129 | VM | stopped | profi-parser-vm |
| 130 | VM | running | Zima-OS |
| 131 | VM | stopped | ubuntu |
| 132 | LXC | running | code-server |
| 133 | VM | stopped | s1c-buzharovo |
| 134 | LXC | stopped | ZnamSecurityBot |
| 135 | LXC | running | swarmclaw |
| 136 | LXC | running | gitea |
| 137 | LXC | running | openclaw |
| 138 | LXC | stopped | vpn-proxy |
| 139 | LXC | running | severny-les |
| 140 | LXC | running | unifi |
| 141 | LXC | running | german |
| 250 | VM | running | Nextcloud-AIO |
---
*Автоматически сгенерировано `scripts/kb-audit.py`. Применять правки — вручную после ревью.*

241
audit/2026-06-21-health.md Normal file
View File

@@ -0,0 +1,241 @@
---
date: 2026-06-21
type: audit
source: kb-health.py
score: 2285
tags: [audit, health, metric]
---
# KB health — 2026-06-21
**Score (меньше = лучше): `2285`**
Проверено файлов: 1431
## Разбивка
| Категория | Кол-во | Вес | Штраф |
|---|---:|---:|---:|
| broken_wikilinks | 23 | 10 | 230 |
| broken_paths | 132 | 10 | 1320 |
| missing_frontmatter | 23 | 3 | 69 |
| orphan_files | 62 | 2 | 124 |
| undated_todos | 512 | 1 | 512 |
| duplicate_basenames | 6 | 5 | 30 |
| **ИТОГО** | | | **2285** |
## Битые wikilinks
| Откуда | `[[таргет]]` |
|---|---|
| `decisions/2026-06-15-unifi-controller-homelab.md` | `[[feedback_dttb_dns_split_view]]` |
| `decisions/2026-06-08-swarmclaw-lxc135-deploy.md` | `[[../snippets/spaceweb-dns-api]]` |
| `decisions/2026-05-26-omni-domain-and-update.md` | `[[feedback_spaceweb_dns_desync]]` |
| `decisions/2026-06-04-lipki-deco-p9-powerline-degradation.md` | `[[../claude-memory/feedback_lipki_deco_powerline]]` |
| `decisions/2026-05-23-glavtorg-autologon-off.md` | `[[feedback_vmware_workstation_session]]` |
| `decisions/2026-06-20-german-hermes-out-of-usage.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_omniroute_update]]` |
| `decisions/2026-06-20-german-hermes-out-of-usage.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/project_german_hermes]]` |
| `decisions/2026-06-20-german-hermes-out-of-usage.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_root_cause_recurring]]` |
| `projects/openwrt-4/credentials.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag]]` |
| `projects/dttb/proxmox-pve-147.md` | `[[../../claude-memory/project_alexandr_assistant]]` |
| `projects/dttb/finland-hostkey-vps.md` | `[[../../claude-memory/finland-vps-security]]` |
| `projects/benilux/kp-alexandr-umny-server.md` | `[[../../claude-memory/project_alexandr_assistant]]` |
| `projects/niikn/maul-pc.md` | `[[project_niikn_maxim_assistant]]` |
| `projects/niikn/maul-pc.md` | `[[../../snippets/netbird-claude-install.ps1]]` |
| `projects/niikn/maul-pc.md` | `[[../../snippets/clients/]]` |
| `projects/dttb/graphify-out/GRAPH_REPORT.md` | `[[_COMMUNITY_Community 0]]` |
| `projects/dttb/graphify-out/GRAPH_REPORT.md` | `[[_COMMUNITY_Community 1]]` |
| `projects/dttb/graphify-out/GRAPH_REPORT.md` | `[[_COMMUNITY_Community 2]]` |
| `projects/dttb/graphify-out/GRAPH_REPORT.md` | `[[_COMMUNITY_Community 3]]` |
| `snippets/podkop-reference.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_busybox_ip_br_flag\]]` |
| `snippets/podkop-reference.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_iphone_breaks_fakeip\]]` |
| `snippets/podkop-reference.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_root_cause_recurring]]` |
| `snippets/podkop-fakeip-diagnostics.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_openclaw_crash_loop]]` |
## Битые relative-пути
| Откуда | Путь |
|---|---|
| `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_superwhisper_no_license.md` |
| `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/reference_groq_api.md` |
| `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_superwhisper_no_license.md` |
| `notes/ru-geoblocked-services.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_win11_unattended_upgrade.md` |
| `notes/ru-geoblocked-services.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_nspd_blocks_mts.md` |
| `notes/claude/2026-04-21-200915-охотхозяйство-с-openwrt-на-orange-pi-нужно-настрои.md` | `projects/dttb/vps-swtest.md` |
| `notes/claude/2026-05-21-102751-давай-проверим-openvrt-benelux.md` | `snippets/clients/alexandr-benelux-amnezia-reinstall.md` |
| `notes/claude/2026-04-24-194555-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `projects/dttb/credentials.md` |
| `notes/claude/2026-04-20-113423-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md` |
| `notes/claude/2026-04-28-122042-промт-для-claude-code-развёртывание-rustdesk-api-s.md` | `decisions/2026-04-28-rustdesk-lejianwen-pro-migration.md` |
| `notes/claude/2026-04-28-122042-промт-для-claude-code-развёртывание-rustdesk-api-s.md` | `projects/dttb/rustdesk.md` |
| `notes/claude/2026-04-28-122042-промт-для-claude-code-развёртывание-rustdesk-api-s.md` | `projects/dttb/credentials.md` |
| `notes/claude/2026-04-30-221054-найди-инфу-вчера-оксане-делали-доступ-через-рустде.md` | `projects/niikn/office-pc.md` |
| `notes/claude/2026-04-29-153123-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/proxmox-inventory.md` |
| `notes/claude/2026-04-29-153123-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/credentials.md` |
| `notes/claude/2026-05-29-234117-давай-проверим-openvrt-benelux.md` | `projects/dttb/proxmox-pve-147.md` |
| `notes/claude/2026-05-29-234117-давай-проверим-openvrt-benelux.md` | `projects/dttb/proxmox-inventory.md` |
| `notes/claude/2026-04-29-231939-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/happ-routing-roscomvpn.md` |
| `notes/claude/2026-05-30-105828-давай-проверим-openvrt-benelux.md` | `projects/dttb/proxmox-pve-147.md` |
| `notes/claude/2026-04-24-194322-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
| `notes/claude/2026-04-24-194322-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/apple-id-us-on-russia.md` |
| `notes/claude/2026-05-04-100627-можешь-составлять-графические-схемы-на-dttbruhttpd.md` | `projects/znamenskoye/network-topology-diagram.md` |
| `notes/claude/2026-04-20-115126-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `projects/mmfb/mikrotik.md` |
| `notes/claude/2026-04-20-115126-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `projects/niikn/mikrotik.md` |
| `notes/claude/2026-04-24-165527-новый-клиент-ммфб-юрий-витальевич-нужно-подключить.md` | `projects/mmfb/yuri-vitalievich.md` |
| `notes/claude/2026-05-06-210824-superwhisper-можешь-проверить-не-работает.md` | `../knowledge-base/decisions/2026-05-05-mac-dictation-groq-hammerspoon.md` |
| `notes/claude/2026-05-20-195902-давай-проверим-openvrt-benelux.md` | `decisions/2026-05-20-benelux-compromise.md` |
| `notes/claude/2026-05-28-131315-нужно-в-нетбирд-найти-и-настроить-подключение-к-эт.md` | `projects/niikn/maul-pc.md` |
| `notes/claude/2026-04-29-160010-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/clients/yaroslav-happ-setup.md` |
| `notes/claude/2026-05-04-085317-можешь-составлять-графические-схемы-на-dttbruhttpd.md` | `projects/dttb/network-topology-diagram.md` |
| `notes/claude/2026-05-21-104248-давай-проверим-openvrt-benelux.md` | `projects/benilux/credentials.md` |
| `notes/claude/2026-06-05-123547-давай-проверим-openvrt-benelux.md` | `decisions/2026-06-05-benelux-blackout-fw4-recovery.md` |
| `notes/claude/2026-04-29-071329-на-компе-юрия-продолжим-проверь-он-сети.md` | `projects/mmfb/otchet-yuri-2026-04.md` |
| `notes/claude/2026-05-23-133737-еще-клиент-ярослав-сервера-1с-главторг-жалуется-чт.md` | `projects/glavtorg/instruction-yaroslav-autologon.md` |
| `notes/claude/2026-05-27-191956-давай-проверим-openvrt-benelux.md` | `snippets/clients/alexandr-benelux-power-recovery.md` |
| `notes/claude/2026-04-21-203517-дай-мне-команду-в-сшел-виндовс-установка-нетбирд-и.md` | `/Users/ai/.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag.md` |
| `notes/claude/2026-05-28-215219-102531240-администратор-ol260380eg-нужно-подключит.md` | `projects/mmfb/lionart-1c.md` |
| `notes/claude/2026-05-26-111148-нужно-на-omni-робуте-установить-ему-домен-у-тебя-е.md` | `memory/feedback_antigravity_onboarding.md` |
| `notes/claude/2026-05-26-111148-нужно-на-omni-робуте-установить-ему-домен-у-тебя-е.md` | `memory/MEMORY.md` |
| `notes/claude/2026-06-02-001742-есть-клиент-француз-у-него-есть-cudy-tr3000-с-podk.md` | `projects/openwrt-4/canal-plus-setup-runbook.md` |
| `notes/claude/2026-06-08-213054-найди-аналог-openclaw-для-меня-нужен-аркестратор-и.md` | `decisions/2026-06-08-swarmclaw-lxc135-deploy.md` |
| `notes/claude/2026-04-29-150044-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/vpn-clients.md` |
| `notes/claude/2026-04-29-223542-создадим-еще-одного-пользователя-подключение-к-vpn.md` | `snippets/clients/sergey-znamenskoye-happ-setup.md` |
| `notes/claude/2026-05-30-002747-давай-проверим-openvrt-benelux.md` | `projects/dttb/proxmox-pve-147.md` |
| `notes/claude/2026-05-20-204621-давай-проверим-openvrt-benelux.md` | `snippets/clients/alexandr-benelux-amnezia-reinstall.md` |
| `notes/claude/2026-05-30-003032-давай-проверим-openvrt-benelux.md` | `projects/dttb/proxmox-pve-147.md` |
| `notes/claude/2026-05-20-190402-давай-проверим-openvrt-benelux.md` | `projects/benilux/README.md` |
| `notes/claude/2026-05-20-190402-давай-проверим-openvrt-benelux.md` | `decisions/2026-05-20-benelux-compromise.md` |
| `notes/claude/2026-04-28-134112-можешь-найти-кп-мичуринец.md` | `projects/dttb/znamenskoye-network-topology.md` |
| `notes/claude/2026-04-28-134112-можешь-найти-кп-мичуринец.md` | `claude-memory/benelux-topology.md` |
| ... | +82 ещё |
## Без frontmatter (23)
- `decisions/2026-06-01-claude-remote-control-mobile.md`
- `decisions/2026-06-11-niikn-opyt-arhiv-100mb.md`
- `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md`
- `notes/ru-geoblocked-services.md`
- `projects/dttb/znamenskoye-log.md`
- `projects/niikn/office-pc.md`
- `projects/niikn/kripto-arm.md`
- `projects/mmfb/yuri-vitalievich.md`
- `projects/mmfb/otchet-yuri-2026-04.md`
- `projects/dttb/graphify-out/GRAPH_REPORT.md`
- `snippets/happ-vpn-client-instruction.md`
- `snippets/invoice-template.md`
- `snippets/assets/happ-routing-roscomvpn/README-upstream.md`
- `claude-memory/servicedesk-dttb.md`
- `claude-memory/benelux.md`
- `claude-memory/nextcloud-dttb.md`
- `claude-memory/nvr-fix.md`
- `claude-memory/videonablyudenie.md`
- `claude-memory/znamenskoe-home.md`
- `claude-memory/niikn-nextcloud.md`
- `claude-memory/krasnogorsk.md`
- `claude-memory/mas-niikn.md`
- `claude-memory/MEMORY.md`
## Orphan — без бэклинков (62)
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
- `decisions/2026-05-14-buzharovo-watchdog-public-only.md`
- `decisions/2026-04-30-niikn-culture-gov-fakeip-fix.md`
- `decisions/2026-06-01-claude-remote-control-mobile.md`
- `decisions/2026-06-17-niikn-deco-p9-backhaul-degradation.md`
- `decisions/2026-05-26-server-upgrade-z6-g4.md`
- `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md`
- `decisions/2026-06-11-niikn-opyt-arhiv-100mb.md`
- `decisions/2026-06-04-deapple-migration-roadmap.md`
- `decisions/2026-04-28-netbird-watchdog-lxc-132-137.md`
- `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md`
- `decisions/2026-05-23-glavtorg-autologon-off.md`
- `decisions/2026-06-08-finland-vless-happ-dns-diag.md`
- `decisions/2026-05-08-buzharovo-1c-licensing-options.md`
- `decisions/2026-05-06-kb-search-overhaul.md`
- `decisions/2026-04-28-niikn-uookn-sev-gov-fakeip-fix.md`
- `decisions/2026-06-20-german-hermes-out-of-usage.md`
- `notes/ru-geoblocked-services.md`
- `projects/openwrt-4/STATUS-2026-06-03-eod.md`
- `projects/openwrt-4/session-handoff-2026-06-02.md`
- `projects/openwrt-4/client-letter.md`
- `projects/dttb/network-topology-diagram.md`
- `projects/glavtorg/instruction-yaroslav-autologon.md`
- `projects/benilux/kp-alexandr-umny-server.md`
- `projects/niikn/mailcow.md`
- `projects/niikn/NIIKN-Infrastructure.md`
- `projects/niikn/maul-pc.md`
- `projects/niikn/groupfolders-migration.md`
- `projects/niikn/credentials.md`
- `projects/niikn/changelog.md`
- `projects/niikn/matrix.md`
- ... +32 ещё
## TODO без даты (512 шт в 93 файлах)
- `projects/backlog-current.md` — 39 шт
- `decisions/2026-06-04-deapple-migration-roadmap.md` — 13 шт
- `decisions/2026-04-30-rustdesk-pre-prod-audit.md` — 13 шт
- `projects/lipki/README.md` — 11 шт
- `templates/vpn-client.md` — 7 шт
- `decisions/2026-05-26-server-upgrade-z6-g4.md` — 6 шт
- `decisions/2026-04-29-rustdesk-client-deployment-package.md` — 6 шт
- `projects/buzharovo/severny-les-bot.md` — 6 шт
- `notes/claude/2026-05-30-223109-session.md` — 5 шт
- `notes/claude/2026-05-31-230412-session.md` — 5 шт
- `notes/claude/2026-06-01-115908-session.md` — 5 шт
- `notes/claude/2026-05-31-212135-session.md` — 5 шт
- `notes/claude/2026-05-31-150934-session.md` — 5 шт
- `notes/claude/2026-05-30-143711-session.md` — 5 шт
- `notes/claude/2026-05-31-232509-session.md` — 5 шт
- `notes/claude/2026-06-08-161105-session.md` — 5 шт
- `notes/claude/2026-06-07-235211-session.md` — 5 шт
- `notes/claude/2026-06-08-160130-session.md` — 5 шт
- `notes/claude/2026-06-08-002741-session.md` — 5 шт
- `notes/claude/2026-05-31-183858-session.md` — 5 шт
## Дубликаты имён (6)
- `README.md`:
- `README.md`
- `decisions/README.md`
- `notes/README.md`
- `projects/znamenskoye/README.md`
- `projects/openwrt-4/README.md`
- `projects/dttb/README.md`
- `projects/glavtorg/README.md`
- `projects/benilux/README.md`
- `projects/vishnevyy-sad/README.md`
- `projects/sergey/README.md`
- `projects/niikn/README.md`
- `projects/lipki/README.md`
- `projects/krasnogorsk/README.md`
- `projects/mmfb/README.md`
- `projects/buzharovo/README.md`
- `projects/peredelki/README.md`
- `projects/zelenograd/README.md`
- `projects/dttb/nextcloud-talk-bot/README.md`
- `snippets/README.md`
- `snippets/mac-dictation/README.md`
- `scripts/README.md`
- `nextcloud.md`:
- `projects/nextcloud.md`
- `projects/dttb/nextcloud.md`
- `network-topology-diagram.md`:
- `projects/znamenskoye/network-topology-diagram.md`
- `projects/dttb/network-topology-diagram.md`
- `projects/niikn/network-topology-diagram.md`
- `credentials.md`:
- `projects/openwrt-4/credentials.md`
- `projects/dttb/credentials.md`
- `projects/benilux/credentials.md`
- `projects/niikn/credentials.md`
- `projects/peredelki/credentials.md`
- `projects/dttb/ai-assistant-pilot/credentials.md`
- `proxmox-inventory.md`:
- `projects/dttb/proxmox-inventory.md`
- `projects/mmfb/proxmox-inventory.md`
- `mikrotik.md`:
- `projects/niikn/mikrotik.md`
- `projects/mmfb/mikrotik.md`
---
*Генерируется `scripts/kb-health.py`. JSON-версия в `audit/health-latest.json` для agent-loop.*

View File

@@ -0,0 +1,76 @@
---
date: 2026-06-21
type: audit
source: kb-audit-npm.py
tags: [audit, drift, npm]
---
# NPM drift audit — 2026-06-21
Сверка [[../projects/dttb/npm-proxy-hosts|npm-proxy-hosts.md]] с NPM API (https://npm.dttb.ru).
- Живых proxy hosts: **31**
- В KB: **27**
- Совпадений: 27 / новых: 4 / удалённых из NPM: 0 / с изменениями: 4
## ⚠ Новые hosts (в NPM есть, в KB нет)
| ID | Домены | Backend | SSL | Enabled |
|---|---|---|---|---|
| 26 | `router.dttb.ru` | `10.0.0.1:8080` | ✓ | on |
| 27 | `vpn.dttb.ru` | `10.0.0.141:8443` | - | on |
| 35 | `ai.umnybot.ru` | `10.0.0.239:9119` | ✓ | on |
| 37 | `umnybot.ru` | `10.0.0.103:3456` | - | on |
## 🔄 Изменения (ID совпадает, но что-то сменилось)
### #12 `bitrix24.dttb.ru`
- backend: KB=`10.0.0.223:8080` → live=`10.0.0.224:8080`
### #14 `remot.dttb.ru`
- backend: KB=`10.0.0.43:21114` → live=`10.0.0.244:21114`
### #22 `git.dttb.ru`
- ssl: KB=✗ → live=✓
### #33 `tg.umnybot.ru`
- backend: KB=`10.0.0.190:3000` → live=`10.0.0.221:80`
## Полный живой список
| ID | Домены | Backend | SSL | Enabled |
|---|---|---|---|---|
| 1 | `dttb.ru` | `10.0.0.230:11001` | ✓ | on |
| 2 | `office.dttb.ru` | `10.0.0.169:8080` | ✓ | on |
| 3 | `itilegent.ru` | `10.0.0.223:8080` | ✓ | on |
| 4 | `npm.dttb.ru` | `10.0.0.195:81` | ✓ | on |
| 5 | `porteiner.dttb.ru` | `10.0.0.10:9443` | ✓ | on |
| 6 | `pve.dttb.ru` | `10.0.0.250:8006` | ✓ | on |
| 9 | `ai.dttb.ru` | `10.0.0.179:8080` | ✓ | on |
| 10 | `bit.dttb.ru` | `10.0.0.217:8080` | ✓ | on |
| 11 | `link.dttb.ru` | `10.0.0.184:3000` | ✓ | on |
| 12 | `bitrix24.dttb.ru` | `10.0.0.224:8080` | ✓ | on |
| 13 | `ip.dttb.ru` | `10.0.0.112:8840` | ✓ | on |
| 14 | `remot.dttb.ru` | `10.0.0.244:21114` | ✓ | on |
| 15 | `plex.dttb.ru` | `10.0.0.200:32400` | ✓ | on |
| 16 | `home.dttb.ru` | `10.0.0.155:8123` | ✓ | on |
| 17 | `z.dttb.ru` | `10.0.0.220:80` | ✓ | on |
| 21 | `rec.dttb.ru` | `10.0.0.227:8091` | ✓ | on |
| 22 | `git.dttb.ru` | `10.0.0.189:3000` | ✓ | on |
| 23 | `matrix.dttb.ru` | `10.0.0.224:8080` | ✓ | on |
| 25 | `mail.dttb.ru` | `10.0.0.107:443` | ✓ | on |
| 26 | `router.dttb.ru` | `10.0.0.1:8080` | ✓ | on |
| 27 | `vpn.dttb.ru` | `10.0.0.141:8443` | - | on |
| 28 | `bot.dttb.ru` | `10.0.0.239:18789` | ✓ | on |
| 29 | `omni.dttb.ru` | `10.0.0.179:20128` | ✓ | on |
| 30 | `omni.umnybot.ru` | `10.0.0.163:20128` | ✓ | on |
| 31 | `zima.umnybot.ru` | `10.0.0.190:80` | ✓ | on |
| 32 | `swarm.dttb.ru` | `10.0.0.135:3456` | ✓ | on |
| 33 | `tg.umnybot.ru` | `10.0.0.221:80` | ✓ | on |
| 34 | `rustdesk.umnybot.ru` | `10.0.0.190:3005` | ✓ | on |
| 35 | `ai.umnybot.ru` | `10.0.0.239:9119` | ✓ | on |
| 36 | `unifi.dttb.ru` | `10.0.0.196:8443` | ✓ | on |
| 37 | `umnybot.ru` | `10.0.0.103:3456` | - | on |
---
*Автоматически через `scripts/kb-audit-npm.py`.*

View File

@@ -0,0 +1,56 @@
---
date: 2026-06-21
type: audit
source: scripts/kb-objects-audit.py
tags: [audit, objects, frontmatter, links]
score: 66
---
# KB objects audit — 2026-06-21
**Score (меньше = лучше): `66`**
- Проектов с frontmatter: **14/14** (0 проблем)
- NetBird online-пиров без проектной карточки: **3**
- Битых wiki-ссылок `[[...]]`: **20**
## Frontmatter в projects/
✅ все проекты имеют валидный frontmatter
## Online netbird-пиры без проектной карточки
Эти пиры онлайн в NetBird, но не привязаны ни к одной projects/-странице.
Бот не сможет ответить «найди X» осмысленно — нет файла или alias.
Лечение: либо создать stub в `projects/<slug>/README.md` (см. `projects/lipki/` как образец),
либо добавить имя пира как полную строку в `aliases` подходящего проекта.
| NetBird-имя | IP | OS | Город |
|---|---|---|---|
| `DESKTOP-2IOQS54` | 100.70.82.83 | Windows 10 | Saransk |
| `DESKTOP-AGBMLPN` | 100.70.0.106 | Windows 11 | Helsinki |
| `DESKTOP-HL0BB05` | 100.70.235.80 | Windows 11 | Lipetsk |
## Битые wiki-ссылки
- [snippets/podkop-reference.md](snippets/podkop-reference.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_busybox_ip_br_flag\|памятка]]` → нет такого файла
- [snippets/podkop-reference.md](snippets/podkop-reference.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_iphone_breaks_fakeip\|памятка]]` → нет такого файла
- [snippets/podkop-reference.md](snippets/podkop-reference.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_root_cause_recurring|памятка: корень vs band-aid]]` → нет такого файла
- [snippets/podkop-fakeip-diagnostics.md](snippets/podkop-fakeip-diagnostics.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_openclaw_crash_loop|памятку про sing-box crash-loop]]` → нет такого файла
- [decisions/2026-06-15-unifi-controller-homelab.md](decisions/2026-06-15-unifi-controller-homelab.md) — `[[feedback_dttb_dns_split_view]]` → нет такого файла
- [decisions/2026-06-08-swarmclaw-lxc135-deploy.md](decisions/2026-06-08-swarmclaw-lxc135-deploy.md) — `[[../snippets/spaceweb-dns-api]]` → нет такого файла
- [decisions/2026-05-26-omni-domain-and-update.md](decisions/2026-05-26-omni-domain-and-update.md) — `[[feedback_spaceweb_dns_desync]]` → нет такого файла
- [decisions/2026-06-04-lipki-deco-p9-powerline-degradation.md](decisions/2026-06-04-lipki-deco-p9-powerline-degradation.md) — `[[../claude-memory/feedback_lipki_deco_powerline]]` → нет такого файла
- [decisions/2026-05-23-glavtorg-autologon-off.md](decisions/2026-05-23-glavtorg-autologon-off.md) — `[[feedback_vmware_workstation_session]]` → нет такого файла
- [decisions/2026-06-20-german-hermes-out-of-usage.md](decisions/2026-06-20-german-hermes-out-of-usage.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_omniroute_update]]` → нет такого файла
- [decisions/2026-06-20-german-hermes-out-of-usage.md](decisions/2026-06-20-german-hermes-out-of-usage.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/project_german_hermes]]` → нет такого файла
- [decisions/2026-06-20-german-hermes-out-of-usage.md](decisions/2026-06-20-german-hermes-out-of-usage.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_root_cause_recurring]]` → нет такого файла
- [projects/openwrt-4/credentials.md](projects/openwrt-4/credentials.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag|памятка]]` → нет такого файла
- [projects/dttb/proxmox-pve-147.md](projects/dttb/proxmox-pve-147.md) — `[[../../claude-memory/project_alexandr_assistant]]` → нет такого файла
- [projects/dttb/finland-hostkey-vps.md](projects/dttb/finland-hostkey-vps.md) — `[[../../claude-memory/finland-vps-security]]` → нет такого файла
- [projects/benilux/kp-alexandr-umny-server.md](projects/benilux/kp-alexandr-umny-server.md) — `[[../../claude-memory/project_alexandr_assistant]]` → нет такого файла
- [projects/niikn/maul-pc.md](projects/niikn/maul-pc.md) — `[[project_niikn_maxim_assistant|Максима Мауля]]` → нет такого файла
- [projects/niikn/maul-pc.md](projects/niikn/maul-pc.md) — `[[../../snippets/netbird-claude-install.ps1]]` → нет такого файла
- [projects/niikn/maul-pc.md](projects/niikn/maul-pc.md) — `[[rustdesk\|lejianwen-pro LXC 116]]` → нет такого файла
- [projects/niikn/maul-pc.md](projects/niikn/maul-pc.md) — `[[../../snippets/clients/|метод]]` → нет такого файла

View File

@@ -0,0 +1,98 @@
---
date: 2026-06-21
type: audit-proposed
source: kb-audit-propose.sh (Opus 4.7)
tags: [audit, proposed, inventory]
---
# Предложенные правки inventory — 2026-06-21
Сгенерировано Claude Opus на основе [[2026-06-21-drift|drift-отчёта]].
**Правки НЕ применены.** Ревью — ты. Apply — вручную.
Аудит формально нашёл только 1 расхождение, но сверка **полного** live-списка из отчёта вскрывает ещё несколько. Разбор ниже.
## 1. Резюме
Помимо отсутствующего `LXC 139 severny-les`, в inventory разъехались **4 статуса** (112, 119, 130 на самом деле `running`; 134 — `stopped`) и устарел раздел «Удалённые»: VMID **129/133/135 переиспользованы** живыми гостями. Сводные числа тоже неверны (39 → должно быть 43).
## 2. Конкретные правки
**A. Добавить блок LXC 139 (раздел «Запущенные LXC»)**
```diff
+### LXC 139 — severny-les
+| Параметр | Значение |
+|----------|----------|
+| Статус | 🟢 running |
+| IP | (уточнить — в отчёте нет) |
+| Назначение | (уточнить) |
```
> В drift-отчёте по 139 есть только имя+статус. IP/роль не выдумывал — заглушки.
**B. Исправить статусы (running, а не stopped)** — убрать из таблиц остановленных:
```diff
# Остановленные VM:
-| 112 | cloud-dttb | 8 | 16 GB | 80 GB | — |
-| 130 | Zima-OS | 4 | 12 GB | 32 GB | ZimaOS |
# Остановленные LXC:
-| 119 | myspeed | Speed test мониторинг |
```
…и добавить их как running (минимальные записи, деталей в отчёте нет):
```diff
# Запущенные VM:
+### VM 112 — cloud-dttb → 🟢 running (IP уточнить)
+### VM 130 — Zima-OS → 🟢 running (IP уточнить)
# Запущенные LXC:
+### LXC 119 — myspeed → 🟢 running (IP уточнить)
```
**C. LXC 134 ZnamSecurityBot — теперь stopped**
```diff
-### LXC 134 — ZnamSecurityBot
-| Статус | 🟢 running |
+# переместить в таблицу «Остановленные LXC»:
+| 134 | ZnamSecurityBot | ZnamSecurity Telegram-бот (10.0.0.238) |
```
**D. Раздел «Удалённые» устарел — VMID переиспользованы**
```diff
-| 129 | Clawdbot | ~апрель 2026 | Данные перенесены на code-server (132)... |
-| 133 | clawdbot-1 | ~апрель 2026 | Функционал мигрирован на openclaw (137) |
-| 135 | whisper-bot| ~апрель 2026 | — |
```
> 129 → живой `profi-parser-vm` (VM, stopped); 133 → `s1c-buzharovo` (VM, stopped); 135 → `swarmclaw` (LXC, running — **уже** описан отдельным блоком, т.е. сейчас числится дважды). Историю можно сохранить, но пометкой «VMID освобождён и переиспользован», а не как «удалён».
Добавить 129/133 в «Остановленные VM»:
```diff
+| 129 | profi-parser-vm | — | — | — | (уточнить) |
+| 133 | s1c-buzharovo | — | — | — | (уточнить) |
```
**E. Сводка**
```diff
-| QEMU VM | 15 | 5 | 10 |
-| LXC | 24 | 14| 10 |
-| **Итого** | **39** | **19** | **20** |
+| QEMU VM | 18 | 7 | 11 |
+| LXC | 25 | 13| 12 |
+| **Итого** | **43** | **20** | **23** |
```
> Пересчитано по live-списку отчёта (VM 18 / LXC 25; running 20 / stopped 23).
**F. Дата обновления (шапка)**
```diff
-> Последнее обновление: 2026-06-18 (добавлен LXC 141 german...)
+> Последнее обновление: 2026-06-21 (drift-аудит: +LXC 139; статусы 112/119/130/134; переиспользование VMID 129/133/135)
```
## 3. Предупреждения (неоднозначное)
- **139, 112, 119, 130**: в отчёте нет IP/назначения — поставил `(уточнить)`, заполнять вручную из живых хостов, не из отчёта.
- **133 `s1c-buzharovo`**: имя намекает на 1С (Бужарово), но отчёт это не подтверждает — назначение оставил «уточнить», не додумывал.
- **VMID 129/133/135 переиспользованы**: перед удалением старых записей убедись, что привязки прежних ролей (напр. `backup-lxc129` на code-server) уже не актуальны.
- **Статусы — снимок на момент аудита**. VM включают/выключают; running/stopped мог измениться — сверить при применении.
- Мелочь вне drift: `LXC 138 vpn-proxy` лежит в секции «Запущенные LXC», хотя статус stopped (и в live тоже stopped) — стоит переложить в остановленные.
---
Файл не трогал, как просили. Если хочешь — могу применить эти правки (выйдя из plan-режима) или отдать готовый патч.

View File

@@ -1,12 +1,12 @@
{
"date": "2026-06-14",
"score": 2043,
"date": "2026-06-21",
"score": 2285,
"counts": {
"broken_wikilinks": 18,
"broken_paths": 117,
"broken_wikilinks": 23,
"broken_paths": 132,
"missing_frontmatter": 23,
"orphan_files": 60,
"undated_todos": 474,
"orphan_files": 62,
"undated_todos": 512,
"duplicate_basenames": 6
},
"weights": {
@@ -17,5 +17,5 @@
"undated_todos": 1,
"duplicate_basenames": 5
},
"files_scanned": 1416
"files_scanned": 1431
}

View File

@@ -1,5 +1,5 @@
---
date: 2026-06-20
date: 2026-06-21
type: index
source: scripts/kb-objects-map.py
tags: [index, registry, objects, netbird]
@@ -7,7 +7,7 @@ tags: [index, registry, objects, netbird]
# Реестр объектов и netbird-пиров
Авто-сгенерировано `2026-06-20T16:20` из [[dttb/netbird-inventory]] + frontmatter в `projects/`.
Авто-сгенерировано `2026-06-21T06:00` из [[dttb/netbird-inventory]] + frontmatter в `projects/`.
**Не править вручную** — перепишется. Источник правды — frontmatter в каждом README.
- Проектов: **23**, из них с netbird-привязкой: **9**