code-server auto-sync 2026-04-26T06:05:01+00:00

This commit is contained in:
2026-04-26 06:05:01 +00:00
parent 30b1606e01
commit b80ea1688c
7 changed files with 483 additions and 8 deletions

View File

@@ -0,0 +1,41 @@
---
date: 2026-04-26
type: audit
source: kb-audit-creds.py
tags: [audit, creds, reachability]
---
# Credentials reachability — 2026-04-26
Ping-проверка URL из [[../projects/dttb/credentials|credentials.md]].
Проверяется только reachability (HTTP status), не реальный логин.
- Всего URL: **14**
- ✓ Reachable: 12 / ⚠ Questionable: 2 / ❌ Unreachable: 0
## ⚠ Нестандартный ответ
| URL | Status | Detail |
|---|---|---|
| `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://dttb.ru` | 200 | ✓ reachable |
| `https://dttb.ru/remote.php/dav/files/admin` | 401 | ✓ auth-required (сервер жив) |
| `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 |
---
*Автоматически через `scripts/kb-audit-creds.py`.*

View File

@@ -0,0 +1,81 @@
---
date: 2026-04-26
type: audit
source: kb-audit-dns.py
tags: [audit, dns]
---
# DNS resolve audit — 2026-04-26
Резолвим все домены из NPM через публичный DNS (8.8.8.8) и локальный роутер (10.0.0.1).
- Всего доменов: **22**
- NXDOMAIN на 8.8.8.8: 2 / пустой ответ локально: 1 / split-horizon: 20
## ❌ 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 |
| `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 |
| `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 |
| `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 |
| `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 |
| `vpn.dttb.ru` | — | 10.0.0.195 |
| `z.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
---
*Автоматически через `scripts/kb-audit-dns.py`.*

71
audit/2026-04-26-drift.md Normal file
View File

@@ -0,0 +1,71 @@
---
date: 2026-04-26
type: audit
source: kb-audit.py
tags: [audit, drift, infrastructure]
---
# KB drift audit — 2026-04-26
Сравнение живого `pct list` / `qm list` с [[../projects/dttb/proxmox-inventory|proxmox-inventory.md]]
- Живых гостей Proxmox: **39**
- Упомянуто в inventory: **39**
- В обоих: 37 / только в live: 2 / отсутствуют в live: 0
- Известны как удалённые: 2 (в `## 🗑️ Удалённые`)
## ⚠ В Proxmox есть, в inventory НЕТ (надо добавить)
| VMID | Type | Status | Name |
|---|---|---|---|
| 128 | LXC | running | profi-parser |
| 131 | VM | running | ubuntu |
## ✓ Удалённые хосты (задокументированы): 133, 135
## Полный живой список
| 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 | stopped | 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 | running | profi-parser |
| 129 | VM | running | profi-parser-vm |
| 130 | VM | stopped | Zima-OS |
| 131 | VM | running | ubuntu |
| 132 | LXC | running | code-server |
| 134 | LXC | running | ZnamSecurityBot |
| 136 | LXC | running | gitea |
| 137 | LXC | running | openclaw |
| 138 | LXC | running | vpn-proxy |
| 139 | LXC | running | yaroslav-assistant |
| 250 | VM | running | Nextcloud-AIO |
---
*Автоматически сгенерировано `scripts/kb-audit.py`. Применять правки — вручную после ревью.*

122
audit/2026-04-26-health.md Normal file
View File

@@ -0,0 +1,122 @@
---
date: 2026-04-26
type: audit
source: kb-health.py
score: 221
tags: [audit, health, metric]
---
# KB health — 2026-04-26
**Score (меньше = лучше): `221`**
Проверено файлов: 501
## Разбивка
| Категория | Кол-во | Вес | Штраф |
|---|---:|---:|---:|
| broken_wikilinks | 0 | 10 | 0 |
| broken_paths | 9 | 10 | 90 |
| missing_frontmatter | 14 | 3 | 42 |
| orphan_files | 32 | 2 | 64 |
| undated_todos | 5 | 1 | 5 |
| duplicate_basenames | 4 | 5 | 20 |
| **ИТОГО** | | | **221** |
## Битые relative-пути
| Откуда | Путь |
|---|---|
| `notes/claude/2026-04-21-200915-охотхозяйство-с-openwrt-на-orange-pi-нужно-настрои.md` | `projects/dttb/vps-swtest.md` |
| `notes/claude/2026-04-20-113423-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.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-04-21-203517-дай-мне-команду-в-сшел-виндовс-установка-нетбирд-и.md` | `/Users/ai/.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag.md` |
| `notes/claude/2026-04-20-101023-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `projects/niikn/openwrt-bypass.md` |
| `notes/claude/2026-04-21-154602-охотхозяйство-с-openwrt-на-orange-pi-нужно-настрои.md` | `decisions/2026-04-21-znamenskoye-ohothozyistvo-wg-backup-channel.md` |
| `notes/claude/2026-04-21-154602-охотхозяйство-с-openwrt-на-orange-pi-нужно-настрои.md` | `claude-memory/znamenskoye-ohothozyistvo.md` |
## Без frontmatter (14)
- `projects/dttb/znamenskoye-log.md`
- `projects/mmfb/yuri-vitalievich.md`
- `snippets/happ-vpn-client-instruction.md`
- `snippets/invoice-template.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 — без бэклинков (32)
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
- `decisions/2026-04-21-znamenskoye-ohothozyistvo-wg-backup-channel.md`
- `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md`
- `decisions/2026-04-24-finland-vps-malware-cleanup.md`
- `projects/dttb/vps-swtest.md`
- `projects/niikn/domofon.md`
- `projects/mmfb/yuri-vitalievich.md`
- `projects/mmfb/mikrotik.md`
- `projects/zelenograd/README.md`
- `snippets/happ-vpn-client-instruction.md`
- `snippets/invoice-template.md`
- `claude-memory/cliproxy_code_server.md`
- `claude-memory/servicedesk-dttb.md`
- `claude-memory/benelux-topology.md`
- `claude-memory/benelux.md`
- `claude-memory/znamenskoye-cameras.md`
- `claude-memory/nextcloud-dttb.md`
- `claude-memory/nvr-fix.md`
- `claude-memory/niikn-vpn-status.md`
- `claude-memory/znamenskoye-ohothozyistvo.md`
- `claude-memory/znamenskoye-network.md`
- `claude-memory/niikn-nextcloud-incident.md`
- `claude-memory/videonablyudenie.md`
- `claude-memory/znamenskoe-home.md`
- `claude-memory/feedback_dns_fakeip.md`
- `claude-memory/niikn-nextcloud.md`
- `claude-memory/feedback_finland_vps.md`
- `claude-memory/whatsapp-proxy.md`
- `claude-memory/gitea-dttb.md`
- `claude-memory/krasnogorsk.md`
- `claude-memory/mas-niikn.md`
- ... +2 ещё
## TODO без даты (5 шт в 1 файлах)
- `claude-memory/mas-niikn.md` — 5 шт
## Дубликаты имён (4)
- `README.md`:
- `README.md`
- `decisions/README.md`
- `notes/README.md`
- `projects/dttb/README.md`
- `projects/glavtorg/README.md`
- `projects/niikn/README.md`
- `projects/krasnogorsk/README.md`
- `projects/zelenograd/README.md`
- `projects/dttb/nextcloud-talk-bot/README.md`
- `snippets/README.md`
- `scripts/README.md`
- `nextcloud.md`:
- `projects/nextcloud.md`
- `projects/dttb/nextcloud.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,59 @@
---
date: 2026-04-26
type: audit
source: kb-audit-npm.py
tags: [audit, drift, npm]
---
# NPM drift audit — 2026-04-26
Сверка [[../projects/dttb/npm-proxy-hosts|npm-proxy-hosts.md]] с NPM API (https://npm.dttb.ru).
- Живых proxy hosts: **22**
- В KB: **20**
- Совпадений: 20 / новых: 2 / удалённых из NPM: 0 / с изменениями: 2
## ⚠ Новые 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 |
## 🔄 Изменения (ID совпадает, но что-то сменилось)
### #12 `bitrix24.dttb.ru`
- backend: KB=`10.0.0.223:8080` → live=`10.0.0.224:8080`
### #22 `git.dttb.ru`
- ssl: KB=✗ → live=✓
## Полный живой список
| 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.43: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 |
---
*Автоматически через `scripts/kb-audit-npm.py`.*

View File

@@ -0,0 +1,101 @@
---
date: 2026-04-26
type: audit-proposed
source: kb-audit-propose.sh (Opus 4.7)
tags: [audit, proposed, inventory]
---
# Предложенные правки inventory — 2026-04-26
Сгенерировано Claude Opus на основе [[2026-04-26-drift|drift-отчёта]].
**Правки НЕ применены.** Ревью — ты. Apply — вручную.
Анализирую drift-отчёт и inventory — всё данные уже перед глазами, агенты не нужны.
---
## 1. Резюме
В Proxmox появились 2 новых гостя (**LXC 128 profi-parser**, **VM 131 ubuntu**), а **VM 129** — живая и running под именем **profi-parser-vm**, хотя в inventory записана как удалённая «Clawdbot». Итого inventory нужно обновить с 36 до 39 гостей.
---
## 2. Конкретные правки
### 2.1. Сводка — обновить цифры
```diff
| Тип | Всего | Запущено | Остановлено |
|-----|-------|----------|-------------|
-| QEMU VM | 15 | 5 | 10 |
-| LXC | 21 | 11 | 10 |
-| **Итого** | **36** | **16** | **20** |
+| QEMU VM | 17 | 7 | 10 |
+| LXC | 22 | 12 | 10 |
+| **Итого** | **39** | **19** | **20** |
```
### 2.2. Добавить VM 129 — profi-parser-vm в «Запущенные VM»
Вставить после блока VM 127 (haos-17.0):
```markdown
### VM 129 — profi-parser-vm
| Параметр | Значение |
|----------|----------|
| Статус | 🟢 running |
| Назначение | Profi-parser VM (детали уточнить) |
```
### 2.3. Добавить VM 131 — ubuntu в «Запущенные VM»
Вставить после блока VM 129:
```markdown
### VM 131 — ubuntu
| Параметр | Значение |
|----------|----------|
| Статус | 🟢 running |
| Назначение | Ubuntu VM (детали уточнить) |
```
### 2.4. Добавить LXC 128 — profi-parser в «Запущенные LXC»
Вставить перед блоком LXC 132 (code-server), чтобы VMID шли по порядку:
```markdown
### LXC 128 — profi-parser
| Параметр | Значение |
|----------|----------|
| Статус | 🟢 running |
| Назначение | Profi-parser (детали уточнить) |
```
### 2.5. Удалить VM 129 из секции «Удалённые»
```diff
## 🗑️ Удалённые (история)
| VMID | Имя | Когда | Куда делось |
|------|-----|-------|-------------|
-| 129 | Clawdbot | ~апрель 2026 | Данные перенесены на code-server (132) в `/root/backup-lxc129/`, IP 10.0.0.206 освобождён |
| 133 | clawdbot-1 | ~апрель 2026 | Функционал мигрирован на openclaw (137) |
| 135 | whisper-bot | ~апрель 2026 | — |
```
### 2.6. Обновить дату в шапке
```diff
-> Последнее обновление: 2026-04-17 (обновлено из живого `pct list` / `qm list`)
+> Последнее обновление: 2026-04-26 (обновлено из живого `pct list` / `qm list`)
```
---
## 3. Предупреждения
- **VM 129**: в inventory была записана как удалённый «Clawdbot» (LXC), но в live это **VM** с именем **profi-parser-vm**. Скорее всего VMID 129 был переиспользован для нового гостя. Стоит проверить: а) действительно ли бэкап Clawdbot ещё лежит в `/root/backup-lxc129/`; б) IP 10.0.0.206 — он свободен или назначен profi-parser-vm? Историю Clawdbot можно оставить комментарием или убрать полностью.
- **LXC 128, VM 131**: для них нет IP-адресов, ресурсов (CPU/RAM/диск) и назначения — нужно доуточнить через `pct config 128` / `qm config 131` и дозаполнить.
- **LXC 128 + VM 129**: оба содержат «profi-parser» в имени — вероятно, связанные сервисы (парсер в LXC + VM). Стоит описать связь в назначении.
Хочешь — могу сразу применить эти правки в файл.

View File

@@ -1,13 +1,13 @@
{ {
"date": "2026-04-19", "date": "2026-04-26",
"score": 15, "score": 221,
"counts": { "counts": {
"broken_wikilinks": 0, "broken_wikilinks": 0,
"broken_paths": 0, "broken_paths": 9,
"missing_frontmatter": 0, "missing_frontmatter": 14,
"orphan_files": 0, "orphan_files": 32,
"undated_todos": 0, "undated_todos": 5,
"duplicate_basenames": 3 "duplicate_basenames": 4
}, },
"weights": { "weights": {
"broken_wikilinks": 10, "broken_wikilinks": 10,
@@ -17,5 +17,5 @@
"undated_todos": 1, "undated_todos": 1,
"duplicate_basenames": 5 "duplicate_basenames": 5
}, },
"files_scanned": 194 "files_scanned": 501
} }