diff --git a/audit/2026-06-28-creds-drift.md b/audit/2026-06-28-creds-drift.md new file mode 100644 index 0000000..5ba94c6 --- /dev/null +++ b/audit/2026-06-28-creds-drift.md @@ -0,0 +1,55 @@ +--- +date: 2026-06-28 +type: audit +source: kb-audit-creds.py +tags: [audit, creds, reachability] +--- + +# Credentials reachability — 2026-06-28 + +Ping-проверка URL из [[../projects/dttb/credentials|credentials.md]]. +Проверяется только reachability (HTTP status), не реальный логин. + +- Всего URL: **28** +- ✓ Reachable: 25 / ⚠ Questionable: 3 / ❌ Unreachable: 0 + +## ⚠ Нестандартный ответ + +| 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.143:5000` | 200 | ✓ reachable | +| `http://100.70.9.163:5000` | 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 (сервер жив) | +| `http://10.0.0.221` | 200 | ✓ reachable | +| `http://10.0.0.221:7681` | 200 | ✓ reachable | +| `https://vps.sweb.ru` | 200 | ✓ reachable | +| `https://api.sweb.ru/domains/dns` | 200 | ✓ reachable | +| `https://mail.niikn.com` | 200 | ✓ reachable | +| `http://192.168.1.22:81` | 200 | ✓ reachable | +| `https://german.dttb.ru` | 200 | ✓ reachable | +| `https://auth.dttb.ru` | 200 | ✓ reachable | +| `https://dash.dttb.ru` | 401 | ✓ auth-required (сервер жив) | +| `http://10.0.0.148:3000` | 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`.* \ No newline at end of file diff --git a/audit/2026-06-28-dns-drift.md b/audit/2026-06-28-dns-drift.md new file mode 100644 index 0000000..0094599 --- /dev/null +++ b/audit/2026-06-28-dns-drift.md @@ -0,0 +1,101 @@ +--- +date: 2026-06-28 +type: audit +source: kb-audit-dns.py +tags: [audit, dns] +--- + +# DNS resolve audit — 2026-06-28 + +Резолвим все домены из NPM через публичный DNS (8.8.8.8) и локальный роутер (10.0.0.1). + +- Всего доменов: **35** +- NXDOMAIN на 8.8.8.8: 2 / пустой ответ локально: 1 / split-horizon: 27 + +## ❌ 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 | +| `auth.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 | +| `chat.dttb.ru` | 176.62.183.186 | 10.0.0.195 | +| `dash.dttb.ru` | 176.62.183.186 | 10.0.0.195 | +| `dttb.ru` | 176.62.183.186 | 10.0.0.195 | +| `german.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 | +| `auth.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 | +| `chat.dttb.ru` | 176.62.183.186 | 10.0.0.195 | +| `dash.dttb.ru` | 176.62.183.186 | 10.0.0.195 | +| `dttb.ru` | 176.62.183.186 | 10.0.0.195 | +| `german.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`.* \ No newline at end of file diff --git a/audit/2026-06-28-drift.md b/audit/2026-06-28-drift.md new file mode 100644 index 0000000..0eba6c3 --- /dev/null +++ b/audit/2026-06-28-drift.md @@ -0,0 +1,76 @@ +--- +date: 2026-06-28 +type: audit +source: kb-audit.py +tags: [audit, drift, infrastructure] +--- + +# KB drift audit — 2026-06-28 + +Сравнение живого `pct list` / `qm list` с [[../projects/dttb/proxmox-inventory|proxmox-inventory.md]] + +- Живых гостей Proxmox: **47** +- Упомянуто в inventory: **46** +- В обоих: 46 / только в 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 | stopped | 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 | +| 142 | LXC | running | open-webui | +| 143 | LXC | running | amnezia-panel | +| 144 | LXC | running | authentik | +| 145 | LXC | running | homepage | +| 250 | VM | running | Nextcloud-AIO | + +--- +*Автоматически сгенерировано `scripts/kb-audit.py`. Применять правки — вручную после ревью.* \ No newline at end of file diff --git a/audit/2026-06-28-health.md b/audit/2026-06-28-health.md new file mode 100644 index 0000000..7902539 --- /dev/null +++ b/audit/2026-06-28-health.md @@ -0,0 +1,254 @@ +--- +date: 2026-06-28 +type: audit +source: kb-health.py +score: 2800 +tags: [audit, health, metric] +--- + +# KB health — 2026-06-28 + +**Score (меньше = лучше): `2800`** +Проверено файлов: 1754 + +## Разбивка + +| Категория | Кол-во | Вес | Штраф | +|---|---:|---:|---:| +| broken_wikilinks | 31 | 10 | 310 | +| broken_paths | 171 | 10 | 1710 | +| missing_frontmatter | 25 | 3 | 75 | +| orphan_files | 68 | 2 | 136 | +| undated_todos | 534 | 1 | 534 | +| duplicate_basenames | 7 | 5 | 35 | +| **ИТОГО** | | | **2800** | + +## Битые wikilinks + +| Откуда | `[[таргет]]` | +|---|---| +| `decisions/2026-06-15-unifi-controller-homelab.md` | `[[feedback_dttb_dns_split_view]]` | +| `decisions/2026-06-26-authentik-sso-deploy.md` | `[[project_deapple_migration]]` | +| `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]]` | +| `decisions/2026-06-20-german-hermes-out-of-usage.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_root_cause_recurring]]` | +| `notes/claude/2026-06-22-045321-на-proxmox-homelab-установи-hermes-agent-я-его-буд.md` | `[[project_swarmclaw]]` | +| `notes/claude/2026-06-22-013250-на-proxmox-homelab-установи-hermes-agent-я-его-буд.md` | `[[feedback_antigravity_onboarding]]` | +| `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/niikn/desktop-jt9qee4.md` | `[[../../snippets/netbird-claude-install.ps1]]` | +| `projects/niikn/desktop-35c8vmi.md` | `[[../../snippets/netbird-claude-install.ps1]]` | +| `projects/buzharovo/podkop-router.md` | `[[buzharovo-router]]` | +| `projects/buzharovo/podkop-router.md` | `[[reference_infra]]` | +| `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-06-23-185108-привет.md` | `projects/dttb/openwrt-router.md` | +| `notes/claude/2026-06-23-185108-привет.md` | `snippets/podkop-reference.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-06-27-230948-httpsmaildttbrudomainadmin-можешь-найти-креды.md` | `projects/dttb/mailcow-dttb.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-06-19-142423-10001-установи-обновление-sh-wget-o-httpsrawgithub.md` | `projects/dttb/credentials.md` | +| `notes/claude/2026-06-19-142423-10001-установи-обновление-sh-wget-o-httpsrawgithub.md` | `projects/dttb/proxmox-inventory.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-06-11-235741-npm-api-креды-не-подходят-поищу-точные-логинпароль.md` | `projects/dttb/npm-proxy-hosts.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-06-18-134919-добей-swarmclaw-по-хэндофу.md` | `snippets/podkop-agent-runbook.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-06-20-152229-npm-api-креды-не-подходят-поищу-точные-логинпароль.md` | `projects/backlog-current.md` | +| `notes/claude/2026-06-28-014229-httpsmaildttbrudomainadmin-можешь-найти-креды.md` | `projects/dttb/mailcow-dttb.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` | +| ... | +121 ещё | + +## Без frontmatter (25) + +- `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/_kbtmp_readme.md` +- `projects/niikn/kripto-arm.md` +- `projects/niikn/_kbtmp_claude.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 — без бэклинков (68) + +_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._ + +- `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-06-27-benelux-foreign-banks-eu-exit.md` +- `decisions/2026-06-21-buzharovo-mcp-1c-deploy.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/credentials.md` +- `projects/niikn/changelog.md` +- `projects/niikn/_kbtmp_tpl_decision.md` +- ... +38 ещё + +## TODO без даты (534 шт в 99 файлах) + +- `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-06-15-203254-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 шт + +## Дубликаты имён (7) + +- `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` +- `server1c.md`: + - `projects/dttb/server1c.md` + - `projects/buzharovo/server1c.md` +- `mikrotik.md`: + - `projects/niikn/mikrotik.md` + - `projects/mmfb/mikrotik.md` + +--- +*Генерируется `scripts/kb-health.py`. JSON-версия в `audit/health-latest.json` для agent-loop.* \ No newline at end of file diff --git a/audit/2026-06-28-npm-drift.md b/audit/2026-06-28-npm-drift.md new file mode 100644 index 0000000..4901d10 --- /dev/null +++ b/audit/2026-06-28-npm-drift.md @@ -0,0 +1,80 @@ +--- +date: 2026-06-28 +type: audit +source: kb-audit-npm.py +tags: [audit, drift, npm] +--- + +# NPM drift audit — 2026-06-28 + +Сверка [[../projects/dttb/npm-proxy-hosts|npm-proxy-hosts.md]] с NPM API (https://npm.dttb.ru). + +- Живых proxy hosts: **35** +- В KB: **31** +- Совпадений: 31 / новых: 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 | +| 39 | `chat.dttb.ru` | `10.0.0.142:3000` | ✓ | on | +| 40 | `german.dttb.ru` | `10.0.0.141:9119` | ✓ | on | +| 41 | `auth.dttb.ru` | `10.0.0.144:9000` | ✓ | on | +| 42 | `dash.dttb.ru` | `10.0.0.148:3000` | ✓ | on | + +--- +*Автоматически через `scripts/kb-audit-npm.py`.* \ No newline at end of file diff --git a/audit/2026-06-28-objects-audit.md b/audit/2026-06-28-objects-audit.md new file mode 100644 index 0000000..8a943a3 --- /dev/null +++ b/audit/2026-06-28-objects-audit.md @@ -0,0 +1,67 @@ +--- +date: 2026-06-28 +type: audit +source: scripts/kb-objects-audit.py +tags: [audit, objects, frontmatter, links] +score: 99 +--- + +# KB objects audit — 2026-06-28 + +**Score (меньше = лучше): `99`** + +- Проектов с frontmatter: **14/14** (0 проблем) +- NetBird online-пиров без проектной карточки: **3** +- Битых wiki-ссылок `[[...]]`: **31** + +## Frontmatter в projects/ + +✅ все проекты имеют валидный frontmatter + +## Online netbird-пиры без проектной карточки + +Эти пиры онлайн в NetBird, но не привязаны ни к одной projects/-странице. +Бот не сможет ответить «найди X» осмысленно — нет файла или alias. + +Лечение: либо создать stub в `projects//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-26-authentik-sso-deploy.md](decisions/2026-06-26-authentik-sso-deploy.md) — `[[project_deapple_migration]]` → нет такого файла +- [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]]` → нет такого файла +- [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/|метод]]` → нет такого файла +- [projects/niikn/desktop-jt9qee4.md](projects/niikn/desktop-jt9qee4.md) — `[[../../snippets/netbird-claude-install.ps1]]` → нет такого файла +- [projects/niikn/desktop-jt9qee4.md](projects/niikn/desktop-jt9qee4.md) — `[[rustdesk\|lejianwen-pro LXC 116]]` → нет такого файла +- [projects/niikn/desktop-35c8vmi.md](projects/niikn/desktop-35c8vmi.md) — `[[../../snippets/netbird-claude-install.ps1]]` → нет такого файла +- [projects/niikn/desktop-35c8vmi.md](projects/niikn/desktop-35c8vmi.md) — `[[rustdesk\|lejianwen-pro LXC 116]]` → нет такого файла +- [projects/niikn/_kbtmp_claude.md](projects/niikn/_kbtmp_claude.md) — `[[двойные скобки]]` → нет такого файла +- [projects/buzharovo/podkop-router.md](projects/buzharovo/podkop-router.md) — `[[buzharovo-router|Cudy WR6500H 185.13.47.2]]` → нет такого файла +- [projects/buzharovo/podkop-router.md](projects/buzharovo/podkop-router.md) — `[[reference_infra]]` → нет такого файла +- [notes/claude/2026-06-22-045321-на-proxmox-homelab-установи-hermes-agent-я-его-буд.md](notes/claude/2026-06-22-045321-на-proxmox-homelab-установи-hermes-agent-я-его-буд.md) — `[[project_swarmclaw]]` → нет такого файла +- [notes/claude/2026-06-22-013250-на-proxmox-homelab-установи-hermes-agent-я-его-буд.md](notes/claude/2026-06-22-013250-на-proxmox-homelab-установи-hermes-agent-я-его-буд.md) — `[[feedback_antigravity_onboarding]]` → нет такого файла diff --git a/audit/2026-06-28-proposed.md b/audit/2026-06-28-proposed.md new file mode 100644 index 0000000..57710d0 --- /dev/null +++ b/audit/2026-06-28-proposed.md @@ -0,0 +1,124 @@ +--- +date: 2026-06-28 +type: audit-proposed +source: kb-audit-propose.sh (Opus 4.7) +tags: [audit, proposed, inventory] +--- + +# Предложенные правки inventory — 2026-06-28 + +Сгенерировано Claude Opus на основе [[2026-06-28-drift|drift-отчёта]]. +**Правки НЕ применены.** Ревью — ты. Apply — вручную. + +Данные у меня все есть прямо в задании (оба файла inline), править ничего не нужно — выдаю анализ. + +## 1. Резюме + +Живых гостей 47, в inventory корректно отражено меньше. Аудит явно поймал только **LXC 139 severny-les** (нет в inventory), но сверка полного live-списка с inventory вскрывает ещё несколько расхождений: два запущенных VM (112, 130) числятся остановленными; два VMID из раздела «Удалённые» (129, 133) переиспользованы и снова живы; VMID 135 задвоен (running + Удалённые); сводная таблица и счётчики устарели (42→47). + +## 2. Конкретные правки + +### A. Добавить LXC 139 (флаг аудита) — раздел «🟢 Запущенные LXC» +```diff ++### LXC 139 — severny-les ++| Параметр | Значение | ++|----------|----------| ++| Статус | 🟢 running | ++| IP | (уточнить) | ++| Назначение | (уточнить) | +``` +> В drift-отчёте только VMID/type/status/name. IP и назначение не выдумываю — пометил «уточнить». + +### B. VM 112 cloud-dttb: stopped → running +Live: `112 VM running cloud-dttb`. В inventory он в таблице «🔴 Остановленные VM». +```diff +@@ Остановленные VM (QEMU) @@ +-| 112 | cloud-dttb | 8 | 16 GB | 80 GB | — | +``` +И добавить блок в «🟢 Запущенные VM»: +```diff ++### VM 112 — cloud-dttb ++| Параметр | Значение | ++|----------|----------| ++| Статус | 🟢 running | ++| CPU | 8 vCPU | ++| RAM | 16 GB | ++| Диск | 80 GB | ++| Назначение | (уточнить) | +``` + +### C. VM 130 Zima-OS: stopped → running +Live: `130 VM running Zima-OS`. В inventory — в остановленных (детали есть: IP 10.0.0.221). +```diff +@@ Остановленные VM (QEMU) @@ +-| 130 | Zima-OS | 4 | 12 GB | 32 GB | ZimaOS NAS — 10.0.0.221, веб `dttb`/`1qaz!QAZ` (см. credentials) | +``` +```diff ++### VM 130 — Zima-OS ++| Параметр | Значение | ++|----------|----------| ++| Статус | 🟢 running | ++| CPU | 4 vCPU | ++| RAM | 12 GB | ++| Диск | 32 GB | ++| IP | 10.0.0.221 (веб `dttb`/`1qaz!QAZ`, см. credentials) | ++| Назначение | ZimaOS NAS | +``` + +### D. VM 129 profi-parser-vm — VMID переиспользован (см. предупреждения) +Live: `129 VM stopped profi-parser-vm`. В inventory 129 числится только в «🗑️ Удалённые» как Clawdbot. +Добавить в «🔴 Остановленные VM»: +```diff ++| 129 | profi-parser-vm | — | — | — | VM-пара к LXC 128 profi-parser (уточнить) | +``` +Аннотировать историческую строку (VMID переиспользован): +```diff +@@ 🗑️ Удалённые (история) @@ +-| 129 | Clawdbot | ~апрель 2026 | Данные перенесены на code-server (132) ... | ++| 129 | Clawdbot | ~апрель 2026 | Данные на code-server (132) `/root/backup-lxc129/`. ⚠️ VMID 129 переиспользован под VM profi-parser-vm | +``` + +### E. VM 133 s1c-buzharovo — VMID переиспользован +Live: `133 VM stopped s1c-buzharovo`. В inventory 133 только в «Удалённые» как clawdbot-1. +```diff ++| 133 | s1c-buzharovo | — | — | — | (уточнить; вероятно 1С Бужарово) | +``` +```diff +@@ 🗑️ Удалённые (история) @@ +-| 133 | clawdbot-1 | ~апрель 2026 | Функционал мигрирован на openclaw (137) | ++| 133 | clawdbot-1 | ~апрель 2026 | Мигрирован на openclaw (137). ⚠️ VMID 133 переиспользован под VM s1c-buzharovo | +``` + +### F. VMID 135 задвоен +Live: `135 LXC running swarmclaw` (в inventory корректный блок уже есть). Но 135 также висит в «Удалённые» как whisper-bot. +```diff +@@ 🗑️ Удалённые (история) @@ +-| 135 | whisper-bot | ~апрель 2026 | — | ++| 135 | whisper-bot | ~апрель 2026 | удалён; ⚠️ VMID 135 переиспользован под LXC swarmclaw | +``` + +### G. Обновить «Сводка» +```diff +-| QEMU VM | 15 | 5 | 10 | +-| LXC | 27 | 17 | 10 | +-| **Итого** | **42** | **22** | **20** | ++| QEMU VM | 18 | 7 | 11 | ++| LXC | 29 | 17 | 12 | ++| **Итого** | **47** | **24** | **23** | +``` +> Пересчёт по live-списку: VM 18 (7 running/11 stopped), LXC 29 (17 running/12 stopped). + +### H. Обновить шапку +```diff +-> Последнее обновление: 2026-06-27 (добавлен LXC 145 homepage ...) ++> Последнее обновление: 2026-06-28 (drift-аудит: +LXC 139 severny-les; 112/130 → running; VMID 129/133/135 переиспользованы) +``` + +## 3. Предупреждения + +- **Аудит занизил drift.** `kb-audit.py` сверяет только наличие VMID (упомянут/нет), а не статус и не роль. Поэтому он показал «46/46 совпало» и поймал лишь 139 — расхождения по статусу (112, 130) и переиспользованные VMID (129, 133, 135) скрипт не видит. Стоит доработать аудит на сверку status/name. +- **Переиспользование VMID (129, 133, 135).** Не из выдумки — прямо из live-списка отчёта: 129=profi-parser-vm, 133=s1c-buzharovo, 135=swarmclaw, тогда как в «Удалённые» те же VMID = Clawdbot/clawdbot-1/whisper-bot. Это разные сущности на одном номере. Я предложил **сохранить историю** + пометку, а не удалять строки. Реши, как вести: возможно, в «Удал될» лучше указывать дату и не держать сырой VMID, который потом переиспользуется. +- **Нет данных для деталей.** Для 139, 112, 129, 133 в отчёте нет IP/CPU/RAM/назначения — везде проставил «уточнить», ничего не сочинял. Для 130 детали взял из существующей строки inventory. +- **s1c-buzharovo** по имени похоже на 1С-сервер Бужарово (в памяти есть проект роутера Бужарово), но в отчёте подтверждения роли нет — поэтому «вероятно», не факт. + +Если хочешь, могу применить эти правки к `proxmox-inventory.md` (тогда выйди из plan mode или дай добро). diff --git a/audit/health-latest.json b/audit/health-latest.json index 8b21b1d..e01a3f4 100644 --- a/audit/health-latest.json +++ b/audit/health-latest.json @@ -1,13 +1,13 @@ { - "date": "2026-06-21", - "score": 2285, + "date": "2026-06-28", + "score": 2800, "counts": { - "broken_wikilinks": 23, - "broken_paths": 132, - "missing_frontmatter": 23, - "orphan_files": 62, - "undated_todos": 512, - "duplicate_basenames": 6 + "broken_wikilinks": 31, + "broken_paths": 171, + "missing_frontmatter": 25, + "orphan_files": 68, + "undated_todos": 534, + "duplicate_basenames": 7 }, "weights": { "broken_wikilinks": 10, @@ -17,5 +17,5 @@ "undated_todos": 1, "duplicate_basenames": 5 }, - "files_scanned": 1431 + "files_scanned": 1754 } \ No newline at end of file diff --git a/projects/_index.md b/projects/_index.md index 27dba08..bce748b 100644 --- a/projects/_index.md +++ b/projects/_index.md @@ -7,7 +7,7 @@ tags: [index, registry, objects, netbird] # Реестр объектов и netbird-пиров -Авто-сгенерировано `2026-06-28T00:05` из [[dttb/netbird-inventory]] + frontmatter в `projects/`. +Авто-сгенерировано `2026-06-28T06:00` из [[dttb/netbird-inventory]] + frontmatter в `projects/`. **Не править вручную** — перепишется. Источник правды — frontmatter в каждом README. - Проектов: **23**, из них с netbird-привязкой: **9**