Compare commits
286 Commits
3220238c67
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ede8e5f4d0 | |||
| 73ea32fa72 | |||
|
|
3298ebfe71 | ||
| ea66be0c84 | |||
|
|
4d92eaca2e | ||
|
|
3f71986097 | ||
| dcbd18f7f9 | |||
|
|
658049ef50 | ||
|
|
42d1b4ad85 | ||
| 8f1b609e56 | |||
|
|
ddb904ca21 | ||
|
|
58fd3fa17a | ||
| 01036fe2d9 | |||
|
|
b7bd90ae87 | ||
| 29842b2806 | |||
|
|
ead03fcf9f | ||
| 0f2f005f38 | |||
|
|
4010fbd235 | ||
| 67002f5dc2 | |||
|
|
3fe379f12c | ||
| 9c11b205ec | |||
|
|
d39ddb989d | ||
| 15ecf46a4a | |||
|
|
12705f148f | ||
|
|
14249577bc | ||
| 80a93d6355 | |||
| ad553f55f9 | |||
| 36ab747d3d | |||
| 0fa253e614 | |||
| 0e17414dae | |||
| 87f6da4edb | |||
| 8736841c52 | |||
| 4007be2fd6 | |||
| 4385db3b8a | |||
| f4ef7e485a | |||
|
|
f86e6df508 | ||
| 4089e60259 | |||
|
|
60644c4e57 | ||
| 1a8041398c | |||
|
|
82a4f311bc | ||
| 0a530ad82e | |||
|
|
866c393dad | ||
|
|
67c28bb27d | ||
| 731c23c8cf | |||
|
|
81833de405 | ||
| c948083691 | |||
|
|
ae23321d10 | ||
| ba34434f2b | |||
|
|
0c957bfa34 | ||
| 8e411df486 | |||
|
|
c9b1d73bde | ||
| f6bae7cbac | |||
|
|
3d71b56ae3 | ||
| 9fb19f4122 | |||
|
|
098b1fe421 | ||
|
|
b8bef27825 | ||
| 984ae0b008 | |||
|
|
80c86871f8 | ||
| 0dd8099154 | |||
|
|
a63b4476eb | ||
| 01930b0fbf | |||
|
|
9c7c3fc23e | ||
| d6df733d08 | |||
|
|
0b4a87c1f0 | ||
| bac7a0992d | |||
|
|
993bc95f05 | ||
| 0da0350341 | |||
|
|
96d16306ca | ||
| 2f1b26501f | |||
|
|
4d856ced85 | ||
| d9b01031e0 | |||
|
|
e5084e8d1c | ||
| 3d53a8db09 | |||
|
|
742e44bf18 | ||
| b7bf217f94 | |||
|
|
026c69e061 | ||
| 4e0d14a20f | |||
| de012fc782 | |||
|
|
2ab09babeb | ||
| 6a694e0d86 | |||
|
|
1d607b2cae | ||
| bc5772805d | |||
|
|
459293567e | ||
| 358640fe2b | |||
|
|
d05eb4d647 | ||
| a926949c9f | |||
|
|
b1f6c50651 | ||
| 7177efcf3e | |||
|
|
857009616b | ||
| b1eb62e2a1 | |||
|
|
38d7b1a168 | ||
| 77f5403eb7 | |||
|
|
4ff5e73142 | ||
| 25ffa0b416 | |||
|
|
055b3fe35c | ||
| ed66833563 | |||
|
|
125564d055 | ||
| a44c582751 | |||
|
|
55bf07a266 | ||
| 876adcd7c2 | |||
|
|
ff481ccf62 | ||
| aa281683d5 | |||
|
|
c65d2409fe | ||
| 93f585039c | |||
|
|
cc72a71c7d | ||
| 9b78dcf5a1 | |||
|
|
0bb13ae6b6 | ||
| 0284916a65 | |||
|
|
010f44f34f | ||
| 92b8e360cc | |||
|
|
8eb1915617 | ||
| 927921679a | |||
|
|
25ca390669 | ||
| 32660e227e | |||
|
|
f361f7bd6e | ||
| c9273c1b4c | |||
|
|
1444b3ad00 | ||
| 5ab587adab | |||
|
|
decb126195 | ||
| 427fa0a2aa | |||
|
|
b3f0c50adb | ||
| 179ae00297 | |||
|
|
dccf3c7ace | ||
| 309d75e5c7 | |||
|
|
35d58a687a | ||
| 28b136cc8b | |||
|
|
51dcea50b2 | ||
| a84a9a5b50 | |||
| 0751392caf | |||
|
|
79e1c2aef5 | ||
| 8bf6fb730c | |||
|
|
c5522790c5 | ||
| ca11cfda98 | |||
|
|
bc7b7223a9 | ||
| 1faa21eede | |||
|
|
1afaab27e6 | ||
| 55d6d4f61e | |||
|
|
dcf0ba6308 | ||
| a0be4f33e5 | |||
|
|
72d92daabe | ||
| 12f6ceb60e | |||
|
|
bf83c01324 | ||
| a1e8fd4312 | |||
|
|
0230894e49 | ||
| 6e87be6e00 | |||
|
|
60713ff7a6 | ||
| 437ba231ad | |||
|
|
e8b73d375a | ||
| 564d73418a | |||
|
|
b93af4b175 | ||
| b593bbc52d | |||
|
|
922c7dc27e | ||
| 40078e533c | |||
|
|
0b2c049ab9 | ||
| a06ed4ce54 | |||
|
|
b8e1ca914f | ||
| 55c9302b44 | |||
|
|
b26c41668b | ||
| 34563e6ab4 | |||
|
|
a842f2e1aa | ||
| 8fec84557d | |||
|
|
ceb16dab77 | ||
| 1c0c12b280 | |||
|
|
5371b6aa36 | ||
| 4d7e9c3879 | |||
|
|
3d1c5b8ad2 | ||
| 8555e4b38b | |||
|
|
2f8c19cfcc | ||
| 2d25a6d438 | |||
|
|
edc6c14a22 | ||
| 2ae8a96a5d | |||
|
|
dba3beb648 | ||
| 279e366318 | |||
|
|
bd63ccd920 | ||
| 41e0125570 | |||
|
|
6fa63a944d | ||
|
|
b55b33b73b | ||
| 199dfedf02 | |||
|
|
ed40441cbd | ||
| b94c71c44b | |||
| 0402fe0212 | |||
| 12be5964d8 | |||
|
|
baba17f2d2 | ||
| f8a0d80a17 | |||
|
|
0d1000918d | ||
| d1602ef1c6 | |||
|
|
3b7f080a27 | ||
| c0da0510a5 | |||
|
|
bff135926c | ||
| 3578efb96b | |||
|
|
23301445e7 | ||
| 5dd8b50af0 | |||
| 39ce04c457 | |||
|
|
f4fab70c64 | ||
| 9e5d829240 | |||
|
|
b3a91986f8 | ||
| d8051fecd2 | |||
|
|
eff0fa2596 | ||
| d066726fe8 | |||
| 80624c9982 | |||
|
|
7bd229e387 | ||
| 1b56bb9be8 | |||
|
|
a66174bbad | ||
| c03049b933 | |||
|
|
d1886cf75f | ||
| 03d861aafc | |||
|
|
b4f98b15d5 | ||
| 437c940546 | |||
|
|
845e8193a7 | ||
| df1edeae6d | |||
|
|
8959ca2cbf | ||
| ea861f00a4 | |||
|
|
d136b7358b | ||
| 60b8f43251 | |||
|
|
83a73e0d3a | ||
| 2d1821f585 | |||
|
|
8b7010ea0a | ||
| 1903f5591e | |||
|
|
f757b4afd1 | ||
| b71a2216f9 | |||
|
|
dd0a498fbe | ||
| 4f348d1784 | |||
|
|
2f939c9400 | ||
| 744fe7dfc1 | |||
|
|
a7fac84f6e | ||
| 234ba782d9 | |||
|
|
a54ef6e14b | ||
| 0892943e3e | |||
|
|
8de53f6432 | ||
| 666f3667db | |||
|
|
9f7eba70d9 | ||
| 483d1be3c4 | |||
|
|
9f48dc7ac0 | ||
| 24a010ef42 | |||
|
|
7df3e7865b | ||
| 7ee313e289 | |||
|
|
d97e7a4a03 | ||
| 0ef00a36e9 | |||
|
|
5949452bcf | ||
| ea74cdec8c | |||
|
|
4552ef0109 | ||
| 49eed9542d | |||
|
|
4a836e1060 | ||
|
|
bf565f1392 | ||
| e994661bd7 | |||
|
|
cfe44d886c | ||
| 5f87025ed7 | |||
|
|
d6c82aa5d8 | ||
| 393e6a05bf | |||
|
|
d85906f18c | ||
| 5548d7d987 | |||
|
|
ea741fbfee | ||
| 768a23fc8c | |||
| 35202bc348 | |||
| e51c6310f0 | |||
| 3f634037d9 | |||
| 82e95310c2 | |||
|
|
f727f6f977 | ||
|
|
6d729dc8c7 | ||
| bf5e24491b | |||
| 57a026ed45 | |||
|
|
ae5eb91280 | ||
| 368a14107d | |||
| 97841320f2 | |||
|
|
d00d856513 | ||
| 329a280cb3 | |||
|
|
6dabc7749c | ||
| d82531ec58 | |||
|
|
47394e668e | ||
| 94aae3ca26 | |||
|
|
1748562756 | ||
|
|
f0b7feadc1 | ||
|
|
d4433bd0a8 | ||
|
|
b16ecdae37 | ||
|
|
b411e3b308 | ||
|
|
cda539b9a1 | ||
|
|
bac376992d | ||
|
|
f7d06c0a35 | ||
|
|
843b9780c8 | ||
|
|
24fe1d3f88 | ||
|
|
1ae613b2bd | ||
|
|
d754de8378 | ||
|
|
80fd8ca7bf | ||
|
|
bf845e2dcb | ||
| d9c00c31e0 | |||
| f6bf12ccf9 |
@@ -47,6 +47,14 @@
|
|||||||
- Домены NPM: смотри `projects/dttb/npm-proxy-hosts.md`
|
- Домены NPM: смотри `projects/dttb/npm-proxy-hosts.md`
|
||||||
- Карта сети: смотри `projects/dttb/network-topology.md`
|
- Карта сети: смотри `projects/dttb/network-topology.md`
|
||||||
|
|
||||||
|
## Podkop (обход РКН на OpenWrt — почти все объекты)
|
||||||
|
**Канонический справочник:** `snippets/podkop-reference.md` (модель, списки, конфиг, грабли, инвентарь). Диагностика «не работает»: `snippets/podkop-fakeip-diagnostics.md`.
|
||||||
|
Кардинальные правила (за них уже наступали на грабли):
|
||||||
|
- Объект **в РФ** (выход туннеля зарубежный) → списки `russia_inside` / точечные `meta`/`youtube`/`telegram`. **НИКОГДА `russia_outside`** (это РФ-сайты для тех, кто ЗА границей — сломает gosuslugi/ozon/ЕИС).
|
||||||
|
- РФ-сайт «Доступ ограничен» + FakeIP → убирать лишний **список**, а не лепить per-domain override (overrides слетают при реконфиге podkop).
|
||||||
|
- Фейкапится ли домен: `ssh root@<router> 'nslookup ДОМЕН 127.0.0.42'` (198.18.x = ушёл в туннель).
|
||||||
|
- busybox `ip -br` не работает; `disable_quic=1` обязателен; awg0 в firewall WAN-зоне.
|
||||||
|
|
||||||
## Как работать
|
## Как работать
|
||||||
- Перед правкой — читай текущее состояние файла
|
- Перед правкой — читай текущее состояние файла
|
||||||
- Не предлагай решения, которые уже описаны в `decisions/`
|
- Не предлагай решения, которые уже описаны в `decisions/`
|
||||||
|
|||||||
37
audit/2026-05-06-objects-audit.md
Normal file
37
audit/2026-05-06-objects-audit.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-06
|
||||||
|
type: audit
|
||||||
|
source: scripts/kb-objects-audit.py
|
||||||
|
tags: [audit, objects, frontmatter, links]
|
||||||
|
score: 6
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB objects audit — 2026-05-06
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `6`**
|
||||||
|
|
||||||
|
- Проектов с frontmatter: **12/12** (0 проблем)
|
||||||
|
- NetBird online-пиров без проектной карточки: **3**
|
||||||
|
- Битых wiki-ссылок `[[...]]`: **0**
|
||||||
|
|
||||||
|
## 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-ссылки
|
||||||
|
|
||||||
|
✅ битых ссылок не найдено
|
||||||
47
audit/2026-05-10-creds-drift.md
Normal file
47
audit/2026-05-10-creds-drift.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-10
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-creds.py
|
||||||
|
tags: [audit, creds, reachability]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Credentials reachability — 2026-05-10
|
||||||
|
|
||||||
|
Ping-проверка URL из [[../projects/dttb/credentials|credentials.md]].
|
||||||
|
Проверяется только reachability (HTTP status), не реальный логин.
|
||||||
|
|
||||||
|
- Всего URL: **20**
|
||||||
|
- ✓ Reachable: 17 / ⚠ 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.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://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://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`.*
|
||||||
81
audit/2026-05-10-dns-drift.md
Normal file
81
audit/2026-05-10-dns-drift.md
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-10
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-dns.py
|
||||||
|
tags: [audit, dns]
|
||||||
|
---
|
||||||
|
|
||||||
|
# DNS resolve audit — 2026-05-10
|
||||||
|
|
||||||
|
Резолвим все домены из 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`.*
|
||||||
73
audit/2026-05-10-drift.md
Normal file
73
audit/2026-05-10-drift.md
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-10
|
||||||
|
type: audit
|
||||||
|
source: kb-audit.py
|
||||||
|
tags: [audit, drift, infrastructure]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB drift audit — 2026-05-10
|
||||||
|
|
||||||
|
Сравнение живого `pct list` / `qm list` с [[../projects/dttb/proxmox-inventory|proxmox-inventory.md]]
|
||||||
|
|
||||||
|
- Живых гостей Proxmox: **40**
|
||||||
|
- Упомянуто в inventory: **38**
|
||||||
|
- В обоих: 37 / только в live: 3 / отсутствуют в live: 0
|
||||||
|
- Известны как удалённые: 1 (в `## 🗑️ Удалённые`)
|
||||||
|
|
||||||
|
## ⚠ В Proxmox есть, в inventory НЕТ (надо добавить)
|
||||||
|
|
||||||
|
| VMID | Type | Status | Name |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 128 | LXC | running | profi-parser |
|
||||||
|
| 131 | VM | running | ubuntu |
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
|
||||||
|
## ✓ Удалённые хосты (задокументированы): 135
|
||||||
|
|
||||||
|
## Полный живой список
|
||||||
|
|
||||||
|
| VMID | Type | Status | Name |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 100 | VM | stopped | NV |
|
||||||
|
| 101 | LXC | stopped | n8n |
|
||||||
|
| 102 | LXC | stopped | SMB |
|
||||||
|
| 103 | LXC | running | NPM |
|
||||||
|
| 104 | VM | running | Agent-DVR |
|
||||||
|
| 105 | VM | stopped | Nextcloud-AIO-dttb.ru |
|
||||||
|
| 106 | VM | running | pbs |
|
||||||
|
| 107 | VM | running | Mailcow |
|
||||||
|
| 108 | LXC | running | 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 |
|
||||||
|
| 133 | VM | running | s1c-buzharovo |
|
||||||
|
| 134 | LXC | running | ZnamSecurityBot |
|
||||||
|
| 136 | LXC | running | gitea |
|
||||||
|
| 137 | LXC | running | openclaw |
|
||||||
|
| 138 | LXC | stopped | vpn-proxy |
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
| 250 | VM | running | Nextcloud-AIO |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически сгенерировано `scripts/kb-audit.py`. Применять правки — вручную после ревью.*
|
||||||
202
audit/2026-05-10-health.md
Normal file
202
audit/2026-05-10-health.md
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-10
|
||||||
|
type: audit
|
||||||
|
source: kb-health.py
|
||||||
|
score: 785
|
||||||
|
tags: [audit, health, metric]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB health — 2026-05-10
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `785`**
|
||||||
|
Проверено файлов: 848
|
||||||
|
|
||||||
|
## Разбивка
|
||||||
|
|
||||||
|
| Категория | Кол-во | Вес | Штраф |
|
||||||
|
|---|---:|---:|---:|
|
||||||
|
| broken_wikilinks | 4 | 10 | 40 |
|
||||||
|
| broken_paths | 48 | 10 | 480 |
|
||||||
|
| missing_frontmatter | 21 | 3 | 63 |
|
||||||
|
| orphan_files | 51 | 2 | 102 |
|
||||||
|
| undated_todos | 70 | 1 | 70 |
|
||||||
|
| duplicate_basenames | 6 | 5 | 30 |
|
||||||
|
| **ИТОГО** | | | **785** |
|
||||||
|
|
||||||
|
## Битые wikilinks
|
||||||
|
|
||||||
|
| Откуда | `[[таргет]]` |
|
||||||
|
|---|---|
|
||||||
|
| `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]]` |
|
||||||
|
|
||||||
|
## Битые 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-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-04-29-231939-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/happ-routing-roscomvpn.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-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-04-29-071329-на-компе-юрия-продолжим-проверь-он-сети.md` | `projects/mmfb/otchet-yuri-2026-04.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-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-04-28-134112-можешь-найти-кп-мичуринец.md` | `projects/dttb/znamenskoye-network-topology.md` |
|
||||||
|
| `notes/claude/2026-04-28-134112-можешь-найти-кп-мичуринец.md` | `claude-memory/benelux-topology.md` |
|
||||||
|
| `notes/claude/2026-04-25-001105-на-сервере-glavtorg-можешь-запустить-виртулку-с-ам.md` | `projects/glavtorg/README.md` |
|
||||||
|
| `notes/claude/2026-04-24-230658-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-193827-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-193827-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `projects/dttb/vpn-clients.md` |
|
||||||
|
| `notes/claude/2026-04-29-180420-создадим-еще-одного-пользователя-подключение-к-vpn.md` | `snippets/clients/sergey-znamenskoye-happ-setup.md` |
|
||||||
|
| `notes/claude/2026-04-20-101023-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `projects/niikn/openwrt-bypass.md` |
|
||||||
|
| `notes/claude/2026-04-24-194414-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-194414-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/apple-id-us-on-russia.md` |
|
||||||
|
| `notes/claude/2026-05-04-124829-в-ниикн-нспд.md` | `projects/niikn/govru-quickfix-playbook.md` |
|
||||||
|
| `notes/claude/2026-04-28-132949-промт-для-claude-code-развёртывание-rustdesk-api-s.md` | `projects/dttb/rustdesk.md` |
|
||||||
|
| `notes/claude/2026-04-29-163821-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/amnezia-split-tunnel-ru.md` |
|
||||||
|
| `notes/claude/2026-04-29-151943-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/clients/yaroslav-happ-setup.md` |
|
||||||
|
| `notes/claude/2026-04-29-151943-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/vpn-clients.md` |
|
||||||
|
| `notes/claude/2026-04-29-151943-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/credentials.md` |
|
||||||
|
| `notes/claude/2026-05-04-093928-можешь-составлять-графические-схемы-на-dttbruhttpd.md` | `projects/niikn/network-topology-diagram.md` |
|
||||||
|
| `notes/claude/2026-04-24-202451-новый-клиент-ммфб-юрий-витальевич-нужно-подключить.md` | `projects/mmfb/yuri-vitalievich.md` |
|
||||||
|
| `notes/claude/2026-04-29-001915-на-компе-юрия-продолжим-проверь-он-сети.md` | `projects/mmfb/yuri-vitalievich.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 (21)
|
||||||
|
|
||||||
|
- `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 — без бэклинков (51)
|
||||||
|
|
||||||
|
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
|
||||||
|
|
||||||
|
- `decisions/2026-04-30-niikn-culture-gov-fakeip-fix.md`
|
||||||
|
- `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md`
|
||||||
|
- `decisions/2026-04-28-netbird-watchdog-lxc-132-137.md`
|
||||||
|
- `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md`
|
||||||
|
- `decisions/2026-05-06-kb-search-overhaul.md`
|
||||||
|
- `decisions/2026-04-28-niikn-uookn-sev-gov-fakeip-fix.md`
|
||||||
|
- `decisions/2026-05-04-niikn-nspd-via-netbird-lionart.md`
|
||||||
|
- `notes/ru-geoblocked-services.md`
|
||||||
|
- `projects/dttb/network-topology-diagram.md`
|
||||||
|
- `projects/niikn/office-pc.md`
|
||||||
|
- `projects/niikn/mailcow.md`
|
||||||
|
- `projects/niikn/NIIKN-Infrastructure.md`
|
||||||
|
- `projects/niikn/groupfolders-migration.md`
|
||||||
|
- `projects/niikn/credentials.md`
|
||||||
|
- `projects/niikn/changelog.md`
|
||||||
|
- `projects/niikn/matrix.md`
|
||||||
|
- `projects/niikn/clawdbot-niikn.md`
|
||||||
|
- `projects/niikn/proxmox.md`
|
||||||
|
- `projects/niikn/NIIKN-ChangeLog.md`
|
||||||
|
- `projects/niikn/npm.md`
|
||||||
|
- `projects/niikn/openwrt-bypass.md`
|
||||||
|
- `projects/niikn/network-topology-diagram.md`
|
||||||
|
- `projects/niikn/NC-Talk-Setup.md`
|
||||||
|
- `projects/niikn/domofon.md`
|
||||||
|
- `projects/niikn/vpn.md`
|
||||||
|
- `projects/mmfb/mikrotik.md`
|
||||||
|
- `projects/dttb/graphify-out/GRAPH_REPORT.md`
|
||||||
|
- `snippets/happ-routing-roscomvpn.md`
|
||||||
|
- `snippets/invoice-template.md`
|
||||||
|
- `snippets/clients/oksana-niikn-rustdesk.md`
|
||||||
|
- ... +21 ещё
|
||||||
|
|
||||||
|
## TODO без даты (70 шт в 10 файлах)
|
||||||
|
|
||||||
|
- `decisions/2026-04-30-rustdesk-pre-prod-audit.md` — 13 шт
|
||||||
|
- `projects/lipki/README.md` — 11 шт
|
||||||
|
- `templates/vpn-client.md` — 7 шт
|
||||||
|
- `decisions/2026-04-29-rustdesk-client-deployment-package.md` — 6 шт
|
||||||
|
- `projects/openwrt-4/README.md` — 6 шт
|
||||||
|
- `projects/benilux/README.md` — 6 шт
|
||||||
|
- `projects/sergey/README.md` — 6 шт
|
||||||
|
- `projects/dttb/vpn-clients.md` — 5 шт
|
||||||
|
- `projects/vishnevyy-sad/README.md` — 5 шт
|
||||||
|
- `claude-memory/mas-niikn.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/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`
|
||||||
|
- `proxmox-inventory.md`:
|
||||||
|
- `projects/dttb/proxmox-inventory.md`
|
||||||
|
- `projects/mmfb/proxmox-inventory.md`
|
||||||
|
- `credentials.md`:
|
||||||
|
- `projects/dttb/credentials.md`
|
||||||
|
- `projects/niikn/credentials.md`
|
||||||
|
- `mikrotik.md`:
|
||||||
|
- `projects/niikn/mikrotik.md`
|
||||||
|
- `projects/mmfb/mikrotik.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
*Генерируется `scripts/kb-health.py`. JSON-версия в `audit/health-latest.json` для agent-loop.*
|
||||||
62
audit/2026-05-10-npm-drift.md
Normal file
62
audit/2026-05-10-npm-drift.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-10
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-npm.py
|
||||||
|
tags: [audit, drift, npm]
|
||||||
|
---
|
||||||
|
|
||||||
|
# NPM drift audit — 2026-05-10
|
||||||
|
|
||||||
|
Сверка [[../projects/dttb/npm-proxy-hosts|npm-proxy-hosts.md]] с NPM API (https://npm.dttb.ru).
|
||||||
|
|
||||||
|
- Живых proxy hosts: **22**
|
||||||
|
- В KB: **20**
|
||||||
|
- Совпадений: 20 / новых: 2 / удалённых из NPM: 0 / с изменениями: 3
|
||||||
|
|
||||||
|
## ⚠ Новые 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`
|
||||||
|
|
||||||
|
### #14 `remot.dttb.ru`
|
||||||
|
- backend: KB=`10.0.0.43:21114` → live=`10.0.0.244:21114`
|
||||||
|
|
||||||
|
### #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.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 |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-npm.py`.*
|
||||||
37
audit/2026-05-10-objects-audit.md
Normal file
37
audit/2026-05-10-objects-audit.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-10
|
||||||
|
type: audit
|
||||||
|
source: scripts/kb-objects-audit.py
|
||||||
|
tags: [audit, objects, frontmatter, links]
|
||||||
|
score: 6
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB objects audit — 2026-05-10
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `6`**
|
||||||
|
|
||||||
|
- Проектов с frontmatter: **13/13** (0 проблем)
|
||||||
|
- NetBird online-пиров без проектной карточки: **3**
|
||||||
|
- Битых wiki-ссылок `[[...]]`: **0**
|
||||||
|
|
||||||
|
## 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-ссылки
|
||||||
|
|
||||||
|
✅ битых ссылок не найдено
|
||||||
13
audit/2026-05-10-proposed.md
Normal file
13
audit/2026-05-10-proposed.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-10
|
||||||
|
type: audit-proposed
|
||||||
|
source: kb-audit-propose.sh (Opus 4.7)
|
||||||
|
tags: [audit, proposed, inventory]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Предложенные правки inventory — 2026-05-10
|
||||||
|
|
||||||
|
Сгенерировано Claude Opus на основе [[2026-05-10-drift|drift-отчёта]].
|
||||||
|
**Правки НЕ применены.** Ревью — ты. Apply — вручную.
|
||||||
|
|
||||||
|
|
||||||
47
audit/2026-05-17-creds-drift.md
Normal file
47
audit/2026-05-17-creds-drift.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-17
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-creds.py
|
||||||
|
tags: [audit, creds, reachability]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Credentials reachability — 2026-05-17
|
||||||
|
|
||||||
|
Ping-проверка URL из [[../projects/dttb/credentials|credentials.md]].
|
||||||
|
Проверяется только reachability (HTTP status), не реальный логин.
|
||||||
|
|
||||||
|
- Всего URL: **20**
|
||||||
|
- ✓ Reachable: 17 / ⚠ 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.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://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://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`.*
|
||||||
75
audit/2026-05-17-dns-drift.md
Normal file
75
audit/2026-05-17-dns-drift.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-17
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-dns.py
|
||||||
|
tags: [audit, dns]
|
||||||
|
---
|
||||||
|
|
||||||
|
# DNS resolve audit — 2026-05-17
|
||||||
|
|
||||||
|
Резолвим все домены из NPM через публичный DNS (8.8.8.8) и локальный роутер (10.0.0.1).
|
||||||
|
|
||||||
|
- Всего доменов: **22**
|
||||||
|
- NXDOMAIN на 8.8.8.8: 2 / пустой ответ локально: 22 / split-horizon: 0
|
||||||
|
|
||||||
|
## ❌ NXDOMAIN / не резолвится на 8.8.8.8 (публичный DNS)
|
||||||
|
|
||||||
|
| Домен | Локальный IP |
|
||||||
|
|---|---|
|
||||||
|
| `itilegent.ru` | (тоже нет) |
|
||||||
|
| `vpn.dttb.ru` | (тоже нет) |
|
||||||
|
|
||||||
|
## ⚠ Пустой локальный резолв (роутер не знает)
|
||||||
|
|
||||||
|
- `ai.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `bit.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `bitrix24.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `bot.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `git.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `home.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `ip.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `itilegent.ru` (публичный: -)
|
||||||
|
- `link.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `mail.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `matrix.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `npm.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `office.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `plex.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `porteiner.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `pve.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `rec.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `remot.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `router.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
- `vpn.dttb.ru` (публичный: -)
|
||||||
|
- `z.dttb.ru` (публичный: 176.62.183.186)
|
||||||
|
|
||||||
|
## Полная таблица резолва
|
||||||
|
|
||||||
|
| Домен | 8.8.8.8 | 10.0.0.1 |
|
||||||
|
|---|---|---|
|
||||||
|
| `ai.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `bit.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `bitrix24.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `bot.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `git.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `home.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `ip.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `itilegent.ru` | — | — |
|
||||||
|
| `link.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `mail.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `matrix.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `npm.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `office.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `plex.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `porteiner.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `pve.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `rec.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `remot.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `router.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
| `vpn.dttb.ru` | — | — |
|
||||||
|
| `z.dttb.ru` | 176.62.183.186 | — |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-dns.py`.*
|
||||||
73
audit/2026-05-17-drift.md
Normal file
73
audit/2026-05-17-drift.md
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-17
|
||||||
|
type: audit
|
||||||
|
source: kb-audit.py
|
||||||
|
tags: [audit, drift, infrastructure]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB drift audit — 2026-05-17
|
||||||
|
|
||||||
|
Сравнение живого `pct list` / `qm list` с [[../projects/dttb/proxmox-inventory|proxmox-inventory.md]]
|
||||||
|
|
||||||
|
- Живых гостей Proxmox: **40**
|
||||||
|
- Упомянуто в inventory: **38**
|
||||||
|
- В обоих: 37 / только в live: 3 / отсутствуют в live: 0
|
||||||
|
- Известны как удалённые: 1 (в `## 🗑️ Удалённые`)
|
||||||
|
|
||||||
|
## ⚠ В Proxmox есть, в inventory НЕТ (надо добавить)
|
||||||
|
|
||||||
|
| VMID | Type | Status | Name |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 128 | LXC | stopped | profi-parser |
|
||||||
|
| 131 | VM | running | ubuntu |
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
|
||||||
|
## ✓ Удалённые хосты (задокументированы): 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 | stopped | 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 | stopped | profi-parser |
|
||||||
|
| 129 | VM | stopped | profi-parser-vm |
|
||||||
|
| 130 | VM | stopped | Zima-OS |
|
||||||
|
| 131 | VM | running | ubuntu |
|
||||||
|
| 132 | LXC | running | code-server |
|
||||||
|
| 133 | VM | running | s1c-buzharovo |
|
||||||
|
| 134 | LXC | stopped | ZnamSecurityBot |
|
||||||
|
| 136 | LXC | running | gitea |
|
||||||
|
| 137 | LXC | running | openclaw |
|
||||||
|
| 138 | LXC | stopped | vpn-proxy |
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
| 250 | VM | running | Nextcloud-AIO |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически сгенерировано `scripts/kb-audit.py`. Применять правки — вручную после ревью.*
|
||||||
202
audit/2026-05-17-health.md
Normal file
202
audit/2026-05-17-health.md
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-17
|
||||||
|
type: audit
|
||||||
|
source: kb-health.py
|
||||||
|
score: 785
|
||||||
|
tags: [audit, health, metric]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB health — 2026-05-17
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `785`**
|
||||||
|
Проверено файлов: 855
|
||||||
|
|
||||||
|
## Разбивка
|
||||||
|
|
||||||
|
| Категория | Кол-во | Вес | Штраф |
|
||||||
|
|---|---:|---:|---:|
|
||||||
|
| broken_wikilinks | 4 | 10 | 40 |
|
||||||
|
| broken_paths | 48 | 10 | 480 |
|
||||||
|
| missing_frontmatter | 21 | 3 | 63 |
|
||||||
|
| orphan_files | 51 | 2 | 102 |
|
||||||
|
| undated_todos | 70 | 1 | 70 |
|
||||||
|
| duplicate_basenames | 6 | 5 | 30 |
|
||||||
|
| **ИТОГО** | | | **785** |
|
||||||
|
|
||||||
|
## Битые wikilinks
|
||||||
|
|
||||||
|
| Откуда | `[[таргет]]` |
|
||||||
|
|---|---|
|
||||||
|
| `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]]` |
|
||||||
|
|
||||||
|
## Битые 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-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-04-29-231939-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/happ-routing-roscomvpn.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-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-04-29-071329-на-компе-юрия-продолжим-проверь-он-сети.md` | `projects/mmfb/otchet-yuri-2026-04.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-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-04-28-134112-можешь-найти-кп-мичуринец.md` | `projects/dttb/znamenskoye-network-topology.md` |
|
||||||
|
| `notes/claude/2026-04-28-134112-можешь-найти-кп-мичуринец.md` | `claude-memory/benelux-topology.md` |
|
||||||
|
| `notes/claude/2026-04-25-001105-на-сервере-glavtorg-можешь-запустить-виртулку-с-ам.md` | `projects/glavtorg/README.md` |
|
||||||
|
| `notes/claude/2026-04-24-230658-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-193827-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-193827-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `projects/dttb/vpn-clients.md` |
|
||||||
|
| `notes/claude/2026-04-29-180420-создадим-еще-одного-пользователя-подключение-к-vpn.md` | `snippets/clients/sergey-znamenskoye-happ-setup.md` |
|
||||||
|
| `notes/claude/2026-04-20-101023-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `projects/niikn/openwrt-bypass.md` |
|
||||||
|
| `notes/claude/2026-04-24-194414-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-194414-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/apple-id-us-on-russia.md` |
|
||||||
|
| `notes/claude/2026-05-04-124829-в-ниикн-нспд.md` | `projects/niikn/govru-quickfix-playbook.md` |
|
||||||
|
| `notes/claude/2026-04-28-132949-промт-для-claude-code-развёртывание-rustdesk-api-s.md` | `projects/dttb/rustdesk.md` |
|
||||||
|
| `notes/claude/2026-04-29-163821-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/amnezia-split-tunnel-ru.md` |
|
||||||
|
| `notes/claude/2026-04-29-151943-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/clients/yaroslav-happ-setup.md` |
|
||||||
|
| `notes/claude/2026-04-29-151943-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/vpn-clients.md` |
|
||||||
|
| `notes/claude/2026-04-29-151943-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/credentials.md` |
|
||||||
|
| `notes/claude/2026-05-04-093928-можешь-составлять-графические-схемы-на-dttbruhttpd.md` | `projects/niikn/network-topology-diagram.md` |
|
||||||
|
| `notes/claude/2026-04-24-202451-новый-клиент-ммфб-юрий-витальевич-нужно-подключить.md` | `projects/mmfb/yuri-vitalievich.md` |
|
||||||
|
| `notes/claude/2026-04-29-001915-на-компе-юрия-продолжим-проверь-он-сети.md` | `projects/mmfb/yuri-vitalievich.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 (21)
|
||||||
|
|
||||||
|
- `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 — без бэклинков (51)
|
||||||
|
|
||||||
|
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
|
||||||
|
|
||||||
|
- `decisions/2026-04-30-niikn-culture-gov-fakeip-fix.md`
|
||||||
|
- `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md`
|
||||||
|
- `decisions/2026-04-28-netbird-watchdog-lxc-132-137.md`
|
||||||
|
- `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md`
|
||||||
|
- `decisions/2026-05-06-kb-search-overhaul.md`
|
||||||
|
- `decisions/2026-04-28-niikn-uookn-sev-gov-fakeip-fix.md`
|
||||||
|
- `decisions/2026-05-04-niikn-nspd-via-netbird-lionart.md`
|
||||||
|
- `notes/ru-geoblocked-services.md`
|
||||||
|
- `projects/dttb/network-topology-diagram.md`
|
||||||
|
- `projects/niikn/office-pc.md`
|
||||||
|
- `projects/niikn/mailcow.md`
|
||||||
|
- `projects/niikn/NIIKN-Infrastructure.md`
|
||||||
|
- `projects/niikn/groupfolders-migration.md`
|
||||||
|
- `projects/niikn/credentials.md`
|
||||||
|
- `projects/niikn/changelog.md`
|
||||||
|
- `projects/niikn/matrix.md`
|
||||||
|
- `projects/niikn/clawdbot-niikn.md`
|
||||||
|
- `projects/niikn/proxmox.md`
|
||||||
|
- `projects/niikn/NIIKN-ChangeLog.md`
|
||||||
|
- `projects/niikn/npm.md`
|
||||||
|
- `projects/niikn/openwrt-bypass.md`
|
||||||
|
- `projects/niikn/network-topology-diagram.md`
|
||||||
|
- `projects/niikn/NC-Talk-Setup.md`
|
||||||
|
- `projects/niikn/domofon.md`
|
||||||
|
- `projects/niikn/vpn.md`
|
||||||
|
- `projects/mmfb/mikrotik.md`
|
||||||
|
- `projects/dttb/graphify-out/GRAPH_REPORT.md`
|
||||||
|
- `snippets/happ-routing-roscomvpn.md`
|
||||||
|
- `snippets/invoice-template.md`
|
||||||
|
- `snippets/clients/oksana-niikn-rustdesk.md`
|
||||||
|
- ... +21 ещё
|
||||||
|
|
||||||
|
## TODO без даты (70 шт в 10 файлах)
|
||||||
|
|
||||||
|
- `decisions/2026-04-30-rustdesk-pre-prod-audit.md` — 13 шт
|
||||||
|
- `projects/lipki/README.md` — 11 шт
|
||||||
|
- `templates/vpn-client.md` — 7 шт
|
||||||
|
- `decisions/2026-04-29-rustdesk-client-deployment-package.md` — 6 шт
|
||||||
|
- `projects/openwrt-4/README.md` — 6 шт
|
||||||
|
- `projects/benilux/README.md` — 6 шт
|
||||||
|
- `projects/sergey/README.md` — 6 шт
|
||||||
|
- `projects/dttb/vpn-clients.md` — 5 шт
|
||||||
|
- `projects/vishnevyy-sad/README.md` — 5 шт
|
||||||
|
- `claude-memory/mas-niikn.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/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`
|
||||||
|
- `proxmox-inventory.md`:
|
||||||
|
- `projects/dttb/proxmox-inventory.md`
|
||||||
|
- `projects/mmfb/proxmox-inventory.md`
|
||||||
|
- `credentials.md`:
|
||||||
|
- `projects/dttb/credentials.md`
|
||||||
|
- `projects/niikn/credentials.md`
|
||||||
|
- `mikrotik.md`:
|
||||||
|
- `projects/niikn/mikrotik.md`
|
||||||
|
- `projects/mmfb/mikrotik.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
*Генерируется `scripts/kb-health.py`. JSON-версия в `audit/health-latest.json` для agent-loop.*
|
||||||
62
audit/2026-05-17-npm-drift.md
Normal file
62
audit/2026-05-17-npm-drift.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-17
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-npm.py
|
||||||
|
tags: [audit, drift, npm]
|
||||||
|
---
|
||||||
|
|
||||||
|
# NPM drift audit — 2026-05-17
|
||||||
|
|
||||||
|
Сверка [[../projects/dttb/npm-proxy-hosts|npm-proxy-hosts.md]] с NPM API (https://npm.dttb.ru).
|
||||||
|
|
||||||
|
- Живых proxy hosts: **22**
|
||||||
|
- В KB: **20**
|
||||||
|
- Совпадений: 20 / новых: 2 / удалённых из NPM: 0 / с изменениями: 3
|
||||||
|
|
||||||
|
## ⚠ Новые 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`
|
||||||
|
|
||||||
|
### #14 `remot.dttb.ru`
|
||||||
|
- backend: KB=`10.0.0.43:21114` → live=`10.0.0.244:21114`
|
||||||
|
|
||||||
|
### #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.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 |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-npm.py`.*
|
||||||
37
audit/2026-05-17-objects-audit.md
Normal file
37
audit/2026-05-17-objects-audit.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-17
|
||||||
|
type: audit
|
||||||
|
source: scripts/kb-objects-audit.py
|
||||||
|
tags: [audit, objects, frontmatter, links]
|
||||||
|
score: 6
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB objects audit — 2026-05-17
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `6`**
|
||||||
|
|
||||||
|
- Проектов с frontmatter: **13/13** (0 проблем)
|
||||||
|
- NetBird online-пиров без проектной карточки: **3**
|
||||||
|
- Битых wiki-ссылок `[[...]]`: **0**
|
||||||
|
|
||||||
|
## 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-ссылки
|
||||||
|
|
||||||
|
✅ битых ссылок не найдено
|
||||||
185
audit/2026-05-17-proposed.md
Normal file
185
audit/2026-05-17-proposed.md
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-17
|
||||||
|
type: audit-proposed
|
||||||
|
source: kb-audit-propose.sh (Opus 4.7)
|
||||||
|
tags: [audit, proposed, inventory]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Предложенные правки inventory — 2026-05-17
|
||||||
|
|
||||||
|
Сгенерировано Claude Opus на основе [[2026-05-17-drift|drift-отчёта]].
|
||||||
|
**Правки НЕ применены.** Ревью — ты. Apply — вручную.
|
||||||
|
|
||||||
|
## 1. Резюме
|
||||||
|
|
||||||
|
В Proxmox появились 3 гостя, отсутствующих в inventory (LXC 128 profi-parser — спорно, VM 131 ubuntu, LXC 139 severny-les). Также обнаружены расхождения статусов (Mailcow, ZnamSecurityBot, vpn-proxy стали stopped) и переименования удалённых VM 129/133, которые снова live.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Конкретные правки
|
||||||
|
|
||||||
|
### 2.1. VM 107 — Mailcow: статус running → stopped
|
||||||
|
|
||||||
|
Перенести из секции "🟢 Запущенные VM" в таблицу "🔴 Остановленные VM":
|
||||||
|
|
||||||
|
```diff
|
||||||
|
- ### VM 107 — Mailcow
|
||||||
|
- | Параметр | Значение |
|
||||||
|
- |----------|----------|
|
||||||
|
- | Статус | 🟢 running |
|
||||||
|
- | CPU | 4 vCPU |
|
||||||
|
- | RAM | 8 GB |
|
||||||
|
- | Диск | 60 GB |
|
||||||
|
- | IP | 10.0.0.107 |
|
||||||
|
- | NPM домен | mail.dttb.ru |
|
||||||
|
- | Назначение | Почтовый сервер dttb.ru |
|
||||||
|
```
|
||||||
|
|
||||||
|
Добавить строку в таблицу остановленных VM:
|
||||||
|
|
||||||
|
```diff
|
||||||
|
+ | 107 | Mailcow | 4 | 8 GB | 60 GB | Почтовый сервер dttb.ru (mail.dttb.ru) |
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.2. VM 131 — ubuntu: добавить (новый, running)
|
||||||
|
|
||||||
|
Добавить в секцию "🟢 Запущенные VM":
|
||||||
|
|
||||||
|
```diff
|
||||||
|
+ ### VM 131 — ubuntu
|
||||||
|
+ | Параметр | Значение |
|
||||||
|
+ |----------|----------|
|
||||||
|
+ | Статус | 🟢 running |
|
||||||
|
+ | Назначение | Ubuntu (уточнить) |
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.3. VM 129 — profi-parser-vm: обновить в "Удалённые"
|
||||||
|
|
||||||
|
VM 129 жива (stopped) и переименована. Убрать из "Удалённые", добавить в остановленные VM:
|
||||||
|
|
||||||
|
```diff
|
||||||
|
## 🗑️ Удалённые (история)
|
||||||
|
- | 129 | Clawdbot | ~апрель 2026 | Данные перенесены на code-server (132) в `/root/backup-lxc129/`, IP 10.0.0.206 освобождён |
|
||||||
|
```
|
||||||
|
|
||||||
|
```diff
|
||||||
|
## 🔴 Остановленные VM (QEMU)
|
||||||
|
+ | 129 | profi-parser-vm | — | — | — | Парсер profi (бывш. Clawdbot) |
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.4. VM 133 — s1c-buzharovo: обновить в "Удалённые"
|
||||||
|
|
||||||
|
VM 133 жива (running) и переименована. Убрать из "Удалённые", добавить в запущенные VM:
|
||||||
|
|
||||||
|
```diff
|
||||||
|
## 🗑️ Удалённые (история)
|
||||||
|
- | 133 | clawdbot-1 | ~апрель 2026 | Функционал мигрирован на openclaw (137) |
|
||||||
|
```
|
||||||
|
|
||||||
|
```diff
|
||||||
|
+ ### VM 133 — s1c-buzharovo
|
||||||
|
+ | Параметр | Значение |
|
||||||
|
+ |----------|----------|
|
||||||
|
+ | Статус | 🟢 running |
|
||||||
|
+ | Назначение | 1С Бужарово (уточнить) |
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.5. LXC 134 — ZnamSecurityBot: статус running → stopped
|
||||||
|
|
||||||
|
Убрать из секции "🟢 Запущенные LXC", добавить строку в "🔴 Остановленные LXC":
|
||||||
|
|
||||||
|
```diff
|
||||||
|
- ### LXC 134 — ZnamSecurityBot
|
||||||
|
- | Параметр | Значение |
|
||||||
|
- |----------|----------|
|
||||||
|
- | Статус | 🟢 running |
|
||||||
|
- | IP | 10.0.0.238 |
|
||||||
|
- | Tags | ai, assistant, community-script |
|
||||||
|
- | Назначение | ZnamSecurity Telegram-бот |
|
||||||
|
```
|
||||||
|
|
||||||
|
```diff
|
||||||
|
## 🔴 Остановленные LXC
|
||||||
|
+ | 134 | ZnamSecurityBot | ZnamSecurity Telegram-бот |
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.6. LXC 138 — vpn-proxy: статус running → stopped
|
||||||
|
|
||||||
|
Убрать из секции "🟢 Запущенные LXC", добавить строку в "🔴 Остановленные LXC":
|
||||||
|
|
||||||
|
```diff
|
||||||
|
- ### LXC 138 — vpn-proxy
|
||||||
|
- | Параметр | Значение |
|
||||||
|
- |----------|----------|
|
||||||
|
- | Статус | 🟢 running |
|
||||||
|
- | IP | 10.0.0.141 (LAN) / 100.70.161.29 (NetBird) |
|
||||||
|
- | Назначение | VPN-proxy (детали уточнить) |
|
||||||
|
```
|
||||||
|
|
||||||
|
```diff
|
||||||
|
## 🔴 Остановленные LXC
|
||||||
|
+ | 138 | vpn-proxy | VPN-proxy |
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.7. LXC 139 — severny-les: добавить (новый, running)
|
||||||
|
|
||||||
|
Добавить в секцию "🟢 Запущенные LXC":
|
||||||
|
|
||||||
|
```diff
|
||||||
|
+ ### LXC 139 — severny-les
|
||||||
|
+ | Параметр | Значение |
|
||||||
|
+ |----------|----------|
|
||||||
|
+ | Статус | 🟢 running |
|
||||||
|
+ | Назначение | Северный лес (уточнить) |
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.8. Обновить сводную таблицу
|
||||||
|
|
||||||
|
```diff
|
||||||
|
- | QEMU VM | 15 | 5 | 10 |
|
||||||
|
- | LXC | 21 | 11 | 10 |
|
||||||
|
- | **Итого** | **36** | **16** | **20** |
|
||||||
|
+ | QEMU VM | 17 | 5 | 12 |
|
||||||
|
+ | LXC | 22 | 9 | 13 |
|
||||||
|
+ | **Итого** | **39** | **14** | **25** |
|
||||||
|
```
|
||||||
|
|
||||||
|
*(17 VM: +131, +129 из удалённых, +133 из удалённых; 22 LXC: +139; running: 5 VM (106,111,127,131,133,250=6 на самом деле... пересчитаю)*
|
||||||
|
|
||||||
|
Корректный пересчёт:
|
||||||
|
- VM running: 106, 111, 127, 131, 133, 250 = **6**
|
||||||
|
- VM stopped: 100, 104, 105, 107, 109, 110, 112, 120, 124, 125, 129, 130 = **12**
|
||||||
|
- LXC running: 103, 113, 114, 115, 116, 132, 136, 137, 139 = **9**
|
||||||
|
- LXC stopped: 101, 102, 108, 117, 118, 119, 121, 122, 123, 126, 128, 134, 138 = **13**
|
||||||
|
|
||||||
|
```diff
|
||||||
|
+ | QEMU VM | 18 | 6 | 12 |
|
||||||
|
+ | LXC | 22 | 9 | 13 |
|
||||||
|
+ | **Итого** | **40** | **15** | **25** |
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Предупреждения
|
||||||
|
|
||||||
|
1. **LXC 128 (profi-parser)** — drift-отчёт говорит что его нет в inventory, но он уже есть в таблице остановленных LXC. Возможно ложное срабатывание скрипта аудита. Правка не требуется.
|
||||||
|
|
||||||
|
2. **VM 129 и 133** — в inventory записаны как удалённые (Clawdbot, clawdbot-1), но live показывает их с другими именами (profi-parser-vm, s1c-buzharovo). Похоже VMID были переиспользованы. Историю стоит сохранить комментарием.
|
||||||
|
|
||||||
|
3. **VM 131 (ubuntu), LXC 139 (severny-les)** — нет данных об IP, ресурсах, назначении. Потребуется уточнение вручную (`pct config 139`, `qm config 131`).
|
||||||
|
|
||||||
|
4. **Дата обновления** в шапке файла: сменить `2026-04-17` → `2026-05-17`.
|
||||||
52
audit/2026-05-24-creds-drift.md
Normal file
52
audit/2026-05-24-creds-drift.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-24
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-creds.py
|
||||||
|
tags: [audit, creds, reachability]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Credentials reachability — 2026-05-24
|
||||||
|
|
||||||
|
Ping-проверка URL из [[../projects/dttb/credentials|credentials.md]].
|
||||||
|
Проверяется только reachability (HTTP status), не реальный логин.
|
||||||
|
|
||||||
|
- Всего URL: **20**
|
||||||
|
- ✓ Reachable: 15 / ⚠ Questionable: 3 / ❌ Unreachable: 2
|
||||||
|
|
||||||
|
## ❌ Недоступные (проверить: сервер упал? URL поменялся?)
|
||||||
|
|
||||||
|
| URL | Status | Detail | Контекст |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `http://10.0.0.189:3000` | FAIL | [Errno 113] No route to host | --------- ---------- URL http://10.0.0.189:30 |
|
||||||
|
| `http://git.dttb.ru` | 502 | Bad Gateway | RL http://10.0.0.189:3000 / http://git.dttb.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.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://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://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`.*
|
||||||
81
audit/2026-05-24-dns-drift.md
Normal file
81
audit/2026-05-24-dns-drift.md
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-24
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-dns.py
|
||||||
|
tags: [audit, dns]
|
||||||
|
---
|
||||||
|
|
||||||
|
# DNS resolve audit — 2026-05-24
|
||||||
|
|
||||||
|
Резолвим все домены из 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`.*
|
||||||
72
audit/2026-05-24-drift.md
Normal file
72
audit/2026-05-24-drift.md
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-24
|
||||||
|
type: audit
|
||||||
|
source: kb-audit.py
|
||||||
|
tags: [audit, drift, infrastructure]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB drift audit — 2026-05-24
|
||||||
|
|
||||||
|
Сравнение живого `pct list` / `qm list` с [[../projects/dttb/proxmox-inventory|proxmox-inventory.md]]
|
||||||
|
|
||||||
|
- Живых гостей Proxmox: **40**
|
||||||
|
- Упомянуто в inventory: **39**
|
||||||
|
- В обоих: 38 / только в live: 2 / отсутствуют в live: 0
|
||||||
|
- Известны как удалённые: 1 (в `## 🗑️ Удалённые`)
|
||||||
|
|
||||||
|
## ⚠ В Proxmox есть, в inventory НЕТ (надо добавить)
|
||||||
|
|
||||||
|
| VMID | Type | Status | Name |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 131 | VM | running | ubuntu |
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
|
||||||
|
## ✓ Удалённые хосты (задокументированы): 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 | stopped | 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 | stopped | haos-17.0 |
|
||||||
|
| 128 | LXC | stopped | profi-parser |
|
||||||
|
| 129 | VM | stopped | profi-parser-vm |
|
||||||
|
| 130 | VM | stopped | Zima-OS |
|
||||||
|
| 131 | VM | running | ubuntu |
|
||||||
|
| 132 | LXC | running | code-server |
|
||||||
|
| 133 | VM | running | s1c-buzharovo |
|
||||||
|
| 134 | LXC | stopped | ZnamSecurityBot |
|
||||||
|
| 136 | LXC | running | gitea |
|
||||||
|
| 137 | LXC | running | openclaw |
|
||||||
|
| 138 | LXC | stopped | vpn-proxy |
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
| 250 | VM | running | Nextcloud-AIO |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически сгенерировано `scripts/kb-audit.py`. Применять правки — вручную после ревью.*
|
||||||
202
audit/2026-05-24-health.md
Normal file
202
audit/2026-05-24-health.md
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-24
|
||||||
|
type: audit
|
||||||
|
source: kb-health.py
|
||||||
|
score: 785
|
||||||
|
tags: [audit, health, metric]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB health — 2026-05-24
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `785`**
|
||||||
|
Проверено файлов: 862
|
||||||
|
|
||||||
|
## Разбивка
|
||||||
|
|
||||||
|
| Категория | Кол-во | Вес | Штраф |
|
||||||
|
|---|---:|---:|---:|
|
||||||
|
| broken_wikilinks | 4 | 10 | 40 |
|
||||||
|
| broken_paths | 48 | 10 | 480 |
|
||||||
|
| missing_frontmatter | 21 | 3 | 63 |
|
||||||
|
| orphan_files | 51 | 2 | 102 |
|
||||||
|
| undated_todos | 70 | 1 | 70 |
|
||||||
|
| duplicate_basenames | 6 | 5 | 30 |
|
||||||
|
| **ИТОГО** | | | **785** |
|
||||||
|
|
||||||
|
## Битые wikilinks
|
||||||
|
|
||||||
|
| Откуда | `[[таргет]]` |
|
||||||
|
|---|---|
|
||||||
|
| `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]]` |
|
||||||
|
|
||||||
|
## Битые 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-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-04-29-231939-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/happ-routing-roscomvpn.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-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-04-29-071329-на-компе-юрия-продолжим-проверь-он-сети.md` | `projects/mmfb/otchet-yuri-2026-04.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-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-04-28-134112-можешь-найти-кп-мичуринец.md` | `projects/dttb/znamenskoye-network-topology.md` |
|
||||||
|
| `notes/claude/2026-04-28-134112-можешь-найти-кп-мичуринец.md` | `claude-memory/benelux-topology.md` |
|
||||||
|
| `notes/claude/2026-04-25-001105-на-сервере-glavtorg-можешь-запустить-виртулку-с-ам.md` | `projects/glavtorg/README.md` |
|
||||||
|
| `notes/claude/2026-04-24-230658-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-193827-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-193827-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `projects/dttb/vpn-clients.md` |
|
||||||
|
| `notes/claude/2026-04-29-180420-создадим-еще-одного-пользователя-подключение-к-vpn.md` | `snippets/clients/sergey-znamenskoye-happ-setup.md` |
|
||||||
|
| `notes/claude/2026-04-20-101023-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `projects/niikn/openwrt-bypass.md` |
|
||||||
|
| `notes/claude/2026-04-24-194414-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-194414-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/apple-id-us-on-russia.md` |
|
||||||
|
| `notes/claude/2026-05-04-124829-в-ниикн-нспд.md` | `projects/niikn/govru-quickfix-playbook.md` |
|
||||||
|
| `notes/claude/2026-04-28-132949-промт-для-claude-code-развёртывание-rustdesk-api-s.md` | `projects/dttb/rustdesk.md` |
|
||||||
|
| `notes/claude/2026-04-29-163821-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/amnezia-split-tunnel-ru.md` |
|
||||||
|
| `notes/claude/2026-04-29-151943-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/clients/yaroslav-happ-setup.md` |
|
||||||
|
| `notes/claude/2026-04-29-151943-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/vpn-clients.md` |
|
||||||
|
| `notes/claude/2026-04-29-151943-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/credentials.md` |
|
||||||
|
| `notes/claude/2026-05-04-093928-можешь-составлять-графические-схемы-на-dttbruhttpd.md` | `projects/niikn/network-topology-diagram.md` |
|
||||||
|
| `notes/claude/2026-04-24-202451-новый-клиент-ммфб-юрий-витальевич-нужно-подключить.md` | `projects/mmfb/yuri-vitalievich.md` |
|
||||||
|
| `notes/claude/2026-04-29-001915-на-компе-юрия-продолжим-проверь-он-сети.md` | `projects/mmfb/yuri-vitalievich.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 (21)
|
||||||
|
|
||||||
|
- `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 — без бэклинков (51)
|
||||||
|
|
||||||
|
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
|
||||||
|
|
||||||
|
- `decisions/2026-04-30-niikn-culture-gov-fakeip-fix.md`
|
||||||
|
- `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md`
|
||||||
|
- `decisions/2026-04-28-netbird-watchdog-lxc-132-137.md`
|
||||||
|
- `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md`
|
||||||
|
- `decisions/2026-05-06-kb-search-overhaul.md`
|
||||||
|
- `decisions/2026-04-28-niikn-uookn-sev-gov-fakeip-fix.md`
|
||||||
|
- `decisions/2026-05-04-niikn-nspd-via-netbird-lionart.md`
|
||||||
|
- `notes/ru-geoblocked-services.md`
|
||||||
|
- `projects/dttb/network-topology-diagram.md`
|
||||||
|
- `projects/niikn/office-pc.md`
|
||||||
|
- `projects/niikn/mailcow.md`
|
||||||
|
- `projects/niikn/NIIKN-Infrastructure.md`
|
||||||
|
- `projects/niikn/groupfolders-migration.md`
|
||||||
|
- `projects/niikn/credentials.md`
|
||||||
|
- `projects/niikn/changelog.md`
|
||||||
|
- `projects/niikn/matrix.md`
|
||||||
|
- `projects/niikn/clawdbot-niikn.md`
|
||||||
|
- `projects/niikn/proxmox.md`
|
||||||
|
- `projects/niikn/NIIKN-ChangeLog.md`
|
||||||
|
- `projects/niikn/npm.md`
|
||||||
|
- `projects/niikn/openwrt-bypass.md`
|
||||||
|
- `projects/niikn/network-topology-diagram.md`
|
||||||
|
- `projects/niikn/NC-Talk-Setup.md`
|
||||||
|
- `projects/niikn/domofon.md`
|
||||||
|
- `projects/niikn/vpn.md`
|
||||||
|
- `projects/mmfb/mikrotik.md`
|
||||||
|
- `projects/dttb/graphify-out/GRAPH_REPORT.md`
|
||||||
|
- `snippets/happ-routing-roscomvpn.md`
|
||||||
|
- `snippets/invoice-template.md`
|
||||||
|
- `snippets/clients/oksana-niikn-rustdesk.md`
|
||||||
|
- ... +21 ещё
|
||||||
|
|
||||||
|
## TODO без даты (70 шт в 10 файлах)
|
||||||
|
|
||||||
|
- `decisions/2026-04-30-rustdesk-pre-prod-audit.md` — 13 шт
|
||||||
|
- `projects/lipki/README.md` — 11 шт
|
||||||
|
- `templates/vpn-client.md` — 7 шт
|
||||||
|
- `decisions/2026-04-29-rustdesk-client-deployment-package.md` — 6 шт
|
||||||
|
- `projects/openwrt-4/README.md` — 6 шт
|
||||||
|
- `projects/benilux/README.md` — 6 шт
|
||||||
|
- `projects/sergey/README.md` — 6 шт
|
||||||
|
- `projects/dttb/vpn-clients.md` — 5 шт
|
||||||
|
- `projects/vishnevyy-sad/README.md` — 5 шт
|
||||||
|
- `claude-memory/mas-niikn.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/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`
|
||||||
|
- `proxmox-inventory.md`:
|
||||||
|
- `projects/dttb/proxmox-inventory.md`
|
||||||
|
- `projects/mmfb/proxmox-inventory.md`
|
||||||
|
- `credentials.md`:
|
||||||
|
- `projects/dttb/credentials.md`
|
||||||
|
- `projects/niikn/credentials.md`
|
||||||
|
- `mikrotik.md`:
|
||||||
|
- `projects/niikn/mikrotik.md`
|
||||||
|
- `projects/mmfb/mikrotik.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
*Генерируется `scripts/kb-health.py`. JSON-версия в `audit/health-latest.json` для agent-loop.*
|
||||||
62
audit/2026-05-24-npm-drift.md
Normal file
62
audit/2026-05-24-npm-drift.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-24
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-npm.py
|
||||||
|
tags: [audit, drift, npm]
|
||||||
|
---
|
||||||
|
|
||||||
|
# NPM drift audit — 2026-05-24
|
||||||
|
|
||||||
|
Сверка [[../projects/dttb/npm-proxy-hosts|npm-proxy-hosts.md]] с NPM API (https://npm.dttb.ru).
|
||||||
|
|
||||||
|
- Живых proxy hosts: **22**
|
||||||
|
- В KB: **20**
|
||||||
|
- Совпадений: 20 / новых: 2 / удалённых из NPM: 0 / с изменениями: 3
|
||||||
|
|
||||||
|
## ⚠ Новые 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`
|
||||||
|
|
||||||
|
### #14 `remot.dttb.ru`
|
||||||
|
- backend: KB=`10.0.0.43:21114` → live=`10.0.0.244:21114`
|
||||||
|
|
||||||
|
### #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.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 |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-npm.py`.*
|
||||||
37
audit/2026-05-24-objects-audit.md
Normal file
37
audit/2026-05-24-objects-audit.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-24
|
||||||
|
type: audit
|
||||||
|
source: scripts/kb-objects-audit.py
|
||||||
|
tags: [audit, objects, frontmatter, links]
|
||||||
|
score: 6
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB objects audit — 2026-05-24
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `6`**
|
||||||
|
|
||||||
|
- Проектов с frontmatter: **13/13** (0 проблем)
|
||||||
|
- NetBird online-пиров без проектной карточки: **3**
|
||||||
|
- Битых wiki-ссылок `[[...]]`: **0**
|
||||||
|
|
||||||
|
## 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-ссылки
|
||||||
|
|
||||||
|
✅ битых ссылок не найдено
|
||||||
13
audit/2026-05-24-proposed.md
Normal file
13
audit/2026-05-24-proposed.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-24
|
||||||
|
type: audit-proposed
|
||||||
|
source: kb-audit-propose.sh (Opus 4.7)
|
||||||
|
tags: [audit, proposed, inventory]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Предложенные правки inventory — 2026-05-24
|
||||||
|
|
||||||
|
Сгенерировано Claude Opus на основе [[2026-05-24-drift|drift-отчёта]].
|
||||||
|
**Правки НЕ применены.** Ревью — ты. Apply — вручную.
|
||||||
|
|
||||||
|
|
||||||
47
audit/2026-05-31-creds-drift.md
Normal file
47
audit/2026-05-31-creds-drift.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-31
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-creds.py
|
||||||
|
tags: [audit, creds, reachability]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Credentials reachability — 2026-05-31
|
||||||
|
|
||||||
|
Ping-проверка URL из [[../projects/dttb/credentials|credentials.md]].
|
||||||
|
Проверяется только reachability (HTTP status), не реальный логин.
|
||||||
|
|
||||||
|
- Всего URL: **20**
|
||||||
|
- ✓ Reachable: 17 / ⚠ 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.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://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://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`.*
|
||||||
83
audit/2026-05-31-dns-drift.md
Normal file
83
audit/2026-05-31-dns-drift.md
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-31
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-dns.py
|
||||||
|
tags: [audit, dns]
|
||||||
|
---
|
||||||
|
|
||||||
|
# DNS resolve audit — 2026-05-31
|
||||||
|
|
||||||
|
Резолвим все домены из NPM через публичный DNS (8.8.8.8) и локальный роутер (10.0.0.1).
|
||||||
|
|
||||||
|
- Всего доменов: **23**
|
||||||
|
- NXDOMAIN на 8.8.8.8: 2 / пустой ответ локально: 1 / split-horizon: 21
|
||||||
|
|
||||||
|
## ❌ 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 |
|
||||||
|
| `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 |
|
||||||
|
| `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 |
|
||||||
|
| `vpn.dttb.ru` | — | 10.0.0.195 |
|
||||||
|
| `z.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-dns.py`.*
|
||||||
72
audit/2026-05-31-drift.md
Normal file
72
audit/2026-05-31-drift.md
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-31
|
||||||
|
type: audit
|
||||||
|
source: kb-audit.py
|
||||||
|
tags: [audit, drift, infrastructure]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB drift audit — 2026-05-31
|
||||||
|
|
||||||
|
Сравнение живого `pct list` / `qm list` с [[../projects/dttb/proxmox-inventory|proxmox-inventory.md]]
|
||||||
|
|
||||||
|
- Живых гостей Proxmox: **40**
|
||||||
|
- Упомянуто в inventory: **39**
|
||||||
|
- В обоих: 38 / только в live: 2 / отсутствуют в live: 0
|
||||||
|
- Известны как удалённые: 1 (в `## 🗑️ Удалённые`)
|
||||||
|
|
||||||
|
## ⚠ В Proxmox есть, в inventory НЕТ (надо добавить)
|
||||||
|
|
||||||
|
| VMID | Type | Status | Name |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 131 | VM | stopped | ubuntu |
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
|
||||||
|
## ✓ Удалённые хосты (задокументированы): 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 | running | cloud-dttb |
|
||||||
|
| 113 | LXC | running | VaultWarden |
|
||||||
|
| 114 | LXC | running | LinkWarden |
|
||||||
|
| 115 | LXC | running | watchyourlan |
|
||||||
|
| 116 | LXC | running | rustdeskserver |
|
||||||
|
| 117 | LXC | running | 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 | running | debian |
|
||||||
|
| 127 | VM | running | haos-17.0 |
|
||||||
|
| 128 | LXC | stopped | profi-parser |
|
||||||
|
| 129 | VM | stopped | profi-parser-vm |
|
||||||
|
| 130 | VM | stopped | Zima-OS |
|
||||||
|
| 131 | VM | stopped | ubuntu |
|
||||||
|
| 132 | LXC | running | code-server |
|
||||||
|
| 133 | VM | stopped | s1c-buzharovo |
|
||||||
|
| 134 | LXC | running | ZnamSecurityBot |
|
||||||
|
| 136 | LXC | running | gitea |
|
||||||
|
| 137 | LXC | running | openclaw |
|
||||||
|
| 138 | LXC | running | vpn-proxy |
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
| 250 | VM | running | Nextcloud-AIO |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически сгенерировано `scripts/kb-audit.py`. Применять правки — вручную после ревью.*
|
||||||
221
audit/2026-05-31-health.md
Normal file
221
audit/2026-05-31-health.md
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-31
|
||||||
|
type: audit
|
||||||
|
source: kb-health.py
|
||||||
|
score: 1181
|
||||||
|
tags: [audit, health, metric]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB health — 2026-05-31
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `1181`**
|
||||||
|
Проверено файлов: 1132
|
||||||
|
|
||||||
|
## Разбивка
|
||||||
|
|
||||||
|
| Категория | Кол-во | Вес | Штраф |
|
||||||
|
|---|---:|---:|---:|
|
||||||
|
| broken_wikilinks | 14 | 10 | 140 |
|
||||||
|
| broken_paths | 76 | 10 | 760 |
|
||||||
|
| missing_frontmatter | 21 | 3 | 63 |
|
||||||
|
| orphan_files | 54 | 2 | 108 |
|
||||||
|
| undated_todos | 80 | 1 | 80 |
|
||||||
|
| duplicate_basenames | 6 | 5 | 30 |
|
||||||
|
| **ИТОГО** | | | **1181** |
|
||||||
|
|
||||||
|
## Битые wikilinks
|
||||||
|
|
||||||
|
| Откуда | `[[таргет]]` |
|
||||||
|
|---|---|
|
||||||
|
| `decisions/2026-05-26-omni-domain-and-update.md` | `[[feedback_spaceweb_dns_desync]]` |
|
||||||
|
| `decisions/2026-05-23-glavtorg-autologon-off.md` | `[[feedback_vmware_workstation_session]]` |
|
||||||
|
| `projects/dttb/finland-hostkey-vps.md` | `[[../../claude-memory/finland-vps-security]]` |
|
||||||
|
| `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-04-29-231939-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/happ-routing-roscomvpn.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-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-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-20-204621-давай-проверим-openvrt-benelux.md` | `snippets/clients/alexandr-benelux-amnezia-reinstall.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` |
|
||||||
|
| `notes/claude/2026-04-25-001105-на-сервере-glavtorg-можешь-запустить-виртулку-с-ам.md` | `projects/glavtorg/README.md` |
|
||||||
|
| `notes/claude/2026-05-23-123133-давай-проверим-openvrt-benelux.md` | `snippets/clients/alexandr-benelux-amnezia-reinstall.md` |
|
||||||
|
| `notes/claude/2026-04-24-230658-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-193827-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
|
||||||
|
| `notes/claude/2026-04-24-193827-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `projects/dttb/vpn-clients.md` |
|
||||||
|
| `notes/claude/2026-05-20-200220-давай-проверим-openvrt-benelux.md` | `projects/dttb/credentials.md` |
|
||||||
|
| `notes/claude/2026-05-27-102650-давай-проверим-openvrt-benelux.md` | `snippets/clients/alexandr-benelux-amnezia-reinstall.md` |
|
||||||
|
| `notes/claude/2026-04-29-180420-создадим-еще-одного-пользователя-подключение-к-vpn.md` | `snippets/clients/sergey-znamenskoye-happ-setup.md` |
|
||||||
|
| ... | +26 ещё |
|
||||||
|
|
||||||
|
## Без frontmatter (21)
|
||||||
|
|
||||||
|
- `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 — без бэклинков (54)
|
||||||
|
|
||||||
|
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
|
||||||
|
|
||||||
|
- `decisions/2026-05-14-buzharovo-watchdog-public-only.md`
|
||||||
|
- `decisions/2026-04-30-niikn-culture-gov-fakeip-fix.md`
|
||||||
|
- `decisions/2026-05-26-server-upgrade-z6-g4.md`
|
||||||
|
- `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md`
|
||||||
|
- `decisions/2026-05-26-omni-domain-and-update.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-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`
|
||||||
|
- `notes/ru-geoblocked-services.md`
|
||||||
|
- `projects/dttb/network-topology-diagram.md`
|
||||||
|
- `projects/glavtorg/instruction-yaroslav-autologon.md`
|
||||||
|
- `projects/benilux/credentials.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`
|
||||||
|
- `projects/niikn/proxmox.md`
|
||||||
|
- `projects/niikn/NIIKN-ChangeLog.md`
|
||||||
|
- `projects/niikn/npm.md`
|
||||||
|
- `projects/niikn/network-topology-diagram.md`
|
||||||
|
- `projects/niikn/NC-Talk-Setup.md`
|
||||||
|
- `projects/niikn/domofon.md`
|
||||||
|
- `projects/niikn/vpn.md`
|
||||||
|
- `projects/mmfb/mikrotik.md`
|
||||||
|
- ... +24 ещё
|
||||||
|
|
||||||
|
## TODO без даты (80 шт в 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/openwrt-4/README.md` — 6 шт
|
||||||
|
- `projects/buzharovo/severny-les-bot.md` — 6 шт
|
||||||
|
- `projects/dttb/vpn-clients.md` — 5 шт
|
||||||
|
- `projects/vishnevyy-sad/README.md` — 5 шт
|
||||||
|
- `claude-memory/mas-niikn.md` — 5 шт
|
||||||
|
- `decisions/2026-05-20-benelux-compromise.md` — 4 шт
|
||||||
|
- `projects/sergey/README.md` — 3 шт
|
||||||
|
- `projects/peredelki/README.md` — 3 шт
|
||||||
|
|
||||||
|
## Дубликаты имён (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`
|
||||||
|
- `proxmox-inventory.md`:
|
||||||
|
- `projects/dttb/proxmox-inventory.md`
|
||||||
|
- `projects/mmfb/proxmox-inventory.md`
|
||||||
|
- `credentials.md`:
|
||||||
|
- `projects/dttb/credentials.md`
|
||||||
|
- `projects/benilux/credentials.md`
|
||||||
|
- `projects/niikn/credentials.md`
|
||||||
|
- `projects/peredelki/credentials.md`
|
||||||
|
- `mikrotik.md`:
|
||||||
|
- `projects/niikn/mikrotik.md`
|
||||||
|
- `projects/mmfb/mikrotik.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
*Генерируется `scripts/kb-health.py`. JSON-версия в `audit/health-latest.json` для agent-loop.*
|
||||||
63
audit/2026-05-31-npm-drift.md
Normal file
63
audit/2026-05-31-npm-drift.md
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-31
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-npm.py
|
||||||
|
tags: [audit, drift, npm]
|
||||||
|
---
|
||||||
|
|
||||||
|
# NPM drift audit — 2026-05-31
|
||||||
|
|
||||||
|
Сверка [[../projects/dttb/npm-proxy-hosts|npm-proxy-hosts.md]] с NPM API (https://npm.dttb.ru).
|
||||||
|
|
||||||
|
- Живых proxy hosts: **23**
|
||||||
|
- В KB: **21**
|
||||||
|
- Совпадений: 21 / новых: 2 / удалённых из NPM: 0 / с изменениями: 3
|
||||||
|
|
||||||
|
## ⚠ Новые 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`
|
||||||
|
|
||||||
|
### #14 `remot.dttb.ru`
|
||||||
|
- backend: KB=`10.0.0.43:21114` → live=`10.0.0.244:21114`
|
||||||
|
|
||||||
|
### #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.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 |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-npm.py`.*
|
||||||
47
audit/2026-05-31-objects-audit.md
Normal file
47
audit/2026-05-31-objects-audit.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-31
|
||||||
|
type: audit
|
||||||
|
source: scripts/kb-objects-audit.py
|
||||||
|
tags: [audit, objects, frontmatter, links]
|
||||||
|
score: 39
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB objects audit — 2026-05-31
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `39`**
|
||||||
|
|
||||||
|
- Проектов с frontmatter: **14/14** (0 проблем)
|
||||||
|
- NetBird online-пиров без проектной карточки: **3**
|
||||||
|
- Битых wiki-ссылок `[[...]]`: **11**
|
||||||
|
|
||||||
|
## 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-05-26-omni-domain-and-update.md](decisions/2026-05-26-omni-domain-and-update.md) — `[[feedback_spaceweb_dns_desync]]` → нет такого файла
|
||||||
|
- [decisions/2026-05-23-glavtorg-autologon-off.md](decisions/2026-05-23-glavtorg-autologon-off.md) — `[[feedback_vmware_workstation_session]]` → нет такого файла
|
||||||
|
- [projects/dttb/finland-hostkey-vps.md](projects/dttb/finland-hostkey-vps.md) — `[[../../claude-memory/finland-vps-security]]` → нет такого файла
|
||||||
|
- [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/|метод]]` → нет такого файла
|
||||||
41
audit/2026-05-31-proposed.md
Normal file
41
audit/2026-05-31-proposed.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-31
|
||||||
|
type: audit-proposed
|
||||||
|
source: kb-audit-propose.sh (Opus 4.7)
|
||||||
|
tags: [audit, proposed, inventory]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Предложенные правки inventory — 2026-05-31
|
||||||
|
|
||||||
|
Сгенерировано Claude Opus на основе [[2026-05-31-drift|drift-отчёта]].
|
||||||
|
**Правки НЕ применены.** Ревью — ты. Apply — вручную.
|
||||||
|
|
||||||
|
План записан в `/root/.claude/plans/swift-tinkering-ladybug.md`. Кратко:
|
||||||
|
|
||||||
|
## 1. Резюме
|
||||||
|
В Proxmox добавился `LXC 139 severny-les`, а VMIDs **129 и 133** (раньше Clawdbot/clawdbot-1 в разделе «🗑️ Удалённые») **переиспользованы** под новые VM `profi-parser-vm` и `s1c-buzharovo`. Сводка/счётчики устарели и расходятся с телом таблиц.
|
||||||
|
|
||||||
|
## 2. Блоки правок
|
||||||
|
|
||||||
|
**A. Шапка** — дату обновления → 2026-05-31.
|
||||||
|
|
||||||
|
**B. Сводка** — пересчёт:
|
||||||
|
- VM: 15→**18** (5/13)
|
||||||
|
- LXC: 21→**22** (11/11)
|
||||||
|
- Итого: 36→**40** (16/24)
|
||||||
|
|
||||||
|
**C. Остановленные VM** — добавить две строки (129 `profi-parser-vm`, 133 `s1c-buzharovo`) с пометкой «VMID переиспользован».
|
||||||
|
|
||||||
|
**D. Запущенные LXC** — добавить блок `### LXC 139 — severny-les` (только статус + плейсхолдер «уточнить» для IP/CPU/RAM — данных в отчёте нет).
|
||||||
|
|
||||||
|
**E. Раздел «🗑️ Удалённые»** — к строкам 129/133 дописать **жирным**, что VMID переиспользованы (иначе кто-то решит, что они свободны).
|
||||||
|
|
||||||
|
Полные diff-блоки — в плане.
|
||||||
|
|
||||||
|
## 3. Предупреждения
|
||||||
|
|
||||||
|
- **VM 131 `ubuntu`** — drift-скрипт ошибочно пометил как «отсутствует». На деле он уже есть в inventory с пометкой «(новый, уточнить)». Править не нужно, но парсер `kb-audit.py` стоит починить.
|
||||||
|
- **CPU/RAM/диск/IP для 129, 133, 139** в drift-отчёте отсутствуют — в плане стоят плейсхолдеры. Перед коммитом дёрнуть `qm config 129/133` и `pct config 139` на pve.
|
||||||
|
- **`profi-parser-vm` (VM 129) vs `profi-parser` (LXC 128)** — похоже на миграцию парсера с LXC на VM, стоит уточнить.
|
||||||
|
- **`s1c-buzharovo` (VM 133)** — имя похоже на «1С buzharovo». Уже есть VM 111 (бывшая 1С, теперь Parsec) — возможно, это отдельное окружение 1С. Не утверждаю без подтверждения.
|
||||||
|
- Сводка и тело таблиц расходились ещё **до** drift'а — текущий пересчёт это попутно чинит.
|
||||||
52
audit/2026-06-07-creds-drift.md
Normal file
52
audit/2026-06-07-creds-drift.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-07
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-creds.py
|
||||||
|
tags: [audit, creds, reachability]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Credentials reachability — 2026-06-07
|
||||||
|
|
||||||
|
Ping-проверка URL из [[../projects/dttb/credentials|credentials.md]].
|
||||||
|
Проверяется только reachability (HTTP status), не реальный логин.
|
||||||
|
|
||||||
|
- Всего URL: **20**
|
||||||
|
- ✓ Reachable: 10 / ⚠ Questionable: 1 / ❌ Unreachable: 9
|
||||||
|
|
||||||
|
## ❌ Недоступные (проверить: сервер упал? URL поменялся?)
|
||||||
|
|
||||||
|
| URL | Status | Detail | Контекст |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `https://vps.sweb.ru` | FAIL | timed out | --------- ---------- URL https://vps.sweb.ru |
|
||||||
|
| `https://api.sweb.ru/domains/dns` | FAIL | timed out | ароль `1qaz!QAZ` API `https://api.sweb.ru/ |
|
||||||
|
| `https://mail.niikn.com` | FAIL | timed out | --------- ---------- URL https://mail.niikn.c |
|
||||||
|
| `https://edit.telegra.ph/auth/f1tfgzYpPpGlAr7cYHRzSeH59fYuNVB2V3fbCdypDc` | FAIL | [Errno 104] Connection reset by peer | Auth URL (вход в редактор) https://edit.telegra. |
|
||||||
|
| `https://api.telegra.ph/createPage` | FAIL | [Errno 104] Connection reset by peer | тся. Создание страницы: `POST https://api.telegra. |
|
||||||
|
| `https://api.telegra.ph/editPage` | FAIL | [Errno 104] Connection reset by peer | _token. Редактирование: `POST https://api.telegra. |
|
||||||
|
| `https://telegra.ph/Nastrojka-VPN-04-24-2` | FAIL | [Errno 104] Connection reset by peer | `. **Созданные страницы:** - https://telegra.ph/N |
|
||||||
|
| `https://api.netbird.io` | FAIL | timed out | C0AAXjN21NPvM` API URL `https://api.netbird. |
|
||||||
|
| `https://api.netbird.io/api/setup-keys` | FAIL | timed out | it":0,"ephemeral":false}' \ https://api.netbird. |
|
||||||
|
|
||||||
|
## ⚠ Нестандартный ответ
|
||||||
|
|
||||||
|
| URL | Status | Detail |
|
||||||
|
|---|---|---|
|
||||||
|
| `https://remot.dttb.ru/swagger/index.html` | 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 (сервер жив) |
|
||||||
|
| `http://192.168.1.22:81` | 200 | ✓ reachable |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-creds.py`.*
|
||||||
56
audit/2026-06-07-dns-drift.md
Normal file
56
audit/2026-06-07-dns-drift.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-07
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-dns.py
|
||||||
|
tags: [audit, dns]
|
||||||
|
---
|
||||||
|
|
||||||
|
# DNS resolve audit — 2026-06-07
|
||||||
|
|
||||||
|
Резолвим все домены из NPM через публичный DNS (8.8.8.8) и локальный роутер (10.0.0.1).
|
||||||
|
|
||||||
|
- Всего доменов: **25**
|
||||||
|
- NXDOMAIN на 8.8.8.8: 1 / пустой ответ локально: 1 / split-horizon: 0
|
||||||
|
|
||||||
|
## ❌ NXDOMAIN / не резолвится на 8.8.8.8 (публичный DNS)
|
||||||
|
|
||||||
|
| Домен | Локальный IP |
|
||||||
|
|---|---|
|
||||||
|
| `itilegent.ru` | (тоже нет) |
|
||||||
|
|
||||||
|
## ⚠ Пустой локальный резолв (роутер не знает)
|
||||||
|
|
||||||
|
- `itilegent.ru` (публичный: -)
|
||||||
|
|
||||||
|
## Полная таблица резолва
|
||||||
|
|
||||||
|
| Домен | 8.8.8.8 | 10.0.0.1 |
|
||||||
|
|---|---|---|
|
||||||
|
| `ai.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `bit.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `bitrix24.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `bot.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `git.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `home.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `ip.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `itilegent.ru` | — | — |
|
||||||
|
| `link.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `mail.dttb.ru` | 10.0.0.107 | 10.0.0.107 |
|
||||||
|
| `matrix.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `npm.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `office.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `omni.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `omni.umnybot.ru` | 176.62.183.186 | 176.62.183.186 |
|
||||||
|
| `plex.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `porteiner.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `pve.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `rec.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `remot.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `router.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `vpn.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `z.dttb.ru` | 10.0.0.195 | 10.0.0.195 |
|
||||||
|
| `zima.umnybot.ru` | 176.62.183.186 | 176.62.183.186 |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-dns.py`.*
|
||||||
71
audit/2026-06-07-drift.md
Normal file
71
audit/2026-06-07-drift.md
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-07
|
||||||
|
type: audit
|
||||||
|
source: kb-audit.py
|
||||||
|
tags: [audit, drift, infrastructure]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB drift audit — 2026-06-07
|
||||||
|
|
||||||
|
Сравнение живого `pct list` / `qm list` с [[../projects/dttb/proxmox-inventory|proxmox-inventory.md]]
|
||||||
|
|
||||||
|
- Живых гостей Proxmox: **40**
|
||||||
|
- Упомянуто в inventory: **40**
|
||||||
|
- В обоих: 39 / только в live: 1 / отсутствуют в live: 0
|
||||||
|
- Известны как удалённые: 1 (в `## 🗑️ Удалённые`)
|
||||||
|
|
||||||
|
## ⚠ В Proxmox есть, в inventory НЕТ (надо добавить)
|
||||||
|
|
||||||
|
| VMID | Type | Status | Name |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
|
||||||
|
## ✓ Удалённые хосты (задокументированы): 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 | running | cloud-dttb |
|
||||||
|
| 113 | LXC | running | VaultWarden |
|
||||||
|
| 114 | LXC | running | LinkWarden |
|
||||||
|
| 115 | LXC | running | watchyourlan |
|
||||||
|
| 116 | LXC | running | rustdeskserver |
|
||||||
|
| 117 | LXC | running | 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 | stopped | Zima-OS |
|
||||||
|
| 131 | VM | stopped | ubuntu |
|
||||||
|
| 132 | LXC | running | code-server |
|
||||||
|
| 133 | VM | stopped | s1c-buzharovo |
|
||||||
|
| 134 | LXC | running | ZnamSecurityBot |
|
||||||
|
| 136 | LXC | running | gitea |
|
||||||
|
| 137 | LXC | running | openclaw |
|
||||||
|
| 138 | LXC | stopped | vpn-proxy |
|
||||||
|
| 139 | LXC | running | severny-les |
|
||||||
|
| 250 | VM | running | Nextcloud-AIO |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически сгенерировано `scripts/kb-audit.py`. Применять правки — вручную после ревью.*
|
||||||
233
audit/2026-06-07-health.md
Normal file
233
audit/2026-06-07-health.md
Normal file
@@ -0,0 +1,233 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-07
|
||||||
|
type: audit
|
||||||
|
source: kb-health.py
|
||||||
|
score: 1720
|
||||||
|
tags: [audit, health, metric]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB health — 2026-06-07
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `1720`**
|
||||||
|
Проверено файлов: 1282
|
||||||
|
|
||||||
|
## Разбивка
|
||||||
|
|
||||||
|
| Категория | Кол-во | Вес | Штраф |
|
||||||
|
|---|---:|---:|---:|
|
||||||
|
| broken_wikilinks | 16 | 10 | 160 |
|
||||||
|
| broken_paths | 96 | 10 | 960 |
|
||||||
|
| missing_frontmatter | 22 | 3 | 66 |
|
||||||
|
| orphan_files | 58 | 2 | 116 |
|
||||||
|
| undated_todos | 388 | 1 | 388 |
|
||||||
|
| duplicate_basenames | 6 | 5 | 30 |
|
||||||
|
| **ИТОГО** | | | **1720** |
|
||||||
|
|
||||||
|
## Битые wikilinks
|
||||||
|
|
||||||
|
| Откуда | `[[таргет]]` |
|
||||||
|
|---|---|
|
||||||
|
| `decisions/2026-05-26-omni-domain-and-update.md` | `[[feedback_spaceweb_dns_desync]]` |
|
||||||
|
| `decisions/2026-05-23-glavtorg-autologon-off.md` | `[[feedback_vmware_workstation_session]]` |
|
||||||
|
| `projects/openwrt-4/credentials.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag]]` |
|
||||||
|
| `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-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-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` |
|
||||||
|
| `notes/claude/2026-04-25-001105-на-сервере-glavtorg-можешь-запустить-виртулку-с-ам.md` | `projects/glavtorg/README.md` |
|
||||||
|
| `notes/claude/2026-05-23-123133-давай-проверим-openvrt-benelux.md` | `snippets/clients/alexandr-benelux-amnezia-reinstall.md` |
|
||||||
|
| ... | +46 ещё |
|
||||||
|
|
||||||
|
## Без frontmatter (22)
|
||||||
|
|
||||||
|
- `decisions/2026-06-01-claude-remote-control-mobile.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 — без бэклинков (58)
|
||||||
|
|
||||||
|
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
|
||||||
|
|
||||||
|
- `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-05-26-server-upgrade-z6-g4.md`
|
||||||
|
- `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md`
|
||||||
|
- `decisions/2026-05-26-omni-domain-and-update.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-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`
|
||||||
|
- `notes/ru-geoblocked-services.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/benilux/credentials.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`
|
||||||
|
- `projects/niikn/proxmox.md`
|
||||||
|
- `projects/niikn/NIIKN-ChangeLog.md`
|
||||||
|
- `projects/niikn/npm.md`
|
||||||
|
- `projects/niikn/network-topology-diagram.md`
|
||||||
|
- ... +28 ещё
|
||||||
|
|
||||||
|
## TODO без даты (388 шт в 76 файлах)
|
||||||
|
|
||||||
|
- `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-05-31-183858-session.md` — 5 шт
|
||||||
|
- `notes/claude/2026-05-30-140307-session.md` — 5 шт
|
||||||
|
- `notes/claude/2026-05-31-153910-session.md` — 5 шт
|
||||||
|
- `notes/claude/2026-05-31-125729-session.md` — 5 шт
|
||||||
|
- `notes/claude/2026-05-31-111053-session.md` — 5 шт
|
||||||
|
- `notes/claude/2026-05-31-194441-session.md` — 5 шт
|
||||||
|
- `notes/claude/2026-06-01-213930-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.*
|
||||||
67
audit/2026-06-07-npm-drift.md
Normal file
67
audit/2026-06-07-npm-drift.md
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-07
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-npm.py
|
||||||
|
tags: [audit, drift, npm]
|
||||||
|
---
|
||||||
|
|
||||||
|
# NPM drift audit — 2026-06-07
|
||||||
|
|
||||||
|
Сверка [[../projects/dttb/npm-proxy-hosts|npm-proxy-hosts.md]] с NPM API (https://npm.dttb.ru).
|
||||||
|
|
||||||
|
- Живых proxy hosts: **25**
|
||||||
|
- В KB: **21**
|
||||||
|
- Совпадений: 21 / новых: 4 / удалённых из NPM: 0 / с изменениями: 3
|
||||||
|
|
||||||
|
## ⚠ Новые 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 |
|
||||||
|
| 30 | `omni.umnybot.ru` | `10.0.0.163:20128` | ✓ | on |
|
||||||
|
| 31 | `zima.umnybot.ru` | `10.0.0.190:80` | ✓ | 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=✓
|
||||||
|
|
||||||
|
## Полный живой список
|
||||||
|
|
||||||
|
| 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 |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-npm.py`.*
|
||||||
49
audit/2026-06-07-objects-audit.md
Normal file
49
audit/2026-06-07-objects-audit.md
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-07
|
||||||
|
type: audit
|
||||||
|
source: scripts/kb-objects-audit.py
|
||||||
|
tags: [audit, objects, frontmatter, links]
|
||||||
|
score: 45
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB objects audit — 2026-06-07
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `45`**
|
||||||
|
|
||||||
|
- Проектов с frontmatter: **14/14** (0 проблем)
|
||||||
|
- NetBird online-пиров без проектной карточки: **3**
|
||||||
|
- Битых wiki-ссылок `[[...]]`: **13**
|
||||||
|
|
||||||
|
## 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-05-26-omni-domain-and-update.md](decisions/2026-05-26-omni-domain-and-update.md) — `[[feedback_spaceweb_dns_desync]]` → нет такого файла
|
||||||
|
- [decisions/2026-05-23-glavtorg-autologon-off.md](decisions/2026-05-23-glavtorg-autologon-off.md) — `[[feedback_vmware_workstation_session]]` → нет такого файла
|
||||||
|
- [projects/openwrt-4/credentials.md](projects/openwrt-4/credentials.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag|памятка]]` → нет такого файла
|
||||||
|
- [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/|метод]]` → нет такого файла
|
||||||
123
audit/2026-06-07-proposed.md
Normal file
123
audit/2026-06-07-proposed.md
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-07
|
||||||
|
type: audit-proposed
|
||||||
|
source: kb-audit-propose.sh (Opus 4.7)
|
||||||
|
tags: [audit, proposed, inventory]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Предложенные правки inventory — 2026-06-07
|
||||||
|
|
||||||
|
Сгенерировано Claude Opus на основе [[2026-06-07-drift|drift-отчёта]].
|
||||||
|
**Правки НЕ применены.** Ревью — ты. Apply — вручную.
|
||||||
|
|
||||||
|
## 1. Краткое резюме
|
||||||
|
|
||||||
|
Аудит формально нашёл один drift (LXC 139 `severny-les` есть в Proxmox, нет в inventory), но прямое сравнение живого списка из отчёта с inventory выявило ещё **6 расхождений по статусу/идентичности**: 4 хоста стоят с неверным статусом (112/117/119/138), а VMID **129 и 133 переиспользованы** под новые гости (`profi-parser-vm`, `s1c-buzharovo`), хотя в inventory числятся как удалённые `Clawdbot`/`clawdbot-1`. Аудит-скрипт их не поймал, т.к. проверяет только наличие VMID в тексте, а не статус/имя.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Конкретные правки
|
||||||
|
|
||||||
|
### A. Добавить LXC 139 (главный drift из отчёта)
|
||||||
|
В раздел **🟢 Запущенные LXC**:
|
||||||
|
```diff
|
||||||
|
+### LXC 139 — severny-les
|
||||||
|
+| Параметр | Значение |
|
||||||
|
+|----------|----------|
|
||||||
|
+| Статус | 🟢 running |
|
||||||
|
+| IP | (уточнить — нет в отчёте) |
|
||||||
|
+| Назначение | (уточнить — нет в отчёте) |
|
||||||
|
```
|
||||||
|
|
||||||
|
### B. Статус живой ≠ inventory: 112 cloud-dttb (running)
|
||||||
|
Удалить из таблицы **🔴 Остановленные VM**:
|
||||||
|
```diff
|
||||||
|
-| 112 | cloud-dttb | 8 | 16 GB | 80 GB | — |
|
||||||
|
```
|
||||||
|
Добавить в **🟢 Запущенные VM**:
|
||||||
|
```diff
|
||||||
|
+### VM 112 — cloud-dttb
|
||||||
|
+| Параметр | Значение |
|
||||||
|
+|----------|----------|
|
||||||
|
+| Статус | 🟢 running |
|
||||||
|
+| CPU | 8 | RAM | 16 GB | Диск | 80 GB |
|
||||||
|
+| Назначение | (уточнить) |
|
||||||
|
```
|
||||||
|
|
||||||
|
### C. Статус: 117 motioneye и 119 myspeed (live running)
|
||||||
|
Удалить из таблицы **🔴 Остановленные LXC**:
|
||||||
|
```diff
|
||||||
|
-| 117 | motioneye | MotionEye NVR |
|
||||||
|
-| 119 | myspeed | Speed test мониторинг |
|
||||||
|
```
|
||||||
|
Добавить в **🟢 Запущенные LXC** (myspeed уже имеет IP 10.0.0.113? — нет, это watchyourlan; IP не брать):
|
||||||
|
```diff
|
||||||
|
+### LXC 117 — motioneye
|
||||||
|
+| Статус | 🟢 running | Назначение | MotionEye NVR |
|
||||||
|
+
|
||||||
|
+### LXC 119 — myspeed
|
||||||
|
+| Статус | 🟢 running | Назначение | Speed test мониторинг |
|
||||||
|
```
|
||||||
|
|
||||||
|
### D. Статус: 138 vpn-proxy (live stopped)
|
||||||
|
Удалить блок из **🟢 Запущенные LXC**:
|
||||||
|
```diff
|
||||||
|
-### LXC 138 — vpn-proxy
|
||||||
|
-| Статус | 🟢 running |
|
||||||
|
-| IP | 10.0.0.141 (LAN) / 100.70.161.29 (NetBird) |
|
||||||
|
-| Назначение | VPN-proxy (детали уточнить) |
|
||||||
|
```
|
||||||
|
Добавить в **🔴 Остановленные LXC** (IP/NetBird можно сохранить в примечании):
|
||||||
|
```diff
|
||||||
|
+| 138 | vpn-proxy | VPN-proxy (LAN 10.0.0.141 / NetBird 100.70.161.29) |
|
||||||
|
```
|
||||||
|
|
||||||
|
### E. Переиспользование VMID 129 → profi-parser-vm
|
||||||
|
Сейчас 129 в **🗑️ Удалённые** = `Clawdbot`. Живой 129 = `profi-parser-vm` (VM, stopped).
|
||||||
|
Добавить в **🔴 Остановленные VM**:
|
||||||
|
```diff
|
||||||
|
+| 129 | profi-parser-vm | — | — | — | VM-вариант profi-parser (пара к LXC 128) |
|
||||||
|
```
|
||||||
|
Поправить строку истории (VMID освобождён ранее, теперь занят заново):
|
||||||
|
```diff
|
||||||
|
-| 129 | Clawdbot | ~апрель 2026 | Данные перенесены на code-server (132) ... IP 10.0.0.206 освобождён |
|
||||||
|
+| 129 | Clawdbot (старый) | ~апрель 2026 | Перенесён на code-server (132); **VMID 129 переиспользован под `profi-parser-vm`** |
|
||||||
|
```
|
||||||
|
|
||||||
|
### F. Переиспользование VMID 133 → s1c-buzharovo
|
||||||
|
Сейчас 133 в **🗑️ Удалённые** = `clawdbot-1`. Живой 133 = `s1c-buzharovo` (VM, stopped).
|
||||||
|
Добавить в **🔴 Остановленные VM**:
|
||||||
|
```diff
|
||||||
|
+| 133 | s1c-buzharovo | — | — | — | 1С-сервер Бужарово (уточнить) |
|
||||||
|
```
|
||||||
|
Поправить строку истории:
|
||||||
|
```diff
|
||||||
|
-| 133 | clawdbot-1 | ~апрель 2026 | Функционал мигрирован на openclaw (137) |
|
||||||
|
+| 133 | clawdbot-1 (старый) | ~апрель 2026 | Мигрирован на openclaw (137); **VMID 133 переиспользован под `s1c-buzharovo`** |
|
||||||
|
```
|
||||||
|
|
||||||
|
### G. Пересчёт сводки и даты
|
||||||
|
После правок главной ноды (250) живых гостей = 40 (18 VM / 22 LXC):
|
||||||
|
```diff
|
||||||
|
-| QEMU VM | 15 | 5 | 10 |
|
||||||
|
-| LXC | 21 | 11 | 10 |
|
||||||
|
-| **Итого** | **36** | **16** | **20** |
|
||||||
|
+| QEMU VM | 18 | 6 | 12 |
|
||||||
|
+| LXC | 22 | 12 | 10 |
|
||||||
|
+| **Итого** | **40** | **18** | **22** |
|
||||||
|
-> Последнее обновление: 2026-05-27 ...
|
||||||
|
+> Последнее обновление: 2026-06-07 (drift-аудит: +139, статусы 112/117/119/138, реюз VMID 129/133)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Предупреждения (неоднозначное)
|
||||||
|
|
||||||
|
- **VMID 129 и 133 переиспользованы** — критично. Перед фиксацией подтверди живьём: `qm config 129` / `qm config 133`. Возможно, старые `Clawdbot`/`clawdbot-1` были удалены, а номера переназначены новым гостям. Имена `profi-parser-vm` / `s1c-buzharovo` и назначение «1С Бужарово» — мои предположения по имени, в отчёте назначения нет.
|
||||||
|
- **Аудит недооценил drift**: `kb-audit.py` сверяет только наличие VMID, не статус и не имя. Расхождения B–F найдены ручным сравнением живого списка (он есть в отчёте) с inventory — не выдуманы.
|
||||||
|
- **139 severny-les**: в отчёте только VMID/тип/статус/имя. IP, ресурсы, назначение — НЕТ. Оставил `(уточнить)`, не выдумывал.
|
||||||
|
- **IP/ресурсы для 112/117/119**: в отчёте отсутствуют, в блоках не заполнял.
|
||||||
|
- **Вторая нода 10.0.0.147** ([[proxmox-pve-147]], VM 100 ZimaOS / LXC 101 NPM) drift-отчётом НЕ покрыта (отчёт по ноде .250). Её записи не трогать — иначе пересечётся с VM 100 `NV` / LXC 101 `n8n` главной ноды.
|
||||||
|
- В текущем inventory уже есть внутреннее расхождение (сводка «10 stopped VM», а в таблице 11) — правка G его заодно устраняет.
|
||||||
|
|
||||||
|
Файл не правил — это только предложения к ревью.
|
||||||
47
audit/2026-06-14-creds-drift.md
Normal file
47
audit/2026-06-14-creds-drift.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-14
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-creds.py
|
||||||
|
tags: [audit, creds, reachability]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Credentials reachability — 2026-06-14
|
||||||
|
|
||||||
|
Ping-проверка URL из [[../projects/dttb/credentials|credentials.md]].
|
||||||
|
Проверяется только reachability (HTTP status), не реальный логин.
|
||||||
|
|
||||||
|
- Всего URL: **20**
|
||||||
|
- ✓ Reachable: 17 / ⚠ 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.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://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://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`.*
|
||||||
90
audit/2026-06-14-dns-drift.md
Normal file
90
audit/2026-06-14-dns-drift.md
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-14
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-dns.py
|
||||||
|
tags: [audit, dns]
|
||||||
|
---
|
||||||
|
|
||||||
|
# DNS resolve audit — 2026-06-14
|
||||||
|
|
||||||
|
Резолвим все домены из NPM через публичный DNS (8.8.8.8) и локальный роутер (10.0.0.1).
|
||||||
|
|
||||||
|
- Всего доменов: **29**
|
||||||
|
- NXDOMAIN на 8.8.8.8: 2 / пустой ответ локально: 1 / split-horizon: 22
|
||||||
|
|
||||||
|
## ❌ 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 |
|
||||||
|
| `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` | 176.62.183.186 | 176.62.183.186 |
|
||||||
|
| `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` | 176.62.183.186 | 176.62.183.186 |
|
||||||
|
| `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` | 176.62.183.186 | 176.62.183.186 |
|
||||||
|
| `swarm.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
|
||||||
|
| `tg.umnybot.ru` | 176.62.183.186 | 176.62.183.186 |
|
||||||
|
| `vpn.dttb.ru` | — | 10.0.0.195 |
|
||||||
|
| `z.dttb.ru` | 176.62.183.186 | 10.0.0.195 |
|
||||||
|
| `zima.umnybot.ru` | 176.62.183.186 | 176.62.183.186 |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-dns.py`.*
|
||||||
70
audit/2026-06-14-drift.md
Normal file
70
audit/2026-06-14-drift.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-14
|
||||||
|
type: audit
|
||||||
|
source: kb-audit.py
|
||||||
|
tags: [audit, drift, infrastructure]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB drift audit — 2026-06-14
|
||||||
|
|
||||||
|
Сравнение живого `pct list` / `qm list` с [[../projects/dttb/proxmox-inventory|proxmox-inventory.md]]
|
||||||
|
|
||||||
|
- Живых гостей Proxmox: **41**
|
||||||
|
- Упомянуто в inventory: **40**
|
||||||
|
- В обоих: 40 / только в 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 | stopped | 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 |
|
||||||
|
| 250 | VM | running | Nextcloud-AIO |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически сгенерировано `scripts/kb-audit.py`. Применять правки — вручную после ревью.*
|
||||||
236
audit/2026-06-14-health.md
Normal file
236
audit/2026-06-14-health.md
Normal file
@@ -0,0 +1,236 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-14
|
||||||
|
type: audit
|
||||||
|
source: kb-health.py
|
||||||
|
score: 2043
|
||||||
|
tags: [audit, health, metric]
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB health — 2026-06-14
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `2043`**
|
||||||
|
Проверено файлов: 1416
|
||||||
|
|
||||||
|
## Разбивка
|
||||||
|
|
||||||
|
| Категория | Кол-во | Вес | Штраф |
|
||||||
|
|---|---:|---:|---:|
|
||||||
|
| broken_wikilinks | 18 | 10 | 180 |
|
||||||
|
| broken_paths | 117 | 10 | 1170 |
|
||||||
|
| missing_frontmatter | 23 | 3 | 69 |
|
||||||
|
| orphan_files | 60 | 2 | 120 |
|
||||||
|
| undated_todos | 474 | 1 | 474 |
|
||||||
|
| duplicate_basenames | 6 | 5 | 30 |
|
||||||
|
| **ИТОГО** | | | **2043** |
|
||||||
|
|
||||||
|
## Битые wikilinks
|
||||||
|
|
||||||
|
| Откуда | `[[таргет]]` |
|
||||||
|
|---|---|
|
||||||
|
| `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]]` |
|
||||||
|
| `projects/openwrt-4/credentials.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag]]` |
|
||||||
|
| `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` |
|
||||||
|
| ... | +67 ещё |
|
||||||
|
|
||||||
|
## Без 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 — без бэклинков (60)
|
||||||
|
|
||||||
|
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
|
||||||
|
|
||||||
|
- `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-05-26-server-upgrade-z6-g4.md`
|
||||||
|
- `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md`
|
||||||
|
- `decisions/2026-05-26-omni-domain-and-update.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`
|
||||||
|
- `notes/ru-geoblocked-services.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`
|
||||||
|
- `projects/niikn/proxmox.md`
|
||||||
|
- `projects/niikn/NIIKN-ChangeLog.md`
|
||||||
|
- ... +30 ещё
|
||||||
|
|
||||||
|
## TODO без даты (474 шт в 92 файлах)
|
||||||
|
|
||||||
|
- `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 шт
|
||||||
|
- `notes/claude/2026-05-30-140307-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.*
|
||||||
70
audit/2026-06-14-npm-drift.md
Normal file
70
audit/2026-06-14-npm-drift.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-14
|
||||||
|
type: audit
|
||||||
|
source: kb-audit-npm.py
|
||||||
|
tags: [audit, drift, npm]
|
||||||
|
---
|
||||||
|
|
||||||
|
# NPM drift audit — 2026-06-14
|
||||||
|
|
||||||
|
Сверка [[../projects/dttb/npm-proxy-hosts|npm-proxy-hosts.md]] с NPM API (https://npm.dttb.ru).
|
||||||
|
|
||||||
|
- Живых proxy hosts: **29**
|
||||||
|
- В KB: **26**
|
||||||
|
- Совпадений: 26 / новых: 3 / удалённых из NPM: 0 / с изменениями: 3
|
||||||
|
|
||||||
|
## ⚠ Новые 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 |
|
||||||
|
|
||||||
|
## 🔄 Изменения (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=✓
|
||||||
|
|
||||||
|
## Полный живой список
|
||||||
|
|
||||||
|
| 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.190:3000` | ✓ | on |
|
||||||
|
| 34 | `rustdesk.umnybot.ru` | `10.0.0.190:3005` | ✓ | on |
|
||||||
|
| 35 | `ai.umnybot.ru` | `10.0.0.239:9119` | ✓ | on |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Автоматически через `scripts/kb-audit-npm.py`.*
|
||||||
51
audit/2026-06-14-objects-audit.md
Normal file
51
audit/2026-06-14-objects-audit.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-14
|
||||||
|
type: audit
|
||||||
|
source: scripts/kb-objects-audit.py
|
||||||
|
tags: [audit, objects, frontmatter, links]
|
||||||
|
score: 51
|
||||||
|
---
|
||||||
|
|
||||||
|
# KB objects audit — 2026-06-14
|
||||||
|
|
||||||
|
**Score (меньше = лучше): `51`**
|
||||||
|
|
||||||
|
- Проектов с frontmatter: **14/14** (0 проблем)
|
||||||
|
- NetBird online-пиров без проектной карточки: **3**
|
||||||
|
- Битых wiki-ссылок `[[...]]`: **15**
|
||||||
|
|
||||||
|
## 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-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]]` → нет такого файла
|
||||||
|
- [projects/openwrt-4/credentials.md](projects/openwrt-4/credentials.md) — `[[../../.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag|памятка]]` → нет такого файла
|
||||||
|
- [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/|метод]]` → нет такого файла
|
||||||
120
audit/2026-06-14-proposed.md
Normal file
120
audit/2026-06-14-proposed.md
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
---
|
||||||
|
date: 2026-06-14
|
||||||
|
type: audit-proposed
|
||||||
|
source: kb-audit-propose.sh (Opus 4.7)
|
||||||
|
tags: [audit, proposed, inventory]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Предложенные правки inventory — 2026-06-14
|
||||||
|
|
||||||
|
Сгенерировано Claude Opus на основе [[2026-06-14-drift|drift-отчёта]].
|
||||||
|
**Правки НЕ применены.** Ревью — ты. Apply — вручную.
|
||||||
|
|
||||||
|
## 1. Резюме
|
||||||
|
|
||||||
|
Drift минимальный по составу (скрипт нашёл 1 «лишнего» гостя — LXC 139 `severny-les`, его нет в inventory), но при ручной сверке полного живого списка вылезли **4 расхождения по статусам** (112, 119 — стали running; 134, 138 — стали stopped) и **2 конфликта переиспользования VMID** (129 и 133 числятся в «Удалённых», но live показывает на этих ID новые гостей). Сводная таблица и счётчики тоже устарели (37 → 41).
|
||||||
|
|
||||||
|
## 2. Конкретные правки
|
||||||
|
|
||||||
|
### A. Добавить LXC 139 `severny-les` (главная находка скрипта)
|
||||||
|
В раздел `## 🟢 Запущенные LXC`:
|
||||||
|
```diff
|
||||||
|
+### LXC 139 — severny-les
|
||||||
|
+| Параметр | Значение |
|
||||||
|
+|----------|----------|
|
||||||
|
+| Статус | 🟢 running |
|
||||||
|
+| IP | (уточнить) |
|
||||||
|
+| Назначение | (уточнить) |
|
||||||
|
```
|
||||||
|
⚠ В drift-отчёте есть только VMID/type/status/name — IP и назначение неизвестны, оставлены заглушки.
|
||||||
|
|
||||||
|
### B. Статус-дрифт VM 112 `cloud-dttb`: stopped → running
|
||||||
|
Удалить строку из `## 🔴 Остановленные VM`:
|
||||||
|
```diff
|
||||||
|
-| 112 | cloud-dttb | 8 | 16 GB | 80 GB | — |
|
||||||
|
```
|
||||||
|
Добавить блок в `## 🟢 Запущенные VM`:
|
||||||
|
```diff
|
||||||
|
+### VM 112 — cloud-dttb
|
||||||
|
+| Параметр | Значение |
|
||||||
|
+|----------|----------|
|
||||||
|
+| Статус | 🟢 running |
|
||||||
|
+| Назначение | — |
|
||||||
|
```
|
||||||
|
|
||||||
|
### C. Статус-дрифт LXC 119 `myspeed`: stopped → running
|
||||||
|
Удалить из `## 🔴 Остановленные LXC`:
|
||||||
|
```diff
|
||||||
|
-| 119 | myspeed | Speed test мониторинг |
|
||||||
|
```
|
||||||
|
Добавить в `## 🟢 Запущенные LXC`:
|
||||||
|
```diff
|
||||||
|
+### LXC 119 — myspeed
|
||||||
|
+| Параметр | Значение |
|
||||||
|
+|----------|----------|
|
||||||
|
+| Статус | 🟢 running |
|
||||||
|
+| Назначение | Speed test мониторинг |
|
||||||
|
```
|
||||||
|
|
||||||
|
### D. Статус-дрифт LXC 134 `ZnamSecurityBot`: running → stopped
|
||||||
|
Удалить блок из `## 🟢 Запущенные LXC` (весь блок «LXC 134 — ZnamSecurityBot»).
|
||||||
|
Добавить строку в `## 🔴 Остановленные LXC`:
|
||||||
|
```diff
|
||||||
|
+| 134 | ZnamSecurityBot | ZnamSecurity Telegram-бот |
|
||||||
|
```
|
||||||
|
|
||||||
|
### E. Статус-дрифт LXC 138 `vpn-proxy`: running → stopped
|
||||||
|
Удалить блок из `## 🟢 Запущенные LXC` (весь блок «LXC 138 — vpn-proxy»).
|
||||||
|
Добавить строку в `## 🔴 Остановленные LXC`:
|
||||||
|
```diff
|
||||||
|
+| 138 | vpn-proxy | VPN-proxy (детали уточнить) |
|
||||||
|
```
|
||||||
|
|
||||||
|
### F. Конфликт VMID 129 — переиспользован
|
||||||
|
Live: `129 VM stopped profi-parser-vm`. В inventory 129 числится в «🗑️ Удалённые» как `Clawdbot`.
|
||||||
|
Добавить в `## 🔴 Остановленные VM`:
|
||||||
|
```diff
|
||||||
|
+| 129 | profi-parser-vm | — | — | — | (новый, уточнить) |
|
||||||
|
```
|
||||||
|
И поправить историческую запись (ID переиспользован под новую VM):
|
||||||
|
```diff
|
||||||
|
-| 129 | Clawdbot | ~апрель 2026 | Данные перенесены ... IP 10.0.0.206 освобождён |
|
||||||
|
+| 129 | Clawdbot | ~апрель 2026 | Удалён; VMID 129 переиспользован под profi-parser-vm |
|
||||||
|
```
|
||||||
|
|
||||||
|
### G. Конфликт VMID 133 — переиспользован
|
||||||
|
Live: `133 VM stopped s1c-buzharovo`. В inventory 133 числится в «🗑️ Удалённые» как `clawdbot-1`.
|
||||||
|
Добавить в `## 🔴 Остановленные VM`:
|
||||||
|
```diff
|
||||||
|
+| 133 | s1c-buzharovo | — | — | — | (новый, уточнить) |
|
||||||
|
```
|
||||||
|
Поправить историческую запись:
|
||||||
|
```diff
|
||||||
|
-| 133 | clawdbot-1 | ~апрель 2026 | Функционал мигрирован на openclaw (137) |
|
||||||
|
+| 133 | clawdbot-1 | ~апрель 2026 | Удалён; VMID 133 переиспользован под s1c-buzharovo |
|
||||||
|
```
|
||||||
|
|
||||||
|
### H. Пересчитать сводную таблицу (по факту live = 41 гость)
|
||||||
|
```diff
|
||||||
|
-| QEMU VM | 15 | 5 | 10 |
|
||||||
|
-| LXC | 22 | 12 | 10 |
|
||||||
|
-| **Итого** | **37** | **17** | **20** |
|
||||||
|
+| QEMU VM | 18 | 6 | 12 |
|
||||||
|
+| LXC | 23 | 11 | 12 |
|
||||||
|
+| **Итого** | **41** | **17** | **24** |
|
||||||
|
```
|
||||||
|
(VM: running 106,107,111,112,127,250 = 6; LXC running 103,113,114,115,116,119,132,135,136,137,139 = 11.)
|
||||||
|
|
||||||
|
### I. Обновить дату
|
||||||
|
```diff
|
||||||
|
-> Последнее обновление: 2026-06-08 (добавлен LXC 135 swarmclaw)
|
||||||
|
+> Последнее обновление: 2026-06-14 (drift-аудит: +LXC 139; статусы 112/119/134/138; VMID 129/133 переиспользованы)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Предупреждения / неоднозначности
|
||||||
|
|
||||||
|
- **Нет данных в отчёте** для IP/назначения у: 139 `severny-les`, 129 `profi-parser-vm`, 133 `s1c-buzharovo`. Я оставил «уточнить» — заполнять вручную, не выдумывать.
|
||||||
|
- **Статус-дрифты (B–E) скрипт НЕ флагал** — он сверяет только присутствие/тип, не статус. Найдено вручную по «Полному живому списку» отчёта. Статус — вещь динамическая (могли просто запустить/остановить); прежде чем двигать блоки, убедись что это устойчивое состояние, а не разовый запуск.
|
||||||
|
- **VMID 135**: в «Удалённых» есть `whisper-bot (135)`, а live/активный inventory — `swarmclaw (135)`. Это уже корректно отражено в активном разделе; запись в истории трогать не обязательно (просто факт переиспользования ID).
|
||||||
|
- **Второй нода 10.0.0.147**: в шапке упомянуты VM 100 / LXC 101 на standalone-ноде. В live-списке 100=`NV`, 101=`n8n` — это ID основной ноды. Drift-отчёт сверяет только основную ноду, расхождение по второй ноде здесь не оценивается.
|
||||||
|
- Блоки B и F (oба VM с минимумом полей) даны в сокращённом виде — CPU/RAM/диск в отчёте отсутствуют.
|
||||||
52
audit/2026-06-21-creds-drift.md
Normal file
52
audit/2026-06-21-creds-drift.md
Normal 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`.*
|
||||||
93
audit/2026-06-21-dns-drift.md
Normal file
93
audit/2026-06-21-dns-drift.md
Normal 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
72
audit/2026-06-21-drift.md
Normal 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
241
audit/2026-06-21-health.md
Normal 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.*
|
||||||
76
audit/2026-06-21-npm-drift.md
Normal file
76
audit/2026-06-21-npm-drift.md
Normal 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`.*
|
||||||
56
audit/2026-06-21-objects-audit.md
Normal file
56
audit/2026-06-21-objects-audit.md
Normal 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/|метод]]` → нет такого файла
|
||||||
98
audit/2026-06-21-proposed.md
Normal file
98
audit/2026-06-21-proposed.md
Normal 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-режима) или отдать готовый патч.
|
||||||
55
audit/2026-06-28-creds-drift.md
Normal file
55
audit/2026-06-28-creds-drift.md
Normal file
@@ -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`.*
|
||||||
101
audit/2026-06-28-dns-drift.md
Normal file
101
audit/2026-06-28-dns-drift.md
Normal file
@@ -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`.*
|
||||||
76
audit/2026-06-28-drift.md
Normal file
76
audit/2026-06-28-drift.md
Normal file
@@ -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`. Применять правки — вручную после ревью.*
|
||||||
254
audit/2026-06-28-health.md
Normal file
254
audit/2026-06-28-health.md
Normal file
@@ -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.*
|
||||||
80
audit/2026-06-28-npm-drift.md
Normal file
80
audit/2026-06-28-npm-drift.md
Normal file
@@ -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`.*
|
||||||
67
audit/2026-06-28-objects-audit.md
Normal file
67
audit/2026-06-28-objects-audit.md
Normal file
@@ -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/<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-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]]` → нет такого файла
|
||||||
124
audit/2026-06-28-proposed.md
Normal file
124
audit/2026-06-28-proposed.md
Normal file
@@ -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 или дай добро).
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"date": "2026-05-03",
|
"date": "2026-06-28",
|
||||||
"score": 458,
|
"score": 2800,
|
||||||
"counts": {
|
"counts": {
|
||||||
"broken_wikilinks": 7,
|
"broken_wikilinks": 31,
|
||||||
"broken_paths": 20,
|
"broken_paths": 171,
|
||||||
"missing_frontmatter": 17,
|
"missing_frontmatter": 25,
|
||||||
"orphan_files": 38,
|
"orphan_files": 68,
|
||||||
"undated_todos": 36,
|
"undated_todos": 534,
|
||||||
"duplicate_basenames": 5
|
"duplicate_basenames": 7
|
||||||
},
|
},
|
||||||
"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": 327
|
"files_scanned": 1754
|
||||||
}
|
}
|
||||||
1075
audit/objects-map.json
Normal file
1075
audit/objects-map.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -4,21 +4,20 @@ description: OmniRoute v3.6.5 на LXC 132 (10.0.0.179) — AI-шлюз для 6
|
|||||||
type: project
|
type: project
|
||||||
originSessionId: 9f26284f-db92-456f-813d-fd8210b7d7b6
|
originSessionId: 9f26284f-db92-456f-813d-fd8210b7d7b6
|
||||||
---
|
---
|
||||||
## OmniRoute v3.6.9+ (LXC 132, 10.0.0.179)
|
## OmniRoute v3.6.5 (LXC 132, 10.0.0.179)
|
||||||
|
|
||||||
- **Путь**: /root/OmniRoute/, Node.js 22, Next.js 16.2, git repo (github.com/diegosouzapw/OmniRoute)
|
- **Путь**: /root/OmniRoute/, Node.js 22, Next.js 16.2, git repo (github.com/diegosouzapw/OmniRoute)
|
||||||
- **Dashboard**: http://10.0.0.179:20128, пароль: 1qaz!QAZ
|
- **Dashboard**: http://10.0.0.179:20128, пароль: 1qaz!QAZ
|
||||||
- **API**: http://10.0.0.179:20128/v1 (или https://ai.dttb.ru/v1 публично через NPM с Bearer)
|
- **API**: http://10.0.0.179:20128/v1
|
||||||
- **API Key**: `sk-225e902dc95ff192-6bdad7-3ec8cdc6` (test-key) / `sk-225e902dc95ff192-e71c19-7cc9283e` (claw)
|
- **API Key**: sk-225e902dc95ff192-6bdad7-3ec8cdc6
|
||||||
- **SQLite DB**: /root/.omniroute/storage.sqlite
|
- **SQLite DB**: /root/.omniroute/storage.sqlite
|
||||||
- **Service**: omniroute.service (systemd, enabled), запускает **npx-кэш** (НЕ git repo)
|
- **Service**: omniroute.service (systemd, enabled), запускает **npx-кэш** (НЕ git repo)
|
||||||
- **ExecStart**: `/usr/bin/node /root/.npm/_npx/<hash>/node_modules/omniroute/app/server.js` (hash меняется при обновлении)
|
- **ExecStart**: `/usr/bin/node /root/.npm/_npx/<hash>/node_modules/omniroute/app/server.js` (hash меняется при обновлении)
|
||||||
- **Конфиг**: /root/OmniRoute/.env (секреты сгенерированы)
|
- **Конфиг**: /root/OmniRoute/.env (секреты сгенерированы)
|
||||||
- **Каталог моделей**: 145+ моделей (на 2026-05-06)
|
|
||||||
|
|
||||||
### SSH доступ к LXC 132
|
### SSH доступ к LXC 132
|
||||||
- **Прямой SSH** `ssh root@10.0.0.179` — РАБОТАЕТ если на машине есть claude-code ключ (на Mac Олега есть)
|
- **Прямой SSH (root@10.0.0.179) НЕ РАБОТАЕТ** — пароль 1qaz!QAZ не подходит, ключ claude-code отсутствует
|
||||||
- **Через Proxmox**: `sshpass -p '1qaz!QAZ' ssh root@10.0.0.250 "pct exec 132 -- bash -c 'COMMAND'"` — РАБОТАЕТ всегда
|
- **Доступ через Proxmox**: `sshpass -p '1qaz!QAZ' ssh root@10.0.0.250 "pct exec 132 -- bash -c 'COMMAND'"` — РАБОТАЕТ
|
||||||
- **Hostname**: code-server
|
- **Hostname**: code-server
|
||||||
|
|
||||||
### Обновление OmniRoute (npx способ — используется сервисом)
|
### Обновление OmniRoute (npx способ — используется сервисом)
|
||||||
@@ -31,34 +30,18 @@ originSessionId: 9f26284f-db92-456f-813d-fd8210b7d7b6
|
|||||||
### Обновление git-репозитория (отдельно, для разработки)
|
### Обновление git-репозитория (отдельно, для разработки)
|
||||||
1. `cd /root/OmniRoute && git pull origin main && npm install && npm run build`
|
1. `cd /root/OmniRoute && git pull origin main && npm install && npm run build`
|
||||||
|
|
||||||
### Подключённые провайдеры (актуально 2026-05-06)
|
### Подключённые провайдеры (2026-04-11)
|
||||||
| Префикс | Провайдер | Модели Opus | Статус |
|
| Провайдер | Аккаунт | Модели | Статус |
|
||||||
|---------|-----------|-------------|--------|
|
|-----------|---------|--------|--------|
|
||||||
| **`cc/`** | Claude Code OAuth (Max-подписка) | **claude-opus-4-7**, opus-4-6, sonnet-4-6, sonnet-4-5, haiku-4-5 | ✅ Primary path к Opus |
|
| Codex (OpenAI) | batlaew@gmail.com (free plan) | gpt-5.4, gpt-5.4-mini | Работает, refresh проблема |
|
||||||
| `claude/` | прямой Anthropic API (платный) | claude-opus-4-7, opus-4-6, sonnet-4-6, haiku-4-5 | ✅ Резерв per-token |
|
| Claude | OAuth | claude-opus-4-6, sonnet | Токен есть, refresh проблема |
|
||||||
| `kr/` | Kiro/AWS Bedrock | sonnet-4.5 (Opus НЕТ) | ✅ для Sonnet, ❌ Opus |
|
| Kiro (AWS) | OAuth | claude-sonnet-4.5, haiku | Токен есть, refresh проблема |
|
||||||
| `cx/` | Codex (OpenAI free) | gpt-5.4, gpt-5.4-mini, gpt-5.5 | ✅ для GPT |
|
|
||||||
| `gh/` | GitHub Copilot integrator (MS) | sonnet-4.5/4.6, ~~opus-4.6~~, ~~opus-4.7~~ | ⚠️ Sonnet работает, Opus сломан (см. ниже) |
|
|
||||||
| `antigravity/` | Google Antigravity | opus-4-6-thinking | ❌ Нужен OAuth reconnect (projectId пуст) |
|
|
||||||
| `kc/` `kilocode/` | KiloCode aggregator | opus-4.7 | ❌ Empty response |
|
|
||||||
| `glm/` | Zhipu Z.ai | glm-5.1 | ✅ |
|
|
||||||
|
|
||||||
### Главный путь к Opus 4.7 — `omniroute/cc/claude-opus-4-7`
|
|
||||||
|
|
||||||
Через **CLIProxy + Claude Code OAuth + Max-подписку**. Фиксированная стоимость, без per-token. Подтверждено 2026-05-06: smoke-test вернул корректный ответ от `claude-opus-4-7`. См. [[../decisions/2026-05-06-openclaw-opus-4-7-via-max-cliproxy]].
|
|
||||||
|
|
||||||
### Известные сломы
|
|
||||||
|
|
||||||
- **`gh/claude-opus-4.6`**: MS Copilot integrator убрал Opus 4.6 из своего scope, отдаёт «model not available for integrator vscode-chat»
|
|
||||||
- **`gh/claude-opus-4.7`**: ID mismatch — OmniRoute шлёт `4.7`, MS ждёт `4-7` (точка vs дефис). Баг текущей версии OmniRoute. Workaround: использовать `cc/claude-opus-4-7` пока не починят.
|
|
||||||
- **`antigravity/*`**: возвращает `"Missing Google projectId for Antigravity account. Please reconnect OAuth in Providers → Antigravity"`. Триггер из [[user_profile]]: до OAuth нужен вход на antigravity.google и создание Cloud Code project.
|
|
||||||
|
|
||||||
### Использование
|
### Использование
|
||||||
|
- Prefix модели: `cx/gpt-5.4` (Codex), `cc/claude-opus-4-6` (Claude)
|
||||||
- Prefix модели в API: `cc/claude-opus-4-7`, `kr/claude-sonnet-4.5`, `cx/gpt-5.4`
|
- 181 модель доступна через API (на 2026-04-14)
|
||||||
- Codex OAuth callback: localhost:1455 (нужен SSH-туннель для удалённого онбординга)
|
- Codex OAuth: callback на localhost:1455 (нужен SSH-туннель для удалённого доступа)
|
||||||
- Token refresh: периодическая перелогинка OAuth — проверять Dashboard → Providers
|
- Token refresh: требует периодическую перелогинку OAuth
|
||||||
- Health-check moniter: на LXC 132 в `journalctl -u omniroute -f` смотреть USAGE/STREAM строки
|
|
||||||
|
|
||||||
### Важно
|
### Важно
|
||||||
- OAuth Codex привязан к localhost:1455 — для удалённого доступа: `ssh -L 20128:localhost:20128 -L 1455:localhost:1455 root@10.0.0.179`
|
- OAuth Codex привязан к localhost:1455 — для удалённого доступа: `ssh -L 20128:localhost:20128 -L 1455:localhost:1455 root@10.0.0.179`
|
||||||
|
|||||||
@@ -68,6 +68,18 @@ Vault `~/knowledge-base` хранился только в Gitea (`git.dttb.ru/ol
|
|||||||
|
|
||||||
**openclaw read-only** через `git remote set-url --push origin DISABLED_READONLY` — любая попытка push из бота завершится ошибкой "Could not resolve host", случайно перезаписать не сможет.
|
**openclaw read-only** через `git remote set-url --push origin DISABLED_READONLY` — любая попытка push из бота завершится ошибкой "Could not resolve host", случайно перезаписать не сможет.
|
||||||
|
|
||||||
|
### Нормализация на code-server (2026-05-26)
|
||||||
|
|
||||||
|
Обнаружено что на LXC 132 параллельно существовали **два независимых клона** одного репо:
|
||||||
|
- `/root/knowledge-base/` — рабочий, `git.dttb.ru` remote, обслуживался `kb-autosync.sh` cron'ом
|
||||||
|
- `/root/.claude/knowledge-base/` — отдельный клон, `10.0.0.189:3000` remote, использовался Claude Code и Obsidian, **отстал от remote на 1.5 месяца (239 коммитов)**
|
||||||
|
|
||||||
|
При попытке push с Claude-клона: rebase-каскад на сотни файлов, конфликты. Это нестабильно.
|
||||||
|
|
||||||
|
**Решение:** `/root/.claude/knowledge-base/` → симлинк на `/root/knowledge-base/`. Старый клон сохранён как `/root/.claude/knowledge-base.bak-2026-05-26` (на случай если что-то нужно достать). Все процессы теперь пишут в **один git-репо**, cron каждые 5 минут реально синхронизирует то что наработал Claude Code.
|
||||||
|
|
||||||
|
Также: на LXC 136 (Gitea) сетевой настройкой стояло `ip=dhcp` — DHCP выдал `.191` вместо `.189`, push с code-server возвращал `Couldn't connect`. Заменено на `ip=10.0.0.189/24,gw=10.0.0.1` (статика).
|
||||||
|
|
||||||
### Компоненты
|
### Компоненты
|
||||||
|
|
||||||
- **`/Users/ai/.config/nextcloud-kb/rclone.conf`** — WebDAV ремоут `kbsync:` на `https://dttb.ru/remote.php/dav/files/admin`, app password в obscured виде
|
- **`/Users/ai/.config/nextcloud-kb/rclone.conf`** — WebDAV ремоут `kbsync:` на `https://dttb.ru/remote.php/dav/files/admin`, app password в obscured виде
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ tags: [decision, niikn, network, dns, podkop]
|
|||||||
|
|
||||||
## Диагноз
|
## Диагноз
|
||||||
|
|
||||||
По алгоритму [[notes/govru-diagnosis]]:
|
По алгоритму [[../projects/niikn/govru-quickfix-playbook]]:
|
||||||
|
|
||||||
| Точка | HTTP | Real IP |
|
| Точка | HTTP | Real IP |
|
||||||
|-------|------|---------|
|
|-------|------|---------|
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ RustDesk при первом запуске парсит своё имя фай
|
|||||||
|
|
||||||
## TODO / следующие шаги
|
## TODO / следующие шаги
|
||||||
|
|
||||||
- [ ] Олег создаёт public share-link в Nextcloud (с паролем), кладёт ссылку в [[../snippets/clients/]]
|
- [ ] Олег создаёт public share-link в Nextcloud (с паролем), кладёт ссылку в `snippets/clients/`
|
||||||
- [ ] Подготовить **one-liner-скрипты** на сервере (NPM static path `/install/` → S3 или rustdesk-api resources/public)
|
- [ ] Подготовить **one-liner-скрипты** на сервере (NPM static path `/install/` → S3 или rustdesk-api resources/public)
|
||||||
- [ ] **Configuration Strategy** в админке lejianwen-api — push config existing peers
|
- [ ] **Configuration Strategy** в админке lejianwen-api — push config existing peers
|
||||||
- [ ] Скачать `rustdesk-utils` 2.x (lejianwen-pro) для генерации `rustdesk-licensed-*.exe` — single-file deployment без скриптов
|
- [ ] Скачать `rustdesk-utils` 2.x (lejianwen-pro) для генерации `rustdesk-licensed-*.exe` — single-file deployment без скриптов
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ tags: [decision, niikn, network, dns, podkop]
|
|||||||
|
|
||||||
## Диагноз
|
## Диагноз
|
||||||
|
|
||||||
По алгоритму [[notes/govru-diagnosis]]:
|
По алгоритму [[../projects/niikn/govru-quickfix-playbook]]:
|
||||||
|
|
||||||
| Точка | HTTP | Real IP |
|
| Точка | HTTP | Real IP |
|
||||||
|-------|------|---------|
|
|-------|------|---------|
|
||||||
|
|||||||
@@ -75,6 +75,6 @@ ssh root@10.0.0.1 "cp /etc/adguardhome.yaml.bak.20260430_001129 /etc/adguardhome
|
|||||||
## Ссылки
|
## Ссылки
|
||||||
|
|
||||||
- [[../projects/dttb/openwrt-router]] — карточка роутера
|
- [[../projects/dttb/openwrt-router]] — карточка роутера
|
||||||
- [[../claude-memory/podkop]] — справка по подкопу (схемы AGH, fakeip 198.18.0.0/15)
|
- [[2026-04-17-peredelki-podkop-stability-fix]] — справка по подкопу (схемы AGH, fakeip 198.18.0.0/15)
|
||||||
- https://podkop.net/docs/adguard/
|
- https://podkop.net/docs/adguard/
|
||||||
- https://podkop.net/docs/dont-touch-my-dhcp/
|
- https://podkop.net/docs/dont-touch-my-dhcp/
|
||||||
|
|||||||
@@ -148,4 +148,4 @@ Grizzlysms TJ-pool **полностью забанен** Apple на текущи
|
|||||||
|
|
||||||
- [[../README]] — индекс vault
|
- [[../README]] — индекс vault
|
||||||
- TODO в MEMORY был «отложено с 2026-04-23», теперь активирован.
|
- TODO в MEMORY был «отложено с 2026-04-23», теперь активирован.
|
||||||
- Решение по [[../snippets/clients/]] для US Apple ID на RU iPhone — структурно тот же подход (proxy + foreign SMS).
|
- Решение по `snippets/clients/` для US Apple ID на RU iPhone — структурно тот же подход (proxy + foreign SMS).
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
|
|
||||||
5. **ffmpeg avfoundation `:0`** = default mic. Если нужен другой — `ffmpeg -f avfoundation -list_devices true -i ""`.
|
5. **ffmpeg avfoundation `:0`** = default mic. Если нужен другой — `ffmpeg -f avfoundation -list_devices true -i ""`.
|
||||||
|
|
||||||
|
6. **PATH в Hammerspoon** при автозапуске пустой — `ffmpeg: command not found`. Симптом: после перезагрузки Mac диктовка не работает, в логе `command not found`. Лечится `export PATH="/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"` в начале скрипта. ВАЖНО: doctor использует mой shell PATH и потому видит ffmpeg — НЕ показатель что Hammerspoon тоже видит. Проверять через `env -i HOME=$HOME bash -c 'PATH=/usr/bin:/bin ~/bin/groq-dictate.sh'`.
|
||||||
|
|
||||||
## Стоимость
|
## Стоимость
|
||||||
- Hammerspoon бесплатный
|
- Hammerspoon бесплатный
|
||||||
- Groq бесплатный (14400 req/day, ~120 минут диктовки в день — намного больше нужного)
|
- Groq бесплатный (14400 req/day, ~120 минут диктовки в день — намного больше нужного)
|
||||||
|
|||||||
101
decisions/2026-05-06-kb-search-overhaul.md
Normal file
101
decisions/2026-05-06-kb-search-overhaul.md
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-06
|
||||||
|
type: decision
|
||||||
|
tags: [kb, openclaw, search, fts, infra, summary]
|
||||||
|
status: applied
|
||||||
|
---
|
||||||
|
|
||||||
|
# Перестройка KB-поиска и синхронизации (8 фаз за один день)
|
||||||
|
|
||||||
|
## Что было до
|
||||||
|
|
||||||
|
Запрос «OpenWRT Липки» Максимке возвращал `netbird-inventory.md`, потому что:
|
||||||
|
- слова «Липки» во всём vault'е была одна строка в табличке инвентаря,
|
||||||
|
- слово «OpenWRT» статистически перевешивали НИИКН-документы (`govru-quickfix`, `niikn-openwrt-awg-fix`),
|
||||||
|
- кросс-ссылок и aliases не было, embeddings не было,
|
||||||
|
- лаг push→бот доходил до 16 минут (cron `*/5` Mac→Gitea + cron `*/15` Gitea→openclaw).
|
||||||
|
|
||||||
|
Пользователь жаловался: «бот путает, я ему про Липки, он мне про НИИКН».
|
||||||
|
|
||||||
|
## Что сделано
|
||||||
|
|
||||||
|
| Фаза | Эффект |
|
||||||
|
|---|---|
|
||||||
|
| 1. Embeddings (ollama+bge-m3) | ⛔ откачено — openclaw 2026.5.2 при `provider: ollama` шлёт inputs целиком, ollama тратит >5 мин/запрос, undici fetch валится по headers timeout. ollama на LXC 132 готова (uptime, bge-m3 1024d), но сторона openclaw нуждается в фиксе chunking |
|
||||||
|
| 2. Webhook + auto-reindex | Gitea push→listener (HMAC SHA-256)→`kb-pull.sh`→`openclaw memory index`. **push→FTS: 15 мин → 50 c**. См. [[../snippets/openclaw-kb-webhook]] и [[2026-05-06-openclaw-kb-webhook-deployment]] |
|
||||||
|
| 3. objects-map.json + _index.md | Скрипт `scripts/kb-objects-map.py` парсит netbird-inventory + frontmatter и пишет JSON для бота + human-readable [[../projects/_index]]. Базовый структурный слой |
|
||||||
|
| 4. Stubs + frontmatter | Создано 6 README (`znamenskoye`, `mmfb`, `lipki` уже был, + 4 stub'а клиентских OpenWrt). Обогащён frontmatter в `niikn`, `dttb`, `glavtorg`, `krasnogorsk`, `zelenograd` с aliases для netbird-имён. **38 → 14 orphan-пиров** |
|
||||||
|
| 5.1. Слить дубли видео | Удалён `dttb/video-surveillance-report.md` (297 строк, неполная копия), canonical `videonablyudenie-znam.md` обогащён aliases |
|
||||||
|
| 5.2. Архив audit/ | 18 устаревших drift-отчётов 2026-04-* перенесены в `audit/archive/`, в active остались 7 свежих |
|
||||||
|
| 6. Recall + dreaming | `openclaw memory promote --apply`: 17/39 коротких воспоминаний переехали в долгую. `dreaming.enabled=true` (cron `0 3 * * *`). Weekly cron на promote |
|
||||||
|
| 7. Расширенный kb-audit | Скрипт `scripts/kb-objects-audit.py` пишет еженедельный отчёт с score: проверяет frontmatter, online-orphans, битые wiki-ссылки. Первый запуск — score=84 (12/12 frontmatter ✓, 3 online orphan, 26 битых wiki) |
|
||||||
|
| 8. UX бота | `memorySearch.query.minScore=0.4`, IDENTITY.md разводит двух Максимок (homelab vs НИИКН), INFRASTRUCTURE.md переписан как навигатор по vault'у |
|
||||||
|
|
||||||
|
## Метрики до / после
|
||||||
|
|
||||||
|
| Параметр | До | После |
|
||||||
|
|---|---|---|
|
||||||
|
| «OpenWRT Липки» top-1 | `netbird-inventory.md` ❌ | `projects/lipki/README.md` ✅ |
|
||||||
|
| «Антон клиент Звенигород» top-1 | ничего | `projects/lipki/README.md` ✅ |
|
||||||
|
| «AgentDVR ЧОП Знаменское» top-1 | три дубля | `videonablyudenie-znam.md` ✅ |
|
||||||
|
| «Константин Вишневый сад» top-1 | `netbird-inventory.md` | `projects/vishnevyy-sad/README.md` ✅ |
|
||||||
|
| Лаг push → видно боту | 5–16 мин | **~50 секунд** |
|
||||||
|
| Проектов с netbird-привязкой | 0 | **9** |
|
||||||
|
| Структурный объект-граф | нет | `objects-map.json` (34 entries) |
|
||||||
|
| Online orphan-пиров | ~30+ | **3** |
|
||||||
|
| Auto-reindex после pull | нет | есть |
|
||||||
|
| Recall promoted | 0 (mёртв 16 дней) | 17 + weekly cron |
|
||||||
|
| Dreaming | off | on (ночной cron) |
|
||||||
|
| FTS-шум audit/ | 24 файла | 7 active + 18 в archive |
|
||||||
|
|
||||||
|
## Грабли (для будущей памяти)
|
||||||
|
|
||||||
|
1. **Gitea SSRF-protection.** Без `webhook.ALLOWED_HOST_LIST` в `app.ini` Gitea silently отказывает доставлять webhook на private IP. В docker-логах: `webhook can only call allowed HTTP servers, deny '10.0.0.239'`. Listener при этом получает 0 запросов, journal пустой.
|
||||||
|
|
||||||
|
2. **`flock -n` теряет двойные push.** Если webhook прилетел во время pull/reindex — non-blocking lock молча выходит. Заменить на `flock -w 180`.
|
||||||
|
|
||||||
|
3. **openclaw 2026.5.2 ollama-провайдер игнорирует chunking.** При `provider: ollama` шлёт файлы целиком в `/api/embed`, ollama buffer растёт до 700 MB, обработка >5 мин, fetch валится. Не лечится `chunking.tokens=512`, `nonBatchConcurrency=1`, `batch.enabled=false`. Bug либо в openclaw, либо неочевидный конфиг-флаг.
|
||||||
|
|
||||||
|
4. **substring matching → false positives.** Alias `cloud` подхватывал `Cloud-NIIKN New niikn.com`. Перешли на exact-match с нормализацией `ye→e`. Aliases теперь должны содержать **полные** имена пиров как в netbird-inventory.
|
||||||
|
|
||||||
|
5. **Heredoc через ssh с backticks** — bash интерпретирует backticks как command-substitution внутри пути файла. Для записи структурных markdown'ов с inline-кодом — пушить через base64 или scp/pct push, не heredoc.
|
||||||
|
|
||||||
|
6. **`git commit` без `-a` или явного `git add`** забирает только staged. Удаление через `git rm` помечается автоматом, а modify — нет. Один коммит может оставить часть правок несинхронизированными — дополнительный коммит лечит.
|
||||||
|
|
||||||
|
## Что отложено
|
||||||
|
|
||||||
|
| Задача | Причина | Когда возвращаться |
|
||||||
|
|---|---|---|
|
||||||
|
| Векторный поиск через ollama | bug в openclaw 2026.5.2 ollama-провайдере | при апгрейде openclaw, или попробовать `provider: local` (transformers.js встроен в openclaw) |
|
||||||
|
| 14 orphan-пиров (Денис Тихая, DESKTOP-2IOQS54 Saransk, KOMPUTER, MastaNotebook, …) | нужны факты от Олега чьи это машины | по мере выяснения — добавлять в aliases подходящих проектов |
|
||||||
|
| 26 битых wiki-ссылок | автоматический фикс не всегда возможен (некоторые цели реально удалены) | semi-auto проход: показать список, для очевидных — починить, остальное — оставить TODO |
|
||||||
|
| Singleton-проекты (`projects/*.md`) без frontmatter | не критично — они top-level note'ы | при касании |
|
||||||
|
|
||||||
|
## Артефакты в vault
|
||||||
|
|
||||||
|
- [[../projects/lipki/README]], [[../projects/znamenskoye/README]], [[../projects/mmfb/README]]
|
||||||
|
- [[../projects/sergey/README]], [[../projects/benilux/README]], [[../projects/vishnevyy-sad/README]], [[../projects/openwrt-4/README]]
|
||||||
|
- [[../projects/_index]] — авто-генерированный реестр
|
||||||
|
- `audit/objects-map.json` — машинно-читаемый граф
|
||||||
|
- [[../audit/2026-05-06-objects-audit]] — первый health-check
|
||||||
|
- `scripts/kb-objects-map.py`, `scripts/kb-objects-audit.py`
|
||||||
|
- [[../snippets/openclaw-kb-webhook]]
|
||||||
|
- [[2026-05-06-openclaw-kb-webhook-deployment]]
|
||||||
|
- frontmatter добавлен в `projects/{niikn,dttb,glavtorg,krasnogorsk,zelenograd}/README.md`
|
||||||
|
|
||||||
|
## Артефакты вне vault
|
||||||
|
|
||||||
|
**LXC 137 (openclaw):**
|
||||||
|
- `/usr/local/bin/kb-pull-webhook.py` (Python listener, HMAC)
|
||||||
|
- `/etc/systemd/system/kb-pull-webhook.service`
|
||||||
|
- Обновлённый `/usr/local/bin/kb-pull.sh` (`flock -w 180`, hash-diff, auto-reindex)
|
||||||
|
- Cron `0 4 * * 1` weekly memory promote
|
||||||
|
- Config: `memorySearch.query.minScore=0.4`, `dreaming.enabled=true`, ollama-провайдер откачен (бэкап `/root/.openclaw/openclaw.json.bak.embed-2026-05-06-112441`)
|
||||||
|
- Переписаны `/root/clawd/IDENTITY.md`, `INFRASTRUCTURE.md`
|
||||||
|
|
||||||
|
**LXC 136 (Gitea):**
|
||||||
|
- `webhook.ALLOWED_HOST_LIST = 10.0.0.0/24,*.dttb.ru,private` в `/opt/gitea/data/gitea/conf/app.ini`
|
||||||
|
- Webhook id=1 на репо `oleg/knowledge-base`
|
||||||
|
|
||||||
|
**LXC 132 (code-server):**
|
||||||
|
- ollama systemd override `OLLAMA_HOST=0.0.0.0:11434, KEEP_ALIVE=24h` (для будущего возврата к embeddings)
|
||||||
78
decisions/2026-05-06-openclaw-kb-webhook-deployment.md
Normal file
78
decisions/2026-05-06-openclaw-kb-webhook-deployment.md
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-06
|
||||||
|
type: decision
|
||||||
|
tags: [openclaw, gitea, webhook, kb-sync, performance]
|
||||||
|
status: applied
|
||||||
|
---
|
||||||
|
|
||||||
|
# Webhook Gitea → openclaw kb-pull (Фаза 2 плана улучшения KB-поиска)
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
|
||||||
|
После публикации `projects/lipki/README.md` стало видно, что openclaw (Максимка) видит новые правки vault только через cron `*/15` — лаг до 15 минут. Это первое, что бьёт по UX («только что записал → бот всё ещё не знает»).
|
||||||
|
|
||||||
|
План улучшения KB-поиска расписан в чате с Claude Code 2026-05-06 утром, Фаза 2 — webhook + автоматический FTS-реиндекс.
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
|
||||||
|
Push-канал Gitea → listener на LXC 137 → `kb-pull.sh` → `openclaw memory index`. Cron `*/15` оставлен как safety net.
|
||||||
|
|
||||||
|
Подробная реализация — [[../snippets/openclaw-kb-webhook]].
|
||||||
|
|
||||||
|
## Что развёрнуто
|
||||||
|
|
||||||
|
| Компонент | Где |
|
||||||
|
|---|---|
|
||||||
|
| `/usr/local/bin/kb-pull-webhook.py` | LXC 137, Python http.server, HMAC-SHA256 проверка, journal-лог |
|
||||||
|
| `/etc/systemd/system/kb-pull-webhook.service` | LXC 137, system unit, Restart=on-failure, secret в env |
|
||||||
|
| Обновлённый `/usr/local/bin/kb-pull.sh` | `flock -w 180`, hash-diff, авто `openclaw memory index` при новом HEAD |
|
||||||
|
| Webhook в Gitea (id=1, репо `oleg/knowledge-base`) | events: push, branch: main, secret в HMAC |
|
||||||
|
| `webhook.ALLOWED_HOST_LIST = 10.0.0.0/24,*.dttb.ru,private` в `app.ini` | LXC 136 (Gitea в docker), `/opt/gitea/data/gitea/conf/app.ini` |
|
||||||
|
|
||||||
|
## Метрика
|
||||||
|
|
||||||
|
End-to-end push → видно боту:
|
||||||
|
|
||||||
|
| Этап | Время |
|
||||||
|
|---|---|
|
||||||
|
| `git push` с Mac → Gitea ack | ~2 c |
|
||||||
|
| Gitea → webhook listener | ~3 c |
|
||||||
|
| listener → kb-pull.sh → git pull → новый HEAD | ~6 c |
|
||||||
|
| **Итого до видимости HEAD на 137** | **~11 c** |
|
||||||
|
| FTS reindex (875 файлов / 1791 chunk) | +38 c |
|
||||||
|
| **Итого до видимости в `openclaw memory search`** | **~50 c** |
|
||||||
|
|
||||||
|
Было: до 15 минут (cron */15) + до 38 c reindex (если бы он раньше был) = до **~16 минут**.
|
||||||
|
|
||||||
|
Улучшение: **×20 латентности до видимости HEAD, ×16 до полного FTS**.
|
||||||
|
|
||||||
|
## Грабли (для будущей памяти)
|
||||||
|
|
||||||
|
1. **Gitea SSRF-protection.** Без `ALLOWED_HOST_LIST` Gitea silently отказывает доставлять webhook на private IP. Test delivery возвращает `204`, но в Gitea log: `webhook can only call allowed HTTP servers, deny '10.0.0.239'`. Listener при этом не видит ничего — пустой journal. Это была первая причина почему ничего не работало.
|
||||||
|
|
||||||
|
2. **`flock -n` теряет вторую серию push'ов.** Если webhook прилетел во время уже идущего pull/reindex (быстрый двойной push) — non-blocking flock молча выходит. Надо `-w 180` (ждать в очереди до 3 мин).
|
||||||
|
|
||||||
|
3. **sed по строке с `||` ломается, если разделитель `|`.** `sed -i 's|flock -n|flock -w 180|'` падает с `unknown option to s`. Использовать `#` или другой разделитель — `sed -i 's#flock -n#flock -w 180#'`.
|
||||||
|
|
||||||
|
4. **Listener `log_message: pass` гасит **все** логи http.server.** Если хочется видеть приём POST — переопределить как `sys.stderr.write(...)`. Иначе debug невозможен.
|
||||||
|
|
||||||
|
## Альтернативы, которые отвергнуты
|
||||||
|
|
||||||
|
- **Полностью убрать cron**: рискованно — если listener умер и не заметили, vault зависнет. Cron `*/15` ничего не стоит и страхует.
|
||||||
|
- **Webhook напрямую через NPM/публичный URL**: лишний хоп, нужен HTTPS, всё в LAN — не нужно.
|
||||||
|
- **iptables на 18790**: HMAC-secret уже отсекает левые запросы. Homelab trusted. Не делал.
|
||||||
|
|
||||||
|
## Откат
|
||||||
|
|
||||||
|
См. секцию «Откат» в [[../snippets/openclaw-kb-webhook]]. Один rm-рецепт + удаление webhook через Gitea API.
|
||||||
|
|
||||||
|
## Что дальше
|
||||||
|
|
||||||
|
Фаза 1 плана (embeddings ollama × bge-m3) — пока **отложена**. При попытке развёртывания openclaw 2026.5.2 со всеми правильными config-полями (`provider=ollama`, `remote.baseUrl`, `model=bge-m3`, `chunking.tokens=512`) **игнорирует chunking** и шлёт в `/api/embed` файлы целиком — output buffer ollama растёт до 700+ MB, обработка >5 мин, undici fetch падает по дефолтному 5-min Headers Timeout. Конфигурация откачена, состояние FTS-only сохранено.
|
||||||
|
|
||||||
|
Возможные пути возврата к векторному поиску:
|
||||||
|
- `provider: local` (transformers.js встроенный) — попробовать без сетевого хопа
|
||||||
|
- Ждать openclaw 2026.5.3+ с фиксом chunking
|
||||||
|
- GitHub Copilot embeddings (требует токен)
|
||||||
|
|
||||||
|
Следующая фаза по плану — **Фаза 3** (`audit/objects-map.json` + `projects/_index.md`) или **Фаза 5.1** (слить дубли видеонаблюдения).
|
||||||
@@ -116,3 +116,4 @@ sshpass -p '1qaz!QAZ' ssh root@10.0.0.250 "pct exec 137 -- bash -c '
|
|||||||
- [[../claude-memory/omniroute]] — OmniRoute setup, провайдеры, версии
|
- [[../claude-memory/omniroute]] — OmniRoute setup, провайдеры, версии
|
||||||
- [[../projects/dttb/openclaw]] — справочник по openclaw
|
- [[../projects/dttb/openclaw]] — справочник по openclaw
|
||||||
- [[../snippets/clawdbot-cliproxy-config]] — старый шаблон CLIProxy
|
- [[../snippets/clawdbot-cliproxy-config]] — старый шаблон CLIProxy
|
||||||
|
- [[../snippets/omniroute-models-audit]] — шаблон smoke-тестов и парсинга ошибок (использовался при этом аудите)
|
||||||
|
|||||||
90
decisions/2026-05-07-buzharovo-1c-rmngr-loop-after-crash.md
Normal file
90
decisions/2026-05-07-buzharovo-1c-rmngr-loop-after-crash.md
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-07
|
||||||
|
type: decision
|
||||||
|
tags: [buzharovo, server1c, 1c, troubleshooting]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Бужарово 1С сервер — rmngr-loop после грязного ребута: рецепт
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
|
||||||
|
07.05.2026 утром локальные пользователи в Бужарово начали жаловаться на резкое замедление 1С. NetBird и удалённый доступ ни при чём — тормозило в локальной сети офиса.
|
||||||
|
|
||||||
|
Сервер: `Server1C` (Win 2012 R2, 100.70.75.103 / 185.13.47.2), 1С 8.3.27.1606, MSSQL.
|
||||||
|
|
||||||
|
## Что нашли
|
||||||
|
|
||||||
|
Сегодня в **09:05 сервер ушёл в crash**:
|
||||||
|
- `System / Kernel-Power Event 41` (Critical): "rebooted without cleanly shutting down — system stopped responding, crashed, or lost power"
|
||||||
|
- `System / EventLog 6008`: "previous shutdown was unexpected"
|
||||||
|
|
||||||
|
После загрузки:
|
||||||
|
- `rmngr.exe` (менеджер кластера 1С) держит **~1.7 ядра постоянно** в idle (норма <2% одного ядра).
|
||||||
|
- `rphost`, `sqlservr`, диски (avg sec/write 1.6 ms, queue 0.03), память (5/64 GB) — **в норме**.
|
||||||
|
- `rac.exe localhost:1540 cluster list` → "ошибка соединения с сервером", exit -1 — **admin-канал rmngr повис**, кластером невозможно управлять извне.
|
||||||
|
- `netbird.exe` параллельно жжёт 1.4 ядра — побочный reconnect-loop после crash, после ребута сам успокоился.
|
||||||
|
|
||||||
|
## Что не помогло
|
||||||
|
|
||||||
|
**Полный ребут сервера** (через `Restart-Computer`) — НЕ решает проблему. На свежезагруженном сервере с uptime=37 секунд rmngr опять на 178% одного ядра. То есть проблема воспроизводится при каждом первом запуске агента после crash.
|
||||||
|
|
||||||
|
## Что помогло
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Restart-Service -Name '1C:Enterprise 8.3 Server Agent (x86-64)' -Force
|
||||||
|
```
|
||||||
|
|
||||||
|
После рестарта службы (не сервера!):
|
||||||
|
|
||||||
|
| Процесс | До рестарта | После рестарта |
|
||||||
|
|---|---|---|
|
||||||
|
| rmngr | 178% ядра | 3% ядра |
|
||||||
|
| rphost | 19% | 1% |
|
||||||
|
| ragent | 0% | 1% |
|
||||||
|
|
||||||
|
Все клиенты в этот момент вылетают — нужно предупредить за 2-3 минуты. Перезаход штатный.
|
||||||
|
|
||||||
|
## Побочный эффект
|
||||||
|
|
||||||
|
После рестарта остался орфан-процесс старого `ragent` от прошлого запуска (не слушает 1540, висит в памяти). Можно безопасно прибить:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Get-Process ragent | Where-Object { $_.Id -ne (Get-NetTCPConnection -LocalPort 1540).OwningProcess } | Stop-Process -Force
|
||||||
|
```
|
||||||
|
|
||||||
|
## Корневая причина — открыта
|
||||||
|
|
||||||
|
Почему `rmngr` зацикливается после первого запуска ragent — точно не выяснено. Гипотезы:
|
||||||
|
1. Повреждённый кэш кластера `C:\Program Files\1cv8\srvinfo\reg_*\` после crash.
|
||||||
|
2. Регресс в 8.3.27.1606 при восстановлении сеансов.
|
||||||
|
3. Disabled-служба `RagentServer_8327` (старый дубликат) что-то мешает в реестре при первом старте.
|
||||||
|
|
||||||
|
Если повторится — смотреть `C:\Program Files\1cv8\srvinfo\reg_*\1Cv8FTLog\` и `1Cv8Log` на ошибки.
|
||||||
|
|
||||||
|
## Что сделать долгосрочно
|
||||||
|
|
||||||
|
В кластере 1С сейчас **один rphost на всех локальных пользователей** — бутылочное горлышко. Через консоль администрирования сервера 1С увеличить количество рабочих процессов: 1 rphost на 8-12 сеансов. Это отдельная задача, не на горячую.
|
||||||
|
|
||||||
|
## Команды диагностики (для повтора)
|
||||||
|
|
||||||
|
WinRM-сессия с Mac:
|
||||||
|
```python
|
||||||
|
import winrm
|
||||||
|
s = winrm.Session('http://100.70.75.103:5985/wsman',
|
||||||
|
auth=('dttb','1qaz!QAZ'),
|
||||||
|
transport='basic')
|
||||||
|
```
|
||||||
|
|
||||||
|
Дельта CPU за 5 сек по процессам:
|
||||||
|
```powershell
|
||||||
|
$names='rmngr','rphost','netbird','sqlservr','ragent'
|
||||||
|
$first=@{}; $last=@{}
|
||||||
|
Get-Process | ?{$names -contains $_.Name} | %{ $first[$_.Name]=$_.CPU }
|
||||||
|
Start-Sleep 5
|
||||||
|
Get-Process | ?{$names -contains $_.Name} | %{ $last[$_.Name]=$_.CPU }
|
||||||
|
foreach($n in $names){ "$n delta=$($last[$n]-$first[$n])s" }
|
||||||
|
```
|
||||||
|
|
||||||
|
Если у rmngr дельта >50 за 5 секунд — диагноз "rmngr-loop" подтверждён, делать рестарт службы.
|
||||||
|
|
||||||
|
См. также [[projects/buzharovo/server1c]].
|
||||||
310
decisions/2026-05-07-buzharovo-migration-plan.md
Normal file
310
decisions/2026-05-07-buzharovo-migration-plan.md
Normal file
@@ -0,0 +1,310 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-07
|
||||||
|
type: decision
|
||||||
|
tags: [buzharovo, 1c, migration, plan]
|
||||||
|
status: approved
|
||||||
|
target_stack: windows-mssql
|
||||||
|
related:
|
||||||
|
- "[[decisions/2026-05-07-buzharovo-recon]]"
|
||||||
|
- "[[projects/buzharovo/server1c]]"
|
||||||
|
- "[[projects/buzharovo/migration-prompt-2026-05-07]]"
|
||||||
|
- "[[decisions/2026-05-07-buzharovo-1c-rmngr-loop-after-crash]]"
|
||||||
|
---
|
||||||
|
|
||||||
|
> **Решение по стеку (07.05.2026):** идём на **Windows Server VM + MSSQL** (Вариант W).
|
||||||
|
> Linux/PostgreSQL отложен на потом. Причина выбора: простая миграция через нативный SQL `.bak` → `RESTORE`, без переобучения 6 терминальных юзеров (они продолжают работать через RDP), без отдельного термсервера. На масштаб ~6 юзеров и ~гигабайтной БД разница в скорости с Linux незаметна.
|
||||||
|
>
|
||||||
|
> **Лицензионная часть** (1С Server, клиентские, Windows Server) — за Олегом, обрабатывается отдельно. План описывает только техническую миграцию.
|
||||||
|
|
||||||
|
# План миграции 1С Бужарово → HomeLab Proxmox
|
||||||
|
|
||||||
|
**Цель:** перенести 1С с физического Server1C (Win 2012 R2, бытовая мать ASUS, без ИБП, 24+ крашей в день) на VM на HomeLab Proxmox (10.0.0.250), сохранив работу 6 терминальных юзеров и двух ПК-касс KASSA3/KASSIRULICA2.
|
||||||
|
|
||||||
|
**Базис:** `decisions/2026-05-07-buzharovo-recon.md` (отчёт разведки 07.05.2026).
|
||||||
|
|
||||||
|
## Критерии успеха
|
||||||
|
|
||||||
|
1. ✅ Все 4 инфобазы 1С восстановлены и доступны для пользователей
|
||||||
|
2. ✅ 6 RDP-юзеров (АртемК, ГорячевАЕ, Павел, ПальмановаН, ФирсовС, dttb) работают в 1С через RDP к новой VM
|
||||||
|
3. ✅ KASSA3 (192.168.1.18) и KASSIRULICA2 (192.168.1.99) пробивают чеки через новую инфраструктуру (TCP до 1С-сервера через NetBird)
|
||||||
|
4. ✅ Время простоя при cutover ≤ 4 часов (вечер пятницы или ночь субботы)
|
||||||
|
5. ✅ Откат за ≤ 30 минут (старый Server1C остаётся включённым в Бужарово до недели после миграции)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Архитектура: Вариант A (приоритетный)
|
||||||
|
|
||||||
|
```
|
||||||
|
Интернет
|
||||||
|
│
|
||||||
|
┌────────────────────┼─────────────────────────┐
|
||||||
|
│ │ │
|
||||||
|
↓ ↓ ↓
|
||||||
|
[Бужарово офис] [сельский WISP/РТК?] [HomeLab Москва]
|
||||||
|
192.168.1.0/24 10.0.0.0/24
|
||||||
|
│
|
||||||
|
┌─────────────┐ │
|
||||||
|
│ KASSA3 │ ↓
|
||||||
|
│ 192.168. │ NetBird VPN ┌────────────────┐
|
||||||
|
│ .1.18 ├──────────────────────────────│ Proxmox PVE │
|
||||||
|
│ KASSIRUL2 │ (~96 ms RTT) │ 10.0.0.250 │
|
||||||
|
│ 192.168. │ │ │
|
||||||
|
│ .1.99 │ │ ┌──────────┐ │
|
||||||
|
│ │ │ │ VM 1Cnew │ │
|
||||||
|
│ 6× RDP- │ │ │ Win22/25 │ │
|
||||||
|
│ юзеров │ RDP 3389 + 1С 1541 │ │ + 1С 8.3 │ │
|
||||||
|
│ (тонкие │←─────────────────────────────│ │ + MSSQL │ │
|
||||||
|
│ клиенты) │ │ │ 8 vCPU │ │
|
||||||
|
│ │ │ │ 32GB RAM │ │
|
||||||
|
│ Router- │ │ │ 200GB SSD│ │
|
||||||
|
│ Office │ │ └──────────┘ │
|
||||||
|
│ (NetBird │ │ │
|
||||||
|
│ + advertise│ └────────────────┘
|
||||||
|
│ 192.168.1/ │
|
||||||
|
│ 24) │
|
||||||
|
└─────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ключевые элементы
|
||||||
|
- **Целевая VM:** новая на Proxmox 10.0.0.250 (имя `vm-1c-buzharovo` или подобное), Win Server 2022 или 2025, 8 vCPU, 32GB RAM, 200GB SSD (LVM/qcow на NVMe пуле)
|
||||||
|
- **1С:** 8.3.27.1606 (тот же билд для совместимости), x64, **только одна** служба `1C:Enterprise 8.3 Server Agent (x86-64)` Auto
|
||||||
|
- **MSSQL:** 2019 или 2022 (Express если суммарный объём всех 4 БД ≤ 10GB; Standard если больше — нужно подтвердить размер!)
|
||||||
|
- **NetBird-агент** на VM с advertise-route 10.0.0.0/24 (или подключение к существующему "Dom" route group)
|
||||||
|
- **NetBird на офисном роутере в Бужарово** с advertise 192.168.1.0/24 — это позволит KASSA3/KASSIRULICA2 общаться с новой VM прозрачно
|
||||||
|
|
||||||
|
### Почему Вариант A, а не B
|
||||||
|
- Сейчас ИДЕНТИЧНАЯ схема уже работает: 6 юзеров через RDP в Server1C запускают 1С локально на сервере → переезд просто меняет адрес сервера
|
||||||
|
- 1С↔MSSQL остаются в одной локалке VM (latency 0.1ms внутри Proxmox), как сейчас
|
||||||
|
- RDP толерантен к 96ms; толстый клиент 1С через NetBird тормозил бы при открытии справочников
|
||||||
|
- Касса KASSA3 уже общается с 1С через TCP (порт 1560) → меняется только адрес, протокол сохраняется
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Фазы и эстимейты
|
||||||
|
|
||||||
|
### Фаза 0: Pre-flight (1 час, до миграции)
|
||||||
|
**Кто:** Олег + Claude Code
|
||||||
|
**Что:** ответы на 8 открытых вопросов из `recon.md`:
|
||||||
|
|
||||||
|
| # | Вопрос | Action |
|
||||||
|
|---|---|---|
|
||||||
|
| 1 | `sa`-пароль MSSQL? | Олег → 1Password / память / создать SQL-login |
|
||||||
|
| 2 | Лицензия 1С: пинкоды? | Олег → ЛК на portal.1c.ru |
|
||||||
|
| 3 | Имена 4 инфобаз | Олег → проверить через 1С-клиент или v8i-ярлык на ПК пользователя |
|
||||||
|
| 4 | ПО на KASSA3/KASSIRULICA2 | Удалёнкой через RDP/AnyDesk на 192.168.1.18 |
|
||||||
|
| 5 | Провайдер в Бужарово | Олег → договор / счёт |
|
||||||
|
| 6 | Окно простоя | Олег + бизнес → согласовать |
|
||||||
|
| 7 | Бюджет на ИБП / альтернатива «починить на месте» | Олег |
|
||||||
|
| 8 | AnyDesk оставлять? | Олег |
|
||||||
|
|
||||||
|
**Также:** определить SQL backup-метод (FULL+DIFF или COPY_ONLY backup → restore).
|
||||||
|
|
||||||
|
### Фаза 1: Подготовка целевой VM (2-4 часа)
|
||||||
|
|
||||||
|
**Шаги:**
|
||||||
|
1. **Создать VM на Proxmox 10.0.0.250:**
|
||||||
|
- VM ID: например 112 (или соседний свободный)
|
||||||
|
- OS: Win Server 2022 RU (или 2025; ISO у Олега есть, ставился на VM 111)
|
||||||
|
- vCPU: 8 (с host-passthrough cpu-type)
|
||||||
|
- RAM: 32 GB (можно ballooning)
|
||||||
|
- Disks: 1 OS-disk 100GB qcow2 на быстром пуле + 1 data-disk 200GB для БД
|
||||||
|
- Сеть: vmbr0 → 10.0.0.0/24 (статический IP, например 10.0.0.197)
|
||||||
|
2. **Базовая настройка Windows:**
|
||||||
|
- Hostname: `s1c-buzharovo` (или согласуем)
|
||||||
|
- Локаль: Russian
|
||||||
|
- Network: статика 10.0.0.197/24, gw 10.0.0.1, DNS 10.0.0.250
|
||||||
|
- Firewall: разрешить in 3389 (RDP), 1540-1591 (1С), 1433 (SQL только из NetBird-подсетей)
|
||||||
|
- Обновления Windows
|
||||||
|
3. **Установка MSSQL:**
|
||||||
|
- Express или Standard (зависит от размера БД)
|
||||||
|
- Default instance MSSQLSERVER
|
||||||
|
- Mixed Mode auth, sa-пароль strong
|
||||||
|
- SQL Browser: Disabled (нам не нужен)
|
||||||
|
4. **Установка 1С Предприятие 8.3.27.1606:**
|
||||||
|
- Server (x64), administrator components
|
||||||
|
- Создать 1 службу: `1C:Enterprise 8.3 Server Agent (x86-64)` — Automatic
|
||||||
|
- Ничего лишнего: ни 8.3.18, ни RagentServer_xxx
|
||||||
|
5. **Настройка ОС:**
|
||||||
|
- Crash Dump: `CrashDumpEnabled=3`, pagefile фикс 8GB на C: (как на старом сервере)
|
||||||
|
- Performance: `Set-MpPreference -DisableRealtimeMonitoring $false` (или установить полноценный AV)
|
||||||
|
- Time zone: МСК
|
||||||
|
6. **NetBird:**
|
||||||
|
- Установить netbird-агент
|
||||||
|
- Подключить к нашему tenant
|
||||||
|
- Проверить ping к Server1C (100.70.75.103) и доступ из NetBird-сети
|
||||||
|
7. **RDP-юзеры:**
|
||||||
|
- Создать локальные учётки: `АртемК, ГорячевАЕ, Павел, ПальмановаН, ФирсовС, dttb`
|
||||||
|
- Добавить в `Remote Desktop Users` (для RDP) и `Users`
|
||||||
|
- Пароли на временных, потом сменить
|
||||||
|
8. **WinRM 5985 / 5986** для нашей автоматизации (basic auth, Private network).
|
||||||
|
|
||||||
|
**Артефакт фазы:** живая VM на 10.0.0.197, доступна по RDP/WinRM из NetBird.
|
||||||
|
|
||||||
|
### Фаза 2: Тестовая миграция данных (3-5 часов)
|
||||||
|
|
||||||
|
**Шаги:**
|
||||||
|
1. **Бэкап SQL на Server1C** (вне рабочего времени!):
|
||||||
|
```sql
|
||||||
|
BACKUP DATABASE [<db1>] TO DISK = 'D:\backup\<db1>.bak' WITH COPY_ONLY, COMPRESSION;
|
||||||
|
-- повторить для всех 4 БД
|
||||||
|
```
|
||||||
|
- Размер бэкапов оценим сразу; время — зависит от размера, при 39GB может быть 30-60 мин
|
||||||
|
2. **Передача .bak на HomeLab:**
|
||||||
|
- Через NetBird SMB (Server1C → s1c-buzharovo) или scp/rsync
|
||||||
|
- 39GB через 96ms NetBird ≈ зависит от throughput; реалистично 1-3 часа
|
||||||
|
- Альтернатива: бэкапить на USB на Server1C, привезти физически
|
||||||
|
3. **Восстановление на новой VM:**
|
||||||
|
```sql
|
||||||
|
RESTORE DATABASE [<db1>] FROM DISK='C:\restore\<db1>.bak' WITH MOVE ...;
|
||||||
|
```
|
||||||
|
4. **Регистрация инфобаз в 1С на новой VM:**
|
||||||
|
- Через `1cv8.exe` админ-консоль или ручной ввод
|
||||||
|
- 4 инфобазы → подключение к локальному `s1c-buzharovo:1541`
|
||||||
|
5. **Smoke-тест:**
|
||||||
|
- Запустить тонкий клиент 1С на VM локально, открыть каждую базу
|
||||||
|
- Проверить: журнал регистрации, последние документы, базовые отчёты
|
||||||
|
- Сверить контрольные суммы / счётчики документов с боевой
|
||||||
|
6. **Лицензия 1С:**
|
||||||
|
- Активировать программную лицензию через PIN (получить от Олега)
|
||||||
|
- Если резервных PIN нет — заявка в 1С-Партнёр на восстановление
|
||||||
|
|
||||||
|
**Артефакт фазы:** на новой VM работают все 4 инфобазы (read-only тест).
|
||||||
|
|
||||||
|
### Фаза 3: Тест с кассой (1-2 часа)
|
||||||
|
|
||||||
|
**Шаги:**
|
||||||
|
1. На одном ПК `KASSA3` (192.168.1.18):
|
||||||
|
- Поднять временный VPN/proxy до новой VM (либо через NetBird-агент на самой кассе, либо через NetBird на офисном роутере)
|
||||||
|
- В настройках кассового ПО изменить адрес сервера 1С (или v8i базы)
|
||||||
|
- Открыть тестовую копию рабочей базы
|
||||||
|
- Сделать тестовый чек: товар → пробить → ответ от ОФД
|
||||||
|
2. То же самое для `KASSIRULICA2` если есть time
|
||||||
|
3. Откатить изменения на касса-ПК (вернуть на боевой Server1C)
|
||||||
|
|
||||||
|
**⚠ Важно:** не работать с боевой БД! Создать тестовую копию инфобазы для проверки чеков. Иначе двойной чек в ОФД.
|
||||||
|
|
||||||
|
**Артефакт фазы:** подтверждение что новая инфраструктура совместима с кассой.
|
||||||
|
|
||||||
|
### Фаза 4: Cutover (3-4 часа, окно простоя)
|
||||||
|
|
||||||
|
**Окно:** вечер пятницы 18:00 → 22:00 МСК (после рабочего дня) или ночь сб → вс.
|
||||||
|
|
||||||
|
**Шаги:**
|
||||||
|
1. **Заранее (за день):** уведомить юзеров и кассиров о времени простоя
|
||||||
|
2. **T-0:00** Объявить начало миграции, остановить работу пользователей
|
||||||
|
3. **T+0:05** На Server1C финальный бэкап SQL (FULL + последний DIFF):
|
||||||
|
```sql
|
||||||
|
BACKUP DATABASE [<db>] TO DISK='D:\backup\<db>_final.bak' WITH COPY_ONLY, COMPRESSION;
|
||||||
|
```
|
||||||
|
4. **T+0:30** Перенести `_final.bak` на новую VM через SMB
|
||||||
|
5. **T+1:00** Восстановить на новой VM поверх тестовой копии
|
||||||
|
6. **T+1:30** Smoke-test: 1С запускается, контрольные суммы совпадают
|
||||||
|
7. **T+1:45** Перенаправить пользователей и кассу:
|
||||||
|
- RDP-юзеры: новый ярлык RDP к 10.0.0.197 (или через NetBird FQDN)
|
||||||
|
- KASSA3 / KASSIRULICA2: новый адрес 1С-сервера
|
||||||
|
8. **T+2:00** Тестовая транзакция от первого юзера и первой кассы
|
||||||
|
9. **T+2:30** ✅ Миграция завершена, пользователи возобновляют работу
|
||||||
|
10. **T+3:00** Лог финального состояния, обновить vault
|
||||||
|
|
||||||
|
**На Server1C в Бужарово:** НЕ выключать! Оставить работать ещё неделю как backup (можно перевести в read-only режим в 1С — отключить пишущие фоновые задания).
|
||||||
|
|
||||||
|
### Фаза 5: Стабилизация (неделя)
|
||||||
|
|
||||||
|
- Мониторинг: rmngr CPU на новой VM (watchdog уже есть на LXC 137)
|
||||||
|
- Сбор обратной связи от пользователей
|
||||||
|
- Бэкапы: настроить ежедневные на Proxmox-уровне (snapshot) + еженедельный SQL FULL backup
|
||||||
|
- Через 7 дней без проблем — можно гасить старый Server1C
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Risk Register
|
||||||
|
|
||||||
|
| # | Риск | Вероятн. | Импакт | Митигация |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| R1 | Лицензия 1С не активируется на новой VM (нет PIN, HWID-привязка) | Средняя | **Критичный** | Pre-flight: получить пинкоды от Олега; запасной план — обращение в 1С-Партнёр |
|
||||||
|
| R2 | Размер SQL БД >10GB → нужен MSSQL Standard (платный) | Неизвестна | Средний | Pre-flight: получить sa-пароль, измерить размер; иметь готовую лицензию SQL Standard |
|
||||||
|
| R3 | Касса KASSA3/KASSIRULICA2 не общается с новой 1С (firewall, COM, специфический протокол) | Низкая | Высокий | Фаза 3 — тест ДО cutover; держать резервный туннель на Server1C |
|
||||||
|
| R4 | Канал в Бужарово упал в момент миграции → юзеры не могут переключиться | Низкая | Высокий | Cutover ночью; держать резерв (мобильный 4G) |
|
||||||
|
| R5 | Бэкап повреждён или RESTORE с ошибкой | Низкая | **Критичный** | Сначала FULL+DIFF, проверка восстановлением до cutover; держать оригинал |
|
||||||
|
| R6 | rmngr-loop повторится на новой VM (баг 8.3.27.1606) | Низкая | Средний | Watchdog уже работает; в крайнем случае — даунгрейд до 8.3.26 |
|
||||||
|
| R7 | Production crash во время Phase 4 backup'а на Server1C | Высокая | Низкий | Бэкап быстрый (COMPRESSION), краш просто откатит наш cutover на 4 часа |
|
||||||
|
| R8 | Юзеры не находят свои документы / сбит порядок (если несколько ИБ перепутали) | Средняя | Средний | Маппинг GUID→имя ИБ зафиксировать в pre-flight; дублирующие тесты с реальными документами |
|
||||||
|
| R9 | Закрытие RDP в Интернет на старом Server1C преждевременно — юзер не сможет подключиться | Средняя | Низкий | Закрывать только после полного cutover + 1 неделя стабильности |
|
||||||
|
| R10 | Касса в офисе работает с особым ПО (1С Розница нестандартного билда) | Низкая | Высокий | Phase 0: проверить через AnyDesk что стоит на 192.168.1.18 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## План отката (≤ 30 минут)
|
||||||
|
|
||||||
|
Если после cutover (Фаза 4) обнаружили блокирующий баг:
|
||||||
|
|
||||||
|
1. **T-rollback+0:00:** объявить откат
|
||||||
|
2. **T+0:05:** На клиентских ПК и кассах вернуть старый адрес сервера (1С: 100.70.75.103 / 192.168.1.249; кассы: 192.168.1.249)
|
||||||
|
3. **T+0:15:** На Server1C запустить службу 1С (она и так работает в RO-режиме)
|
||||||
|
4. **T+0:25:** Smoke-test от пары юзеров
|
||||||
|
5. **T+0:30:** ✅ Откат завершён, работа на старом
|
||||||
|
|
||||||
|
Условие отката: производственный блокер, не косметический.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Чек-лист готовности к Phase 4 (Cutover)
|
||||||
|
|
||||||
|
```
|
||||||
|
[ ] sa-пароль SQL получен (#1)
|
||||||
|
[ ] Лицензия 1С: пинкоды известны или есть онлайн-активация (#2)
|
||||||
|
[ ] Маппинг GUID → имя инфобазы зафиксирован (#3)
|
||||||
|
[ ] Кассовое ПО изучено (#4) и протестировано в Phase 3
|
||||||
|
[ ] Канал в Бужарово протестирован (#5), резерв есть
|
||||||
|
[ ] Окно простоя согласовано с бизнесом (#6)
|
||||||
|
[ ] Решение по AnyDesk (#8): убрать или оставить
|
||||||
|
[ ] Phase 1: VM s1c-buzharovo живая, RDP/WinRM/NetBird работают
|
||||||
|
[ ] Phase 2: тестовая миграция данных прошла, 4 инфобазы открываются
|
||||||
|
[ ] Phase 3: касса прошла тест чека через новую инфраструктуру
|
||||||
|
[ ] Бэкап Server1C перед cutover есть и проверен restore'ом
|
||||||
|
[ ] План отката известен команде, контакты Олега для эскалации
|
||||||
|
[ ] Юзеры уведомлены за >24 часа до простоя
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Альтернатива: «починить на месте»
|
||||||
|
|
||||||
|
Если миграция отложена, минимальная починка Server1C в Бужарово:
|
||||||
|
1. **Купить ИБП** (Eaton/APC, ~10000-15000 ₽) на 1500ВА для покрытия 5-10 минут просадок и корректного shutdown
|
||||||
|
2. **Заменить мать на серверную** (с ECC, IPMI) — сложно/дорого, лучше тогда уж VM
|
||||||
|
3. **Watchdog** уже есть (LXC 137 → rac.exe restart-service при rmngr-loop)
|
||||||
|
4. **Бэкапы:** настроить ежедневный Veeam Free / Native SQL Backup → внешний диск + копия в HomeLab Nextcloud
|
||||||
|
|
||||||
|
**Не отменяет миграцию**, но снижает срочность. Хорошая идея сделать ИБП параллельно с подготовкой VM — уменьшит крашы пока VM готовится.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Open для обсуждения
|
||||||
|
|
||||||
|
- ⚖ **Кто администратор новой VM** — Олег (как сейчас Server1C) или предложить более ограниченную модель (отдельный admin-аккаунт)?
|
||||||
|
- ⚖ **Public IP / порт RDP** на HomeLab — нет; всё через NetBird. Согласовано?
|
||||||
|
- ⚖ **Версия Win Server** — 2022 (стабильнее, дольше поддержка) или 2025 (новее, current на VM 111)?
|
||||||
|
- ⚖ **Версия MSSQL** — оставить 2012 (max совместимость с 8.3.27, но EOL) или прыгнуть на 2019/2022 (поддерживается, может быть несовместимость с конфигурациями 1С)?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Дефолтные параметры новой VM (для запуска Phase 1)
|
||||||
|
|
||||||
|
| Параметр | Значение |
|
||||||
|
|---|---|
|
||||||
|
| **Proxmox host** | 10.0.0.250 |
|
||||||
|
| **VM ID** | 112 (если свободен; иначе ближайший свободный) |
|
||||||
|
| **Имя** | `s1c-buzharovo` |
|
||||||
|
| **OS** | Windows Server 2022 Standard RU |
|
||||||
|
| **vCPU** | 8 (host-passthrough) |
|
||||||
|
| **RAM** | 32 GB |
|
||||||
|
| **OS-диск** | 100 GB qcow2 |
|
||||||
|
| **Data-диск** | 200 GB (для SQL БД) |
|
||||||
|
| **Сеть** | vmbr0, статический IP `10.0.0.197/24`, gw 10.0.0.1, DNS 10.0.0.250 |
|
||||||
|
| **MSSQL** | 2019 Standard (если БД >10GB) или 2019 Express (если ≤10GB — пока неизвестно) |
|
||||||
|
| **1С платформа** | 8.3.27.1606 (та же что на старом) |
|
||||||
|
| **NetBird** | агент установлен, подключён к нашему tenant |
|
||||||
|
| **WinRM 5985** | для автоматизации |
|
||||||
|
|
||||||
|
Если параметры устраивают — начинаем Phase 1 с этими дефолтами.
|
||||||
405
decisions/2026-05-07-buzharovo-recon.md
Normal file
405
decisions/2026-05-07-buzharovo-recon.md
Normal file
@@ -0,0 +1,405 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-07
|
||||||
|
type: decision
|
||||||
|
tags: [buzharovo, 1c, migration, recon]
|
||||||
|
status: complete
|
||||||
|
related:
|
||||||
|
- "[[projects/buzharovo/server1c]]"
|
||||||
|
- "[[projects/buzharovo/migration-prompt-2026-05-07]]"
|
||||||
|
- "[[decisions/2026-05-07-buzharovo-1c-rmngr-loop-after-crash]]"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Бужарово 1С: разведка перед миграцией на HomeLab
|
||||||
|
|
||||||
|
**Дата:** 2026-05-07
|
||||||
|
**Метод:** WinRM (basic, через NetBird) с LXC 137 (openclaw) на Server1C 100.70.75.103. Read-only WMI/PowerShell/sqlcmd/ping.
|
||||||
|
**Цель:** собрать факты для плана миграции 1С с физического Server1C в Бужарово на HomeLab Proxmox 10.0.0.250.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## TL;DR
|
||||||
|
|
||||||
|
| Тема | Факт |
|
||||||
|
|---|---|
|
||||||
|
| Hardware | ASUS PRIME Z690M-PLUS D4 + i5-12400 (6c/12t) + 64GB DDR4 + 3×Samsung 980 PRO 500GB NVMe |
|
||||||
|
| OS | Windows Server 2012 R2 (build 9600), русский интерфейс |
|
||||||
|
| 1С | 8.3.27.1606, x64, ровно одна рабочая служба `1C:Enterprise 8.3 Server Agent (x86-64)` |
|
||||||
|
| MSSQL | SQL Server 2012 SP2 (11.2.5058) — **EOL с 2022-07-12** |
|
||||||
|
| Кластер 1С | 1 кластер `Server1C:1541` GUID `473f3f9e-...8700c7`, 4 инфобазы |
|
||||||
|
| Размер ИБ (на сервере) | 4 каталога в `srvinfo/reg_1541`: 7.3 / 4.8 / 15.2 / 12.0 GB (это **служебные данные кластера**, не SQL БД!) |
|
||||||
|
| Размер SQL БД | **НЕИЗВЕСТЕН** — `dttb` не имеет SQL-логина, `sa`-пароль не подобран. Нужен у Олега. |
|
||||||
|
| Касса | **Сетевые ПК-кассы** `KASSA3` (192.168.1.18) и `KASSIRULICA2` (192.168.1.99). USB-фискальников на сервере НЕТ. |
|
||||||
|
| Лицензии 1С | HASP-ключа нет (служба `hasplms` Disabled), `.lic`-файлы не найдены → **программная онлайн-лицензия с привязкой к HWID** (риск!) |
|
||||||
|
| Активные сеансы | ~5 уникальных удалённых клиентов через 1С + терминальные RDP-юзеры |
|
||||||
|
| Сеть в офисе | 192.168.1.0/24, gw 192.168.1.1, 13 хостов |
|
||||||
|
| Канал | ping 1.1.1.1 = 3ms (отличный), ping 8.8.8.8 = 15ms |
|
||||||
|
| Latency до HomeLab (NetBird) | 96–99ms стабильно |
|
||||||
|
| ИБП | **НЕТ** (`Win32_Battery` пуст) |
|
||||||
|
| Краши | 24 «грязных ребута» 04.05.2026 (Kernel-Power 41 + 6008), все Bug=0/Power=0 → отключение питания |
|
||||||
|
|
||||||
|
**Главные следствия для миграции:**
|
||||||
|
1. Касса не привязана к серверу физически → пробрасывать USB не нужно. Кассы перенаправят на новый IP 1С-сервера через NetBird.
|
||||||
|
2. Лицензия 1С — программная онлайн → перепривязка к новой VM сделается через 1С (PIN), но требует подготовки.
|
||||||
|
3. SQL БД на старой 2012 — нужен экспорт/импорт; новая VM может ставить MSSQL 2019/2022.
|
||||||
|
4. Нет ИБП + бытовая мать → крашы будут продолжаться, миграция оправдана.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Hardware и OS
|
||||||
|
|
||||||
|
### Платформа
|
||||||
|
```
|
||||||
|
Manufacturer: ASUSTeK COMPUTER INC.
|
||||||
|
Product: PRIME Z690M-PLUS D4
|
||||||
|
BIOS: AMI v1620, 2022-08-12
|
||||||
|
Computer model: ASUS / "System Product Name" (DIY-сборка, не серверный SKU)
|
||||||
|
RAM: 64 GB DDR4 (2 модуля по 32GB), без ECC
|
||||||
|
CPU: 12th Gen Intel(R) Core(TM) i5-12400 — 6 ядер / 12 потоков @ 2.5 GHz
|
||||||
|
Disks (NVMe): 3× Samsung SSD 980 PRO 500GB (NVMe), статус OK
|
||||||
|
SerialNumbers: 0025_38B2_31B4_8512 / _8508 / _84FE
|
||||||
|
```
|
||||||
|
|
||||||
|
**Вывод:** железо современное (12-е поколение Intel, NVMe), но **бытовое**:
|
||||||
|
- нет ECC RAM → необнаруженные битовые ошибки в памяти могут вызывать крашы
|
||||||
|
- нет IPMI/iLO/iDRAC → удалённого управления питанием нет
|
||||||
|
- нет ИБП в системе (`Win32_Battery` пуст)
|
||||||
|
- сертифицировано для Workstation, не для 24/7 server-нагрузки
|
||||||
|
|
||||||
|
### OS
|
||||||
|
```
|
||||||
|
OS: Microsoft Windows Server 2012 R2 Standard
|
||||||
|
Build: 9600 (6.3.9600)
|
||||||
|
PowerShell: 5.1.14409.1018
|
||||||
|
Локаль: Русская
|
||||||
|
Hostname: Server1C
|
||||||
|
Uptime: 3h 51min на момент разведки (последний boot 09:56:42 после краша 09:05)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Срок поддержки:** Windows Server 2012 R2 EOL **2023-10-10**. Без расширенных Security Updates. Серьёзная причина для миграции на 2022/2025.
|
||||||
|
|
||||||
|
### Локальные пользователи
|
||||||
|
```
|
||||||
|
SERVER1C\dttb — основной admin (наш WinRM-юзер)
|
||||||
|
SERVER1C\Администратор — встроенный admin
|
||||||
|
SERVER1C\RemoteAdm — для удалённого доступа (AnyDesk?)
|
||||||
|
SERVER1C\АртемК — RDP-юзер (1С)
|
||||||
|
SERVER1C\ГорячевАЕ — RDP-юзер (1С)
|
||||||
|
SERVER1C\Павел — RDP-юзер (1С)
|
||||||
|
SERVER1C\ПальмановаН — RDP-юзер (1С)
|
||||||
|
SERVER1C\ФирсовС — RDP-юзер (1С)
|
||||||
|
SERVER1C\БольшаковаЕН — RDP-юзер, отключён
|
||||||
|
SERVER1C\Гость — встроенный, без пароля
|
||||||
|
```
|
||||||
|
**6 активных юзеров-сотрудников** работают через RDP. Это значит сейчас сервер **работает в терминальном режиме**: люди ходят по RDP в Server1C и запускают там 1С-клиент. Это упрощает миграцию по варианту A (терминальная VM на HomeLab).
|
||||||
|
|
||||||
|
### Удалённые доступы
|
||||||
|
- **RDP (3389)** — открыт публично на 185.13.47.2:3389 (видны established с 176.62.183.186, 176.215.183.37)
|
||||||
|
- **AnyDesk** — процесс запущен в системе
|
||||||
|
- **NetBird** — `netbird.exe` v0.68.3, FQDN `server1c.netbird.cloud`, IP 100.70.75.103/16, peers 31/58 connected
|
||||||
|
|
||||||
|
⚠ **RDP открыт в Интернет** — security risk. После миграции закрыть и оставить только NetBird.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 1С:Предприятие
|
||||||
|
|
||||||
|
### Версия и службы
|
||||||
|
```
|
||||||
|
Версия 1С: 1C:Предприятие 8 (x86-64) 8.3.27.1606
|
||||||
|
Издатель: 1С-Софт
|
||||||
|
|
||||||
|
Службы (Win32_Service):
|
||||||
|
1C:Enterprise 8.3 Server Agent — Stopped, Disabled (8.3.18, x86, бинарника нет)
|
||||||
|
1C:Enterprise 8.3 Server Agent (x86-64) — Running, Auto ★ рабочая
|
||||||
|
PATH: "C:\Program Files\1cv8\8.3.27.1606\bin\ragent.exe" -srvc -agent
|
||||||
|
-regport 1541 -port 1540 -range 1560:1591
|
||||||
|
-d "C:\Program Files\1cv8\srvinfo"
|
||||||
|
RagentServer_8327 — Stopped, Disabled (orphan)
|
||||||
|
```
|
||||||
|
|
||||||
|
Конфликт служб уже решён 2026-04-16 (см. `projects/buzharovo/server1c.md`). Сейчас одна корректная служба + два Disabled-дубликата.
|
||||||
|
|
||||||
|
### Кластер и инфобазы
|
||||||
|
```
|
||||||
|
1cv8wsrv.lst:
|
||||||
|
cluster: 473f3f9e-4aea-43bc-ac45-ec98da8700c7
|
||||||
|
name: "Локальный кластер"
|
||||||
|
port: 1541
|
||||||
|
server: Server1C
|
||||||
|
```
|
||||||
|
|
||||||
|
Инфобазы (по содержимому `C:\Program Files\1cv8\srvinfo\reg_1541\`):
|
||||||
|
|
||||||
|
| GUID (короткий) | Размер служебных данных |
|
||||||
|
|---|---|
|
||||||
|
| 00d417ca | 7 355 MB |
|
||||||
|
| 426d93c8 | 4 793 MB |
|
||||||
|
| 688e50c3 | **15 178 MB** (самая большая) |
|
||||||
|
| 9e258b8f | 11 953 MB |
|
||||||
|
| **Итого** | **~39.3 GB** |
|
||||||
|
|
||||||
|
⚠ Это **не размер SQL БД**, а служебные данные кластера 1С (полнотекстовые индексы `1Cv8FTxt`, журналы, кэш). Реальный размер БД в SQL не получен (см. секцию 3).
|
||||||
|
|
||||||
|
Файла `1CV8Reg.lst` в корне `reg_1541` нет — только `1CV8Clst.lst` (3962 байта, обновляется каждую секунду — это live-state кластера).
|
||||||
|
|
||||||
|
**Имена инфобаз → ⚠ ПРОБЕЛ:** только GUID. Нужно либо узнать через рабочий `rac.exe` (rmngr-loop ломает), либо спросить у Олега, либо посмотреть подключения юзеров через 1С.
|
||||||
|
|
||||||
|
### Активная нагрузка
|
||||||
|
```
|
||||||
|
ragent PID=4048 CPU= 19s WS= 94 MB Threads=44 # service master
|
||||||
|
rmngr PID=3876 CPU= 7421s WS= 378 MB Threads=104 # cluster manager — high CPU (rmngr-loop)
|
||||||
|
rphost PID=2884 CPU= 1056s WS=1827 MB Threads=60 # working process
|
||||||
|
|
||||||
|
rphost connections:
|
||||||
|
Established: 26
|
||||||
|
Unique remote: 5 → ~5 активных удалённых клиентов сейчас
|
||||||
|
Listening on: 1540 (rmngr), 1541 (regport), 1560 (rphost extra)
|
||||||
|
|
||||||
|
Внешние подключения (не localhost):
|
||||||
|
192.168.1.18:12228 → :1560 (KASSA3 — постоянный коннект к 1С!)
|
||||||
|
```
|
||||||
|
|
||||||
|
**rmngr CPU=7421s за uptime 3h51min** = `7421/(3*3600+51*60) ≈ 53.4%` среднего одного ядра. Это **активный rmngr-loop**, рецепт лечения через `Restart-Service` уже задокументирован (см. `projects/buzharovo/server1c.md`).
|
||||||
|
|
||||||
|
### Лицензии 1С — ⚠ КРИТИЧНО
|
||||||
|
```
|
||||||
|
HASP/Sentinel hardware-ключ: Сервис hasplms — Stopped, Disabled
|
||||||
|
USB HASP/SafeNet/Aladdin устройств нет
|
||||||
|
|
||||||
|
Программные .lic файлы:
|
||||||
|
C:\Users\**\*.lic — не найдено
|
||||||
|
C:\ProgramData\1C\** — папки license нет
|
||||||
|
C:\Program Files\1cv8\srvinfo\**\*.lic — не найдено
|
||||||
|
|
||||||
|
Реестр:
|
||||||
|
HKLM:\SOFTWARE\1C — нет
|
||||||
|
HKLM:\SOFTWARE\Wow6432Node\1C — нет
|
||||||
|
```
|
||||||
|
|
||||||
|
**Гипотеза:** лицензия 1С — **программная с активацией через 1С (PIN-код)**, привязанная к HWID (CPU/мать/диск). Это значит:
|
||||||
|
- При переносе на новую VM лицензия **отвалится** → нужен повторный ввод PIN или резервный комплект пинкодов
|
||||||
|
- **Комплект пинкодов** хранится в личном кабинете 1С-Партнёра / у Олега — **нужно убедиться что есть доступ к пинкодам**
|
||||||
|
|
||||||
|
**Альтернативная гипотеза:** лицензия в облачном сервисе ИТС/КОРП (Activator) — тогда привязка через интернет, миграция проще.
|
||||||
|
|
||||||
|
⚠ **Action item:** уточнить у Олега, как активирована лицензия 1С и есть ли резервные пинкоды/доступ к ЛК 1С.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. MSSQL Server
|
||||||
|
|
||||||
|
### Версия
|
||||||
|
```
|
||||||
|
Microsoft SQL Server 2012 (64-бит, русская версия)
|
||||||
|
Build: 11.2.5058.0 (SP2 + KB2958429)
|
||||||
|
Instance: MSSQL11.MSSQLSERVER (default)
|
||||||
|
Tools: SQL Server 2012 Management Studio (x64+x86)
|
||||||
|
SQL Server 2008 Object Management Tools (legacy)
|
||||||
|
|
||||||
|
Службы:
|
||||||
|
MSSQLSERVER — Running, Automatic
|
||||||
|
SQLBrowser — Stopped, Disabled
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠ **Mainstream support EOL: 2017-07-11. Extended support EOL: 2022-07-12.** Без security updates 4-й год.
|
||||||
|
|
||||||
|
### Listening
|
||||||
|
```
|
||||||
|
TCP listening:
|
||||||
|
0.0.0.0:1433 ← MSSQL (на всех интерфейсах, включая 100.70.75.103!)
|
||||||
|
0.0.0.0:1540 ← 1С rmngr
|
||||||
|
0.0.0.0:1541 ← 1С regport (где живёт кластер)
|
||||||
|
0.0.0.0:1560 ← 1С rphost
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠ **MSSQL слушает на NetBird-IP** (100.70.75.103:1433) — то есть из любого NetBird-пира можно попытаться подключиться к SQL. Не критично пока пароль `sa` не известен, но при миграции нужно ограничить.
|
||||||
|
|
||||||
|
### БД 1С — ⚠ ПРОБЕЛ
|
||||||
|
SQL Auth не получили:
|
||||||
|
```
|
||||||
|
Win Auth (SERVER1C\dttb): Login failed (нет SQL-логина)
|
||||||
|
sa без пароля: Login failed
|
||||||
|
sa / 1qaz!QAZ: Login failed
|
||||||
|
sa / Sa12345: Login failed
|
||||||
|
```
|
||||||
|
|
||||||
|
Файлы `*.mdf` / `*.ldf` через `Get-ChildItem -Recurse C:\,D:\,E:\` не нашлись за 50 секунд — либо ACL блокирует, либо они в нестандартном месте, либо файлы 1С хранятся в файловом, а не SQL формате (маловероятно для версии 8.3 с MSSQL-инстансом).
|
||||||
|
|
||||||
|
⚠ **Action item:** получить от Олега `sa`-пароль (или создать SQL-логин для `dttb`). Без этого размер БД и план бэкапа неполный.
|
||||||
|
|
||||||
|
### SQL Backup история — ПРОБЕЛ (тот же auth-issue)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Касса и фискализация
|
||||||
|
|
||||||
|
**Установленный софт (поиск по реестру uninstall):**
|
||||||
|
```
|
||||||
|
Из паттерна 'Атол|Штрих|Atol|Shtrih|Evotor|Касс|Drv|Fiscal|ОФД|Меркурий':
|
||||||
|
→ НИЧЕГО не установлено
|
||||||
|
|
||||||
|
Sentinel LDK License Manager — есть служба (Disabled), но это для других программ
|
||||||
|
```
|
||||||
|
|
||||||
|
**USB-устройства (Win32_PnPEntity, классы Ports/USB/HIDClass):**
|
||||||
|
```
|
||||||
|
HID-compliant vendor-defined device (Asus mobo HID)
|
||||||
|
Microsoft ACPI/UEFI/SMBIOS интерфейсы
|
||||||
|
Microsoft IPv4/IPv6 Transition Adapter Bus
|
||||||
|
Microsoft XPS Document Writer
|
||||||
|
Адаптеры 6to4 / ISATAP
|
||||||
|
|
||||||
|
→ Ни одного USB-фискальника, COM-порта (кроме материнского COM1), драйвера ККТ.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Реестр касс/фискальников:**
|
||||||
|
```
|
||||||
|
HKLM:\SOFTWARE\Atol — нет
|
||||||
|
HKLM:\SOFTWARE\Shtrih-M — нет
|
||||||
|
HKLM:\SOFTWARE\Drv — нет
|
||||||
|
HKLM:\SOFTWARE\1C\Драйвер ККТ — нет
|
||||||
|
HKCR\AddIn.DrvFR — нет
|
||||||
|
```
|
||||||
|
|
||||||
|
**ARP-таблица 192.168.1.0/24:**
|
||||||
|
```
|
||||||
|
192.168.1.1 — gateway (router)
|
||||||
|
192.168.1.2 — ?
|
||||||
|
192.168.1.3 — ?
|
||||||
|
192.168.1.4 — ?
|
||||||
|
192.168.1.18 — KASSA3 ★ касса 1
|
||||||
|
192.168.1.53 — DESKTOP-JSS8L05 рабочий ПК
|
||||||
|
192.168.1.99 — KASSIRULICA2 ★ касса 2
|
||||||
|
192.168.1.127 — ?
|
||||||
|
192.168.1.139 — Nadezhda рабочий ПК
|
||||||
|
192.168.1.200 — ?
|
||||||
|
192.168.1.249 — Server1C (сам)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Активный TCP в момент разведки:**
|
||||||
|
```
|
||||||
|
192.168.1.18:12228 ←→ Server1C:1560 (rphost) ESTABLISHED
|
||||||
|
```
|
||||||
|
|
||||||
|
### Вывод
|
||||||
|
|
||||||
|
**Кассы НЕ привязаны к серверу через USB.** Это **отдельные ПК-кассы** в локальной сети:
|
||||||
|
- `KASSA3` (192.168.1.18) — активно общается с 1С на rphost-порту 1560 (это значит запущена 1С на самой кассе ИЛИ внешняя компонента 1С DCOM)
|
||||||
|
- `KASSIRULICA2` (192.168.1.99) — вероятно вторая касса, не активна в момент разведки
|
||||||
|
|
||||||
|
**Это огромный плюс для миграции** — серверу не нужно физически передавать USB-устройства. Касса продолжает работать локально на своём ПК, а к 1С обращается по сети. После миграции достаточно изменить IP/имя сервера 1С в её настройках на новый адрес (через NetBird или публичный IP HomeLab).
|
||||||
|
|
||||||
|
⚠ **Не выяснено:** какое ПО на самих ПК-кассах (1С Розница? собственная программа? драйвер какого ККТ?). Это нужно увидеть на месте — уточнить у Олега или удалёнкой через RDP/AnyDesk на 192.168.1.18.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Сеть и провайдер
|
||||||
|
|
||||||
|
### LAN
|
||||||
|
```
|
||||||
|
Description: Семейство адаптеров Realtek PCIe GBE
|
||||||
|
IP: 192.168.1.249/24
|
||||||
|
Gateway: 192.168.1.1
|
||||||
|
DNS: 192.168.1.1
|
||||||
|
MAC: 00:E0:4C:68:9E:34
|
||||||
|
IPv6: fe80::2d5c:849d:c9ad:3409 (link-local)
|
||||||
|
```
|
||||||
|
|
||||||
|
13 хостов в подсети (см. ARP выше) — это весь офис.
|
||||||
|
|
||||||
|
### Канал
|
||||||
|
```
|
||||||
|
ping 1.1.1.1: 3 ms ← очень близкий апстрим у провайдера
|
||||||
|
ping 8.8.8.8: 15 ms
|
||||||
|
ping LXC 137 (NetBird HomeLab): 96–99 ms
|
||||||
|
|
||||||
|
Внешний IP: api.ipify.org timeout — определить не удалось
|
||||||
|
(либо firewall блокирует ipify, либо канал в момент проверки моргнул)
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠ **Action item:** уточнить у Олега провайдера (предположительно местный сельский WISP или РТК), скорость download/upload, наличие резервного канала и тип последней мили.
|
||||||
|
|
||||||
|
### NetBird
|
||||||
|
```
|
||||||
|
Daemon version: 0.68.3
|
||||||
|
Profile: default
|
||||||
|
FQDN: server1c.netbird.cloud
|
||||||
|
NetBird IP: 100.70.75.103/16
|
||||||
|
Management: Connected
|
||||||
|
Signal: Connected
|
||||||
|
Relays: 1/4 Available
|
||||||
|
Peers count: 31/58 Connected
|
||||||
|
```
|
||||||
|
|
||||||
|
NetBird работает стабильно, RTT до HomeLab 96-99ms.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Безопасность сервера
|
||||||
|
|
||||||
|
```
|
||||||
|
Антивирус: НЕ установлен (Kaspersky/Defender/ESET/etc — пусто)
|
||||||
|
Windows Updates: не проверяли явно, но Win 2012 R2 EOL уже с 2023
|
||||||
|
Public RDP: ОТКРЫТ на 185.13.47.2:3389
|
||||||
|
Активные RDP login (4624, 7 дней):
|
||||||
|
2026-05-07 09:53 SERVER1C\dttb from 176.62.183.186
|
||||||
|
2026-05-07 09:53 SERVER1C\dttb from 176.62.183.186 (sweb hosting? — наш rclone?)
|
||||||
|
SQL Server: 0.0.0.0:1433 (доступен по NetBird, не только localhost)
|
||||||
|
AnyDesk: запущен (parallel remote channel, без аудита)
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠ **Привести в порядок при миграции:**
|
||||||
|
- Закрыть RDP в Интернет, оставить только через NetBird
|
||||||
|
- Решить: AnyDesk нужен или нет (двойной канал = двойной риск)
|
||||||
|
- MSSQL bind на 127.0.0.1 + явный TCP-route через NetBird, не на 0.0.0.0
|
||||||
|
- Поставить Defender или другой АВ
|
||||||
|
- Включить регулярные Win Updates (если новая VM на 2022/2025 — само собой)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Краши — подтверждённый паттерн
|
||||||
|
|
||||||
|
Из v2-разведки за последние 30 дней:
|
||||||
|
|
||||||
|
**Kernel-Power 41 (грязные ребуты):**
|
||||||
|
- 2026-05-07 09:07 (1 раз)
|
||||||
|
- **2026-05-04: 24 раза** между 08:36 и 12:13 (!!) — катастрофа дня
|
||||||
|
- 2026-05-03: 2 раза (08:40, 09:27)
|
||||||
|
- 2026-05-02: 1 раз (08:41)
|
||||||
|
- 2026-05-01: 1 раз (08:34)
|
||||||
|
- 2026-04-30: 2 раза (11:56, 11:59)
|
||||||
|
|
||||||
|
Все события: `BugcheckCode=0`, `PowerButtonTimestamp=0`, `SleepInProgress=False` → классическое **отключение питания / brownout**, не BSOD, не overheating, не sleep.
|
||||||
|
|
||||||
|
**EventID 6008 (unexpected shutdown)** идут парой к каждому Kernel-Power 41 — подтверждает что система не успевала корректно завершиться.
|
||||||
|
|
||||||
|
⚠ **Концентрация во времени:** утренние крашы 8:30–12:00 (рабочее время в Бужарово) → совпадает с тем что нагрузка на сельскую сеть растёт утром (включаются плиты/обогреватели/насосы).
|
||||||
|
|
||||||
|
Подтверждение что миграция нужна.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Открытые вопросы для Олега (action items)
|
||||||
|
|
||||||
|
| # | Вопрос | Зачем |
|
||||||
|
|---|---|---|
|
||||||
|
| 1 | `sa`-пароль MSSQL? Или создать SQL-login для миграции? | Размер БД, бэкап, миграция данных |
|
||||||
|
| 2 | Лицензия 1С: программная или ключ? Где пинкоды для перепривязки? | Активировать на новой VM |
|
||||||
|
| 3 | Имена 4 инфобаз (по GUID): что в `00d417ca`, `426d93c8`, `688e50c3`, `9e258b8f`? | Маппинг при миграции |
|
||||||
|
| 4 | Что за ПО на KASSA3 / KASSIRULICA2? (драйвер ККТ, 1С Розница, собственный софт?) | Подтверждение совместимости |
|
||||||
|
| 5 | Провайдер в Бужарово, скорость канала, резервный канал? | Оценка устойчивости RDP/NetBird |
|
||||||
|
| 6 | Окно простоя для миграции (вечер пятницы? выходные?) | Планирование cutover |
|
||||||
|
| 7 | Бюджет на ИБП и на сетевое железо в Бужарово? | Альтернативно — починить «на месте», а не мигрировать |
|
||||||
|
| 8 | AnyDesk нужен в новой схеме или убираем? | Сужение attack surface |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Дополнительно собранные артефакты (на LXC 137)
|
||||||
|
|
||||||
|
- `/tmp/recon_server1c.py` — v1 (оригинальный)
|
||||||
|
- `/tmp/recon_v2.py`, `/tmp/recon_v3.py`, `/tmp/recon_v4b.py`, `/tmp/recon_v5.py` — последовательные итерации
|
||||||
|
- Все логи v1–v5 на Mac в `/tmp/recon_*_output.txt` (на момент сессии)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
См. далее: `decisions/2026-05-07-buzharovo-migration-plan.md`.
|
||||||
60
decisions/2026-05-08-buzharovo-1c-licensing-options.md
Normal file
60
decisions/2026-05-08-buzharovo-1c-licensing-options.md
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-08
|
||||||
|
type: decision
|
||||||
|
status: draft
|
||||||
|
tags: [buzharovo, 1c, licensing, plan]
|
||||||
|
related:
|
||||||
|
- "[[decisions/2026-05-07-buzharovo-recon]]"
|
||||||
|
- "[[decisions/2026-05-07-buzharovo-migration-plan]]"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Бужарово 1С — варианты легализации
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
На Server1C в Бужарово установлена **пиратская 1С** (через patches20 patcher — модифицирован `frame.dll`, подменён `techsys.dll`). Дистрибутив 1С 8.3.27.1606 оригинальный (LLC 1C-Soft signed). Подробности audit'а — `decisions/2026-05-07-buzharovo-recon.md`.
|
||||||
|
|
||||||
|
Реальный масштаб использования (уточнено 2026-05-08):
|
||||||
|
- **1 рабочая инфобаза** — RitmUl (на платформе **1С:Розница**, ~3.8 GB)
|
||||||
|
- **5 одновременных юзеров** (бухгалтерия + кассиры суммарно)
|
||||||
|
- Маркировка товаров (Честный знак) — **в скором времени обязательна**
|
||||||
|
- 2 ПК-кассы: KASSA3 (192.168.1.18), KASSIRULICA2 (192.168.1.99)
|
||||||
|
|
||||||
|
## Варианты (цены 2026)
|
||||||
|
|
||||||
|
### A. Файловая 1С (рекомендую)
|
||||||
|
| Позиция | Цена |
|
||||||
|
|---|---|
|
||||||
|
| Клиентские ПРОФ на 5 мест | 27 400 ₽ |
|
||||||
|
| 1С:Розница ПРОФ (если ещё не куплена) | 22 000 ₽ |
|
||||||
|
| 1С:ИТС ПРОФ — год (обязательно для маркировки) | ~12 000 ₽/год |
|
||||||
|
| ЭДО (Контур.ЭДО / СБИС / Такском) | 36-50 000 ₽/год |
|
||||||
|
| КЭП для оператора | 2-5 000 ₽/год |
|
||||||
|
| **Первый год** | **~80-100 000 ₽** |
|
||||||
|
| **Со 2-го года** | **~50-60 000 ₽/год** |
|
||||||
|
|
||||||
|
**Плюсы:** не нужна серверная 1С (-127k), не нужен MSSQL. 5 юзеров файловая отлично тянет. Размер 3.8 GB далеко от лимита (~10-15 GB).
|
||||||
|
|
||||||
|
### B. Клиент-серверная (старый паттерн)
|
||||||
|
+126 800 ₽ к варианту A на 1С Server PROF (x86-64). **Не оправдано** на масштабе 5 юзеров и 3.8 GB БД.
|
||||||
|
|
||||||
|
### C. 1С Облако (1С:Fresh)
|
||||||
|
~2 000 ₽/мес × 5 = 10 000 ₽/мес = 120 000 ₽/год. Без локального сервера, поддержка от 1С. На длинной дистанции дороже A.
|
||||||
|
|
||||||
|
### D. Программа «1С:Старт» для МСП
|
||||||
|
До 50% скидка от партнёра в регионе. Может сделать вариант A за ~50-60k ₽ в первый год. **Стоит уточнить у местного партнёра** (тот же кто RitmUl делал в Ульяновске?).
|
||||||
|
|
||||||
|
## Кассы и маркировка
|
||||||
|
- Кассы должны быть **ФФД 1.2** — проверить через X-отчёт на каждой
|
||||||
|
- Если ФФД 1.05 — перепрошивка ~3-5k ₽ × устройство, либо замена
|
||||||
|
- После обновления через ИТС в 1С:Розница появится поддержка Честного знака
|
||||||
|
|
||||||
|
## Что НЕ нужно
|
||||||
|
- ❌ Server PROF 1С (126 800 ₽) — лишний для масштаба
|
||||||
|
- ❌ MSSQL Standard — файловая ИБ не использует SQL
|
||||||
|
- ❌ 1С:Бухгалтерия отдельно — Accounting инфобаза не используется по словам Олега
|
||||||
|
|
||||||
|
## Action items
|
||||||
|
1. Зайти на **portal.1c.ru** под учёткой организации — посмотреть существующие покупки лицензий
|
||||||
|
2. Связаться с **местным 1С-партнёром** (Ульяновск, RitmUl) — узнать про «1С:Старт»
|
||||||
|
3. **Проверить ФФД 1.2** на кассах
|
||||||
|
4. Уточнить какие категории товаров маркируются и **дедлайн** введения
|
||||||
75
decisions/2026-05-08-buzharovo-sql-native-backup.md
Normal file
75
decisions/2026-05-08-buzharovo-sql-native-backup.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-08
|
||||||
|
type: decision
|
||||||
|
tags: [decision, buzharovo, 1c, backup, mssql, effector-saver]
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2026-05-08: Бэкап Бужарово 1С — переход с Effector Saver DT на native MS SQL Backup
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
|
||||||
|
Вечером 2026-05-08, после починки rmngr-loop, регулярная задача `Бэкап 1Cv8` в Effector Saver Free 4.8/2 на `server1c.netbird.cloud` (Win 2012 R2, MSSQL 2012 SP4, 1С 8.3.27.1606) **отказывалась завершаться успешно**. Шесть подряд запусков (19:51 → 22:21) падали с одной и той же связкой ошибок:
|
||||||
|
|
||||||
|
1. `HRESULT=800401F3` — `V83.ComConnector` не зарегистрирован → Olег зарегистрировал через UI Effector Saver, переключился на 64-bit
|
||||||
|
2. `HRESULT=80004005` — "Администратор кластера не аутентифицирован" — у кластера 1С есть проверка авторизации, но **в кластере нет ни одного admin'а**, а добавить нельзя:
|
||||||
|
- В Серверной консоли 1С: `Локальный кластер → Администраторы` показывает количество=0, форма "Новый администратор" заполнена, но при OK **просит логин/пароль и не принимает agent-уровневый admin** (создан Olегом отдельно)
|
||||||
|
- Через COM `V83.COMConnector`: `AuthenticateAgent('admin', '1qaz!QAZ')` проходит, но `RegClusterAdmin` падает "пользователь не выполнил аутентификацию для требуемой операции" (chicken-and-egg: для создания первого cluster admin нужен уже cluster admin)
|
||||||
|
- Через `rac` с `--agent-user`: cluster operations не принимают agent-уровневую аутентификацию (design choice 1С)
|
||||||
|
|
||||||
|
3. `Ошибка исключительной блокировки информационной базы` — даже без cluster admin'а Effector Saver продолжает выгрузку, но не может получить эксклюзив, потому что в БД активные сессии. Особенно "вечная" сессия `КулябинПИ sid=4514, начат 12:55:42` — после моего рестарта службы 1С в 19:30 и последующих SQL `KILL` сессий, она **раз за разом возвращается** (вероятно, реально открытый где-то тонкий клиент Павла Ивановича + persistent state в `1CV8Clst.lst`).
|
||||||
|
|
||||||
|
## Что пробовали и почему не сработало
|
||||||
|
|
||||||
|
| Попытка | Результат |
|
||||||
|
|---|---|
|
||||||
|
| `regsvr32` x64 `comcntr.dll` | ✅ COM зарегистрирован, переключение Effector Saver на 64-bit убрало `800401F3` |
|
||||||
|
| `Restart-Service '1C:Enterprise 8.3 Server Agent'` | ✅ rmngr вылечен, но session 4514 в реестре кластера **persists** между рестартами |
|
||||||
|
| `KILL` SQL-сессий через `sa/Qwer1122334400` | ✅ временно (sess=0, locks=0), но 1С rphost восстанавливает соединения за 1-2 мин и сессия 4514 reanimates |
|
||||||
|
| `rac cluster admin register` без auth | ❌ "оператор не существует" |
|
||||||
|
| `RegClusterAdmin` через COM с `AuthenticateAgent` | ❌ "пользователь не аутентифицирован для требуемой операции" |
|
||||||
|
| GUI Серверной консоли 1С — добавить cluster admin | ❌ форма не сохраняет, требует cluster auth (которой нет) |
|
||||||
|
|
||||||
|
Тупик: **в кластере БД 1С нет cluster admin'а, и зарегистрировать первого нельзя ни через GUI, ни через rac, ни через COM.** Возможный единственный путь — обнулить `srvinfo\reg_1541\1CV8Clst.lst` целиком (потеря и админов, и регистрации ИБ — нужна перерегистрация ИБ с SQL params; рискованно).
|
||||||
|
|
||||||
|
## Решение: native MS SQL Backup
|
||||||
|
|
||||||
|
Effector Saver делает **DT-выгрузку через 1С Конфигуратор** (`1cv8.exe DESIGNER /DumpIB`), которая требует эксклюзив на ИБ. Это исторический способ для **файловых** ИБ. Для **клиент-серверных** ИБ на MS SQL правильный путь — **`BACKUP DATABASE` на уровне SQL Server**:
|
||||||
|
|
||||||
|
- ✅ **Online backup** — снимает копию во время работы, не требует эксклюзива
|
||||||
|
- ✅ Не зависит от 1С-кластера, cluster admin'а, активных сессий
|
||||||
|
- ✅ С `WITH COMPRESSION` файл сжимается ~3:1 (3.8 GB → 1.1 GB)
|
||||||
|
- ✅ Быстрее — у нас 2 секунды на 3.8 GB БД
|
||||||
|
- ✅ Восстанавливается одним запросом `RESTORE DATABASE`
|
||||||
|
|
||||||
|
Реализация:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
BACKUP DATABASE [RitmUl]
|
||||||
|
TO DISK = N'C:\backup\RitmUl_<ts>.bak'
|
||||||
|
WITH FORMAT, INIT, NAME = N'RitmUl-Full',
|
||||||
|
SKIP, NOREWIND, NOUNLOAD, COMPRESSION, COPY_ONLY,
|
||||||
|
STATS = 5
|
||||||
|
```
|
||||||
|
|
||||||
|
`COPY_ONLY` — чтобы наш бэкап не ломал log chain если потом настроят differential/log backups.
|
||||||
|
|
||||||
|
Запускается через WinRM `python3 + System.Data.SqlClient` с LXC 139 `severny-les` (бот). Storage: `C:\backup\` на server1c (374 GB свободно).
|
||||||
|
|
||||||
|
## Артефакт
|
||||||
|
|
||||||
|
- **Первый успешный бэкап 2026-05-08:** `C:\backup\RitmUl_2026-05-08_2225.bak` (1105 MB)
|
||||||
|
- **Скрипт:** `/root/clawd/scripts/sql_native_backup.py` на LXC 139
|
||||||
|
|
||||||
|
## TODO (после возвращения Olега из Египта)
|
||||||
|
|
||||||
|
1. **Автоматизировать** — добавить cron на LXC 139 `severny-les`: каждый день в 03:00 МСК запускать `sql_native_backup.py`, ротировать (хранить N дней). Алерт в Telegram-группу при сбое.
|
||||||
|
2. **Ротация и трансфер** — настроить копирование `.bak` файлов на внешний носитель (Nextcloud / S3 / Gitea-LFS).
|
||||||
|
3. **Тест восстановления** — раз в N дней автоматически развернуть бэкап в тестовую БД и проверить целостность.
|
||||||
|
4. **Effector Saver** оставить как есть, не чинить (чинить cluster admin = разбирать `1CV8Clst.lst` бинарник, риск убить ИБ). Можно отключить регулярную задачу `Бэкап 1Cv8` в Effector Saver чтобы не плодились алерты "ошибка".
|
||||||
|
5. **TODO документировать** SQL creds в `projects/dttb/credentials.md` (см. блок Бужарово).
|
||||||
|
|
||||||
|
## Связанные
|
||||||
|
|
||||||
|
- [[projects/buzharovo/server1c]] — обновлён с SQL backup как новый канон
|
||||||
|
- [[projects/buzharovo/severny-les-bot]] — бот теперь умеет бэкапить через WinRM+SQL
|
||||||
|
- [[decisions/2026-05-07-buzharovo-1c-rmngr-loop-after-crash]] — про rmngr (отдельная история, починена)
|
||||||
77
decisions/2026-05-08-severny-les-bot-buzharovo.md
Normal file
77
decisions/2026-05-08-severny-les-bot-buzharovo.md
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-08
|
||||||
|
type: decision
|
||||||
|
tags: [decision, buzharovo, bot, openclaw, watchdog, telegram]
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2026-05-08: Северный лес — отдельный AI-ассистент + watchdog для server1c (Бужарово)
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
|
||||||
|
Олег уезжает в отпуск в Египет 2026-05-09 → 2026-05-22. На server1c (Бужарово, VDS 185.13.47.2 / NetBird 100.70.75.103) недавно (2026-05-07) был rmngr-loop, который лечится только `Restart-Service '1C:Enterprise 8.3 Server Agent (x86-64)' -Force` — ребут не помогает (см. [[decisions/2026-05-07-buzharovo-1c-rmngr-loop-after-crash]]).
|
||||||
|
|
||||||
|
Пока Олег в отпуске, нужно:
|
||||||
|
1. Чтобы кто-то узнавал когда сервер упал (Telegram-группа руководящего состава Северного леса);
|
||||||
|
2. Чтобы можно было дёрнуть восстановительное действие (`/approve restart_1c`) не дожидаясь возвращения Олега из Египта.
|
||||||
|
|
||||||
|
Через ~2 недели (после Египта) планируется миграция server1c с VDS на собственный сервер. Бот должен работать **до и после** миграции — поэтому он не на самом server1c, а на dttb-Proxmox через NetBird.
|
||||||
|
|
||||||
|
## Развилка: clawdbot vs openclaw vs другой watchdog
|
||||||
|
|
||||||
|
Рассматривались три варианта:
|
||||||
|
|
||||||
|
| Вариант | Плюсы | Минусы |
|
||||||
|
|---|---|---|
|
||||||
|
| **clawdbot** (как у [[projects/niikn/clawdbot-niikn|Максимки-Мауля]]) | Проверенный рецепт, проще | Старый стек, не обновляется. exec-approvals самописные. |
|
||||||
|
| **openclaw** (свежий стек 137) | Встроенный `exec-approvals.json` whitelist для shell-команд. Plugins, skills, делегирование на Opus 4.7 через Max. Свежий, активная разработка. | Жёсткая schema, есть тонкости (bonjour, IPv6, FakeIP DNS) — но они уже разобраны на 137. |
|
||||||
|
| **Голый watchdog без AI** | Минимум зависимостей. | Нет диагностики "почему упало". Невозможно дёрнуть `/restart_1c` через `/approve` — только ручной WinRM. |
|
||||||
|
|
||||||
|
**Решение:** **openclaw** — встроенный whitelist для shell-команд (`exec-approvals.json`) — это прямо то что нужно для `/approve` flow. Плюс Опус 4.7 через Max.
|
||||||
|
|
||||||
|
## Архитектура
|
||||||
|
|
||||||
|
**Изоляция от Максимки (LXC 137):** не подвешиваем как доп.канал на 137 — если openclaw на 137 упадёт (а это бывает: bonjour, FakeIP, Kiro 402), упадут и алерты Бужарово. Для критичной мониторинг-задачи нужен **отдельный** инстанс.
|
||||||
|
|
||||||
|
**Хост:** новый LXC 139 на dttb (10.0.0.240, NetBird 100.70.212.78, Ubuntu 24.04, 2c/4GB/10GB).
|
||||||
|
|
||||||
|
**Два слоя независимых:**
|
||||||
|
1. **buzharovo-watchdog** — bash + curl→TG bot API напрямую, systemd timer 60s. **Не зависит от openclaw.** Если AI-часть упала, алерт всё равно дойдёт.
|
||||||
|
2. **openclaw 2026.5.7** — AI-помощник для диагностики и `/approve`-action'ов через WinRM.
|
||||||
|
|
||||||
|
**Алерт-уровни:**
|
||||||
|
- `OK` — всё доступно;
|
||||||
|
- `WARNING` — часть проверок упала;
|
||||||
|
- `WARNING_NETBIRD` — NetBird до server1c лежит, публично сервер виден;
|
||||||
|
- `CRITICAL` — сервер не отвечает ни публично, ни через NetBird.
|
||||||
|
|
||||||
|
Антиспам: алерт шлётся **только при смене уровня**, состояние в `/var/lib/severny-les/state.json`.
|
||||||
|
|
||||||
|
**WinRM-actions с подтверждением:**
|
||||||
|
- read-only без approval (`/status`, `/check_1c`, `/check_rmngr`);
|
||||||
|
- destructive с обязательным `/approve` от Олега `1292155421` (`/restart_1c`, `/kill_orphan_ragent`);
|
||||||
|
- ребута сервера НЕ даём (по опыту 2026-05-07 не помогает rmngr-loop).
|
||||||
|
|
||||||
|
## Превентивные правки на старте (уроки 137)
|
||||||
|
|
||||||
|
Все три "ловушки openclaw" пропатчены сразу:
|
||||||
|
1. `plugins.entries.bonjour.enabled = false` — против mDNS crash-loop (см. [[projects/dttb/openclaw#Crash-loop-каждые-40-сек]]).
|
||||||
|
2. `pct set 139 --nameserver '1.1.1.1 8.8.8.8'` + правка `/etc/resolv.conf` — против FakeIP DNS от 10.0.0.1.
|
||||||
|
3. `NODE_OPTIONS=--dns-result-order=ipv4first` в systemd unit — против IPv6-сбоев Telegram API.
|
||||||
|
|
||||||
|
systemd unit для openclaw — **system-level** (`/etc/systemd/system/openclaw-gateway.service`), а не `--user` как на 137. В LXC без user-session `systemctl --user` не работает (`Failed to connect to bus`).
|
||||||
|
|
||||||
|
## Что осталось сделать после возвращения Олега
|
||||||
|
|
||||||
|
1. **NetBird ACL** `severny-les` → `server1c` (порт 5985 TCP минимум) — без него WinRM-actions не работают, watchdog мониторит только публичные проверки.
|
||||||
|
2. **Добавить @bz_sl_bot в TG-группу** руководящего состава, узнать `chat_id`, обновить `/etc/severny-les/watchdog.env` `BZ_TG_CHAT` и `openclaw.json` `groupAllowFrom`.
|
||||||
|
3. После миграции server1c на свой сервер — обновить IP в `/root/clawd/INFRASTRUCTURE.md` и в `buzharovo-watchdog.sh`.
|
||||||
|
|
||||||
|
## Артефакты
|
||||||
|
|
||||||
|
- LXC 139 `severny-les` (10.0.0.240)
|
||||||
|
- TG bot `@bz_sl_bot` (token `8322860033:...`)
|
||||||
|
- Справочник: [[projects/buzharovo/severny-les-bot]]
|
||||||
|
- Persona: `/root/clawd/{IDENTITY,INFRASTRUCTURE,USER,SOUL,TOOLS,MEMORY,HEARTBEAT}.md`
|
||||||
|
- Скрипты: `/root/clawd/scripts/check_buzharovo.sh`, `winrm_lib.py`, `check_1c_service.py`, `check_rmngr_cpu.py`, `restart_1c_agent.py`, `kill_orphan_ragent.py`, `heartbeat.sh`
|
||||||
|
- Watchdog: `/usr/local/bin/buzharovo-watchdog.sh` + `.service` + `.timer` (60s); `netbird-watchdog` clone с 137 (2 мин)
|
||||||
|
- Whitelist: `/root/.openclaw/exec-approvals.json`
|
||||||
84
decisions/2026-05-12-sergey-instagram-iphone-fakeip.md
Normal file
84
decisions/2026-05-12-sergey-instagram-iphone-fakeip.md
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-12
|
||||||
|
type: decision
|
||||||
|
status: applied
|
||||||
|
tags: [openwrt, podkop, fakeip, amneziawg, iphone, doh, instagram, sergey]
|
||||||
|
aliases: [Sergey Instagram, OpenWrt_Sergey Instagram, iPhone DoH FakeIP]
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2026-05-12 — Sergey: «Инста не работает» — диагноз и фикс
|
||||||
|
|
||||||
|
## Кейс
|
||||||
|
|
||||||
|
Сергей (объект [[../projects/sergey/README|OpenWrt_Sergey]], Одинцово, Cudy TR3000 v1, 100.70.110.164) пожаловался Олегу — на телефоне **не открывается Instagram** через его роутер. Стек обхода: podkop v0.7.14 + sing-box 1.12.12 + AmneziaWG (kmod) до VLESS-Singapore endpoint `202.71.12.186`, community_lists = `russia_inside`, `telegram`, `meta`.
|
||||||
|
|
||||||
|
## Что проверил (на роутере)
|
||||||
|
|
||||||
|
| Проверка | Результат |
|
||||||
|
|---|---|
|
||||||
|
| AmneziaWG `awg0` handshake | свежий (1:37 назад), 11.5 GiB rx |
|
||||||
|
| Sing-box процесс | running PID 11491 |
|
||||||
|
| nft mangle + tproxy 127.0.0.1:1602 | 108k TCP / 2598 UDP пакетов прошли |
|
||||||
|
| FakeIP для `www.instagram.com` через `192.168.1.1` (dnsmasq роутера) | `198.18.0.17` ✅ |
|
||||||
|
| FakeIP для `i.instagram.com` | `198.18.0.6` ✅ |
|
||||||
|
| FakeIP для `scontent.cdninstagram.com` | `198.18.0.27` ✅ |
|
||||||
|
| `curl --interface awg0 https://www.instagram.com/` с роутера | HTTP/2 200 ✅ |
|
||||||
|
| WAN exit IP без VPN | `217.73.118.172` (NetByNet, РФ) |
|
||||||
|
| WAN exit IP через `awg0` | `202.71.12.186` (Singapore) ✅ |
|
||||||
|
| `podkop list_update` | прошёл 09:13 сегодня без ошибок |
|
||||||
|
| DNS 8.8.8.8 / 1.1.1.1 не режется провайдером | подтверждено nslookup'ом |
|
||||||
|
|
||||||
|
**На стороне роутера всё исправно.** Никаких правок инфраструктуры не нужно.
|
||||||
|
|
||||||
|
## Реальная причина
|
||||||
|
|
||||||
|
В DHCP-leases роутера активен ровно **один клиент** — `192.168.1.102`, MAC `2e:7f:8c:ce:07:8a` (рандомизированный — бит `02` в первом октете), т.е. iPhone/Android с приватным Wi-Fi-MAC. Все маркеры указывают на **iPhone, который обходит роутерный DNS**:
|
||||||
|
|
||||||
|
1. **iCloud Private Relay** — целиком тоннелирует трафик Safari + системные DNS через Apple-серверы (`mask.icloud.com`), минуя локальный dnsmasq. FakeIP не успевает подменить IP.
|
||||||
|
2. **Encrypted DNS** в Safari / приложении Instagram / Chrome (DoH к `1.1.1.1:443` или `dns.google:443` по TCP) — те же симптомы.
|
||||||
|
3. **Кастомный DNS-профиль** в настройках Wi-Fi сети — устройство просто игнорирует роутерный DNS.
|
||||||
|
|
||||||
|
В любом из трёх случаев клиент получает **реальный IP** `157.240.x.x` от внешнего DoH-резолвера, и DPI провайдера (`NetByNet`) блочит TLS handshake по SNI `instagram.com`.
|
||||||
|
|
||||||
|
## Фикс — клиент-сайд (приоритет)
|
||||||
|
|
||||||
|
Скажи Сергею выключить на iPhone в таком порядке:
|
||||||
|
|
||||||
|
1. **Настройки → имя сверху → iCloud → Частный узел → ВЫКЛ**
|
||||||
|
2. **Настройки → Wi-Fi → ⓘ его сети → Настройка DNS → Автоматически**
|
||||||
|
3. **Safari → Конфиденциальность и безопасность → Скрывать IP-адрес → ВЫКЛ**
|
||||||
|
4. Если ходит через **Chrome**: `chrome://settings/security` → DNS через HTTPS → **ВЫКЛ**
|
||||||
|
5. Wi-Fi выкл/вкл на телефоне (сбросить кэш DNS клиента)
|
||||||
|
|
||||||
|
Этих действий достаточно в **80%+ случаев** для подобных сетапов.
|
||||||
|
|
||||||
|
## Фикс — роутер-сайд (если клиентский путь не помог)
|
||||||
|
|
||||||
|
В podkop v0.7.14 **нет встроенной опции** "force DNS / block DoH" — делать вручную через nft. Опционально — у домашнего OpenWrt Олега это уже сделано (`projects/dttb/openwrt-router.md`: «DNS Hijack: перехватывает порт 53 → 10.0.0.1»).
|
||||||
|
|
||||||
|
Шаги для Сергея (если потребуется):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# 1) Принудительный редирект исходящего DNS:53 на роутер
|
||||||
|
nft 'add rule inet fw4 dstnat iifname "br-lan" meta l4proto { tcp, udp } th dport 53 dnat ip to 192.168.1.1:53'
|
||||||
|
|
||||||
|
# 2) Drop DoH/DoT к публичным резолверам (TCP/443 + TCP/853)
|
||||||
|
nft 'add set inet fw4 doh_servers { type ipv4_addr; flags interval; elements = { 1.1.1.1, 1.0.0.1, 8.8.8.8, 8.8.4.4, 9.9.9.9, 149.112.112.112 } }'
|
||||||
|
nft 'add rule inet fw4 forward iifname "br-lan" ip daddr @doh_servers tcp dport { 443, 853 } reject with tcp reset'
|
||||||
|
|
||||||
|
# 3) Закрепить в /etc/firewall.user или uci
|
||||||
|
```
|
||||||
|
|
||||||
|
Также можно поднять AdGuard Home (как у Олега в HomeLab) — он по умолчанию форсит свой `:53` и фильтрует DoH-домены. Сейчас у Сергея AGH **не установлен** — стек чисто `dnsmasq → 127.0.0.42 (sing-box) → upstream`.
|
||||||
|
|
||||||
|
## Что НЕ является проблемой
|
||||||
|
|
||||||
|
- **Шум в логе sing-box** — `ERROR ... {GUID}-netseer-ipaddr-assoc.xy.fbcdn.net: empty result`. Это Meta NetSeer probes (anti-CDN-detection), штатное поведение Meta. Игнорировать.
|
||||||
|
- **`check_fakeip` показывает 217.73.118.172** — это российский WAN IP роутера. Тестовый домен (`ip.podkop.fyi`) не в community-listах, идёт direct через WAN — это норма для проверки.
|
||||||
|
|
||||||
|
## Связанное
|
||||||
|
|
||||||
|
- [[../projects/sergey/README]] — полный recon роутера
|
||||||
|
- [[../snippets/podkop-fakeip-diagnostics]] — типовой playbook для диагностики любого подкоп-роутера
|
||||||
|
- [[../projects/dttb/openwrt-router]] — домашний OpenWrt Олега, где DNS-hijack уже включён
|
||||||
|
- [[2026-04-30-openwrt-homelab-agh-podkop-chain]] — стек AGH+podkop у Олега дома (как референс)
|
||||||
85
decisions/2026-05-14-buzharovo-watchdog-public-only.md
Normal file
85
decisions/2026-05-14-buzharovo-watchdog-public-only.md
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-14
|
||||||
|
type: decision
|
||||||
|
tags: [decision, buzharovo, watchdog, netbird, monitoring, openclaw]
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2026-05-14: Watchdog Бужарово — только публичный канал, NetBird вынесен из alert level
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
|
||||||
|
Олег в Египте, прислал что бот "сыпал ошибками вчера, попросил отключить мониторинг". Разведка:
|
||||||
|
|
||||||
|
1. **Все сервисы на LXC 139 живы** (`openclaw-gateway`, `buzharovo-watchdog.timer`, `netbird-watchdog.timer`, `netbird.service` — `active+enabled`). Олег ничего не отключал.
|
||||||
|
2. **Watchdog v1 правильно держал `WARNING_NETBIRD`** (последний алерт 13 мая ~19:32 МСК), антиспам корректный — повторных алертов не слал.
|
||||||
|
3. **Истинный источник "ошибок"** — `openclaw primary model = omniroute/cc/claude-opus-4-7` упёрся в лимит Max-подписки:
|
||||||
|
```
|
||||||
|
omniroute (cc/claude-opus-4-7) returned a billing error — your API key has run out of credits
|
||||||
|
400 [400]: You're out of extra usage. Add more at claude.ai/settings/usage and keep going.
|
||||||
|
```
|
||||||
|
Каждое сообщение в боте + каждое ночное `memory-core dreaming` (cron 03:00) → billing 400 → failover на `kr/claude-sonnet-4.5`. На клиенте часть запросов могла отдаться с ошибкой раньше чем failover отработал.
|
||||||
|
4. **Server1C NetBird daemon (Windows)** регулярно flap'ает, `last_seen=2026-05-13T08:24:26` — > 25 часов вне mesh, хотя сервер сам публично жив (ping + RDP 3389 OK).
|
||||||
|
|
||||||
|
## Решения
|
||||||
|
|
||||||
|
### Фикс 1: primary model → free Sonnet 4.5
|
||||||
|
|
||||||
|
`/root/.openclaw/openclaw.json`:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"primary": "omniroute/kr/claude-sonnet-4.5",
|
||||||
|
"fallbacks": [
|
||||||
|
"omniroute/cc/claude-sonnet-4-6",
|
||||||
|
"omniroute/gh/claude-sonnet-4.5",
|
||||||
|
"omniroute/cc/claude-opus-4-7"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Hot-reload подхватился. Backup конфига — `/root/.openclaw/openclaw.json.bak.opus-billing-<ts>`.
|
||||||
|
|
||||||
|
**Возврат на Opus как primary — только после пополнения Max** или подключения второго конектора в OmniRoute.
|
||||||
|
|
||||||
|
### Фикс 2: watchdog v2 — только публичный канал
|
||||||
|
|
||||||
|
Переписан `/usr/local/bin/buzharovo-watchdog.sh`. Логика alert-level **больше не учитывает NetBird-проверки**:
|
||||||
|
|
||||||
|
- `OK` — `ping 185.13.47.2` ✓ + `TCP 3389` (RDP) ✓
|
||||||
|
- `DEGRADED` — один из публичных упал
|
||||||
|
- `CRITICAL` — оба публичных упали
|
||||||
|
|
||||||
|
NetBird-уровень (`ping 100.70.75.103` + `TCP 5985`) **только логируется** в `state.json` (`ping_nb`, `winrm_nb`), но не меняет level и не порождает алерт.
|
||||||
|
|
||||||
|
При первом алерте в новую сессию (prev_level=INIT) добавляется пометка:
|
||||||
|
> _NetBird до сервера сейчас лежит — это известная регулярная проблема со стороны Windows-сервера, не влияет на работу 1С для пользователей. Watchdog проверяет только публичный канал._
|
||||||
|
|
||||||
|
**Почему так:** NetBird daemon на Server1C (Windows 2012 R2) теряет mesh-сессию регулярно (memory `feedback_netbird_watchdog`). Лечится `Restart-Service netbird` через RDP — но это ручная операция, и поток алертов из-за этого был шумом, а не сигналом. Сервер для пользователей в Бужарово при этом работает — 1С локально доступна.
|
||||||
|
|
||||||
|
**Что теряем:** WinRM-actions (`check_1c_service.py`, `check_rmngr_cpu.py`, `restart_1c_agent.py`, `sql_native_backup.py`) идут через NetBird (`100.70.75.103:5985`). Когда NetBird падает — эти actions недоступны. Бот в группе об этом честно скажет: "Не могу проверить состояние службы 1С — туннель до сервера временно лежит". Восстанавливается после `Restart-Service netbird` на server1c через RDP.
|
||||||
|
|
||||||
|
**Что НЕ теряем:** алерты о реально критичных событиях (сервер физически лёг публично, сеть провайдера упала, RDP закрылся).
|
||||||
|
|
||||||
|
## Деплой
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pct push 139 wd.sh /usr/local/bin/buzharovo-watchdog.sh
|
||||||
|
chmod +x /usr/local/bin/buzharovo-watchdog.sh
|
||||||
|
chown root:root /usr/local/bin/buzharovo-watchdog.sh
|
||||||
|
echo "{}" > /var/lib/severny-les/state.json # force re-evaluate
|
||||||
|
# Manual run → level=OK, alert "Мониторинг включён" ушёл в группу
|
||||||
|
```
|
||||||
|
|
||||||
|
## Обновления в vault и persona
|
||||||
|
|
||||||
|
- `/root/clawd/MEMORY.md` на LXC 139 — добавлены уроки про Opus billing + watchdog v2
|
||||||
|
- [[projects/buzharovo/severny-les-bot]] — обновить ссылку на watchdog v2 (TODO)
|
||||||
|
- Этот decision-файл
|
||||||
|
|
||||||
|
## NetBird route 10.0.0.0/24 — попутно
|
||||||
|
|
||||||
|
Существующий route `Dom` (`cud7q73l0ubs73dr3gc0`) advertised через peer `pve 100.70.121.235 (Эстония)`, **disconnected**. Переключил routing peer на **`openclaw` (`d79s9g2fadhs739mihkg`)** через PUT `/api/routes/cud7q73l0ubs73dr3gc0`. Mac получил доступ к 10.0.0.0/24 через NetBird → openclaw → LAN.
|
||||||
|
|
||||||
|
## TODO (опционально, не сейчас)
|
||||||
|
|
||||||
|
- **Reverse SSH-туннель** server1c → severny-les для WinRM-actions без зависимости от NetBird. Server1C сам делает outbound SSH → LXC 139 пробрасывает 127.0.0.1:55985 → server1c:5985. WinRM-скрипты целятся в `localhost:55985`. Решает проблему "NetBird лёг — WinRM недоступен".
|
||||||
|
- **HTTPS WinRM (5986)** публично с certificate-pin'ом — альтернатива через интернет, но требует настройки SSL и хорошего firewall.
|
||||||
|
- **Ночной cron sql_native_backup.py** — автоматизация ежедневных бэкапов БД (TODO от 2026-05-08, см. соответствующий decision).
|
||||||
84
decisions/2026-05-20-amneziavpn-macos-v1-v2-incompat.md
Normal file
84
decisions/2026-05-20-amneziavpn-macos-v1-v2-incompat.md
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-20
|
||||||
|
type: decision
|
||||||
|
tags: [vpn, amnezia, amneziawg, macos, finland, server, incompatibility]
|
||||||
|
status: open
|
||||||
|
severity: medium
|
||||||
|
---
|
||||||
|
|
||||||
|
# AmneziaVPN macOS-клиент несовместим с v1 AmneziaWG-сервером
|
||||||
|
|
||||||
|
## TL;DR
|
||||||
|
|
||||||
|
macOS-клиент AmneziaVPN (текущей версии на 2026-05) умеет только новый **AmneziaWG v2** handshake-формат. На **v1**-серверах (старые `amnezia-awg` контейнеры) — handshake silently дропается, клиент видит `ErrorCode 305 — Тайм-аут подключения к серверу`. iOS-клиент, Windows-клиент и Linux-kernel-module `wireguard-go-amneziawg` шлют в v1-совместимом формате — продолжают работать.
|
||||||
|
|
||||||
|
## Симптомы
|
||||||
|
|
||||||
|
Mac-клиент при попытке Connect:
|
||||||
|
- На v1-сервере: шлёт **только junk-преамбулу (96-байтовые UDP-пакеты)**, реальный handshake_init (148+ байт) не уходит. Таймаут 305.
|
||||||
|
- На v2-сервере: handshake проходит, туннель поднимается, всё работает.
|
||||||
|
|
||||||
|
В tcpdump на v1-сервере видно множество одинаковых 96-байтных UDP-пакетов от Mac-клиента и **ноль ответных**. На v2-сервере — пакеты разных размеров (handshake → data 1452 байт).
|
||||||
|
|
||||||
|
## Подтверждённые случаи (2026-05-20)
|
||||||
|
|
||||||
|
| Клиент | Сервер | Контейнер | Версия | Результат |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Mac Олега | `78.17.4.225` (НИИКН) | `amnezia-awg2` | v2 | ✓ работает |
|
||||||
|
| Mac Олега | `202.71.12.186` (finland5870) | `amnezia-awg` (7 мес) | v1 | ✗ ErrorCode 305 |
|
||||||
|
| Mac Александра (Бенелюкс) | `202.71.12.186` | v1 | v1 | ✗ ErrorCode 305 |
|
||||||
|
| iPhone Александра | `202.71.12.186` | v1 | v1 | ✓ работает |
|
||||||
|
| Win 2012R2 1С Бужарово | `78.17.4.225` | v2 | v2 | ✓ работает |
|
||||||
|
| Cudy TR3000 (kernel-mod) | `202.71.12.186` | v1 | v1 | ✓ работает |
|
||||||
|
|
||||||
|
## Как опознать v1 vs v2 на сервере
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh root@<server> 'docker ps | grep amnezia-awg'
|
||||||
|
```
|
||||||
|
- `amnezia-awg` — v1
|
||||||
|
- `amnezia-awg2` — v2
|
||||||
|
|
||||||
|
В `wg0.conf` v2-конфиг включает поля `I1..I5` (после `H1..H4`), в v1 — нет:
|
||||||
|
```bash
|
||||||
|
docker exec <amnezia-awg|amnezia-awg2> awk '/^\[Interface\]/,/^\[Peer\]/' /opt/amnezia/awg/wg0.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
## Конфиги клиентов
|
||||||
|
|
||||||
|
В `vpn://`-ключе AmneziaPanel оба формата выглядят почти одинаково (поля `I1..I5` присутствуют пустыми и в v1-конфигах). Реальная привязка к версии — на стороне сервера + версия клиентского `wireguard-go-amneziawg`.
|
||||||
|
|
||||||
|
## Решение (выбрано Олегом)
|
||||||
|
|
||||||
|
**Не трогаем v1-сервер finland5870** — там 84 активных peer (iOS/Windows/Linux/kernel-WG), которые работают. Риск перевыпуска всех конфигов перевешивает пользу.
|
||||||
|
|
||||||
|
Mac-юзерам, кто жалуется на 305, выдаём:
|
||||||
|
- Конфиг от v2-сервера `78.17.4.225` (НИИКН), либо
|
||||||
|
- Конфиг от **любого** v2-сервера в инфре Олега.
|
||||||
|
|
||||||
|
Александру (Бенелюкс) — выпущен новый конфиг от НИИКН-сервера.
|
||||||
|
|
||||||
|
## Что не сделано (отложено)
|
||||||
|
|
||||||
|
- **Параллельный v2-контейнер на finland5870** на другом UDP-порту (например `37210`) — старые v1-клиенты продолжают на `37209`, новые/Mac — на v2 `37210`. Без вмешательства в текущий контейнер, риск минимальный. Откладывается пока не накопится критическая масса Mac-юзеров.
|
||||||
|
- **Полная миграция finland5870 v1 → v2** — массовый перевыпуск 84 конфигов. Только в плановое окно даунтайма.
|
||||||
|
|
||||||
|
## Диагностика для будущих случаев
|
||||||
|
|
||||||
|
Чтобы не разбирать с нуля, чек-лист:
|
||||||
|
|
||||||
|
1. **Mac жалуется на ErrorCode 305 или тайм-аут к AmneziaVPN.**
|
||||||
|
2. Проверь — **iOS-клиент / Windows-клиент того же пользователя на том же сервере работают?** Если да — гипотеза macOS-v1-баг сильно правдоподобна.
|
||||||
|
3. **Какая версия контейнера на сервере** — `docker ps | grep amnezia` → если `amnezia-awg` (без `2`) — это v1. Если `amnezia-awg2` — v2.
|
||||||
|
4. Если v1 — выдай Mac-юзеру конфиг от v2-сервера. Не пытайся "починить" v1-контейнер.
|
||||||
|
|
||||||
|
## Снэпшот серверов на момент решения (2026-05-20)
|
||||||
|
|
||||||
|
- **finland5870.com** `202.71.12.186`: `amnezia-awg` (v1, создан ~2025-10), 84 peer, port 37209/udp. Используется как основной endpoint для роутерных podkop-туннелей: Бенелюкс, Сергей, Знаменское, НИИКН-роутер, Lipki, Михуринец и др.
|
||||||
|
- **finlandit5870.com** `78.17.4.225`: `amnezia-awg2` (v2, создан 2026-05-18), `amnezia-panel-web` (управляющая PHP-панель), полный VPN-стек (xray, shadowbox, socks5, mtproto, WA-proxy). Олег управляет конфигами отсюда через AmneziaApp.
|
||||||
|
|
||||||
|
## Связанные
|
||||||
|
|
||||||
|
- [[../projects/dttb/finland-hostkey-vps]] — карточка finland5870
|
||||||
|
- [[../projects/dttb/vpn-clients]] — клиентский реестр
|
||||||
|
- [[2026-05-20-benelux-compromise]] — параллельная история инцидента с роутером Бенелюкса
|
||||||
159
decisions/2026-05-20-benelux-compromise.md
Normal file
159
decisions/2026-05-20-benelux-compromise.md
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-20
|
||||||
|
type: decision
|
||||||
|
tags: [security, incident, benelux, openwrt, ssh, firewall]
|
||||||
|
status: closed
|
||||||
|
severity: high
|
||||||
|
---
|
||||||
|
|
||||||
|
# Бенелюкс OpenWrt — взлом через SSH brute-force на WAN
|
||||||
|
|
||||||
|
## Что произошло
|
||||||
|
|
||||||
|
В ходе плановой проверки в **15:38 MSK** на `OpenWrt Benelux` (Cudy TR3000, NetBird `100.70.207.97`, WAN `45.143.21.60`) обнаружена активная компрометация:
|
||||||
|
|
||||||
|
- **LA = 4.0** на 4-ядерном MT7981, CPU 82% idle (нагрузка не на CPU, а на сеть+OOM-loop)
|
||||||
|
- **19 параллельных SSH-сессий** от чужих IP: `185.244.183.107` (RU), `51.77.53.0/24` и `51.38.148.97` (OVH FR), `108.181.123.93`, `51.75.55.2`
|
||||||
|
- Каждая сессия рассылала **спам через SMTP 25/465/587** на сотни IP (десятки соединений на момент анализа)
|
||||||
|
- Также параллельно — попытки на **Docker API 2375** (поиск открытых демонов для распространения)
|
||||||
|
- Cron `@reboot /tmp/.2424` (тело уже самоудалилось)
|
||||||
|
- `/root/.bash_history` и `.ash_history` отсутствуют — следы зачищены
|
||||||
|
|
||||||
|
## Вектор атаки
|
||||||
|
|
||||||
|
**SSH-сервер слушал на WAN (eth0)**, пароль `root:1qaz!QAZ` — общий по всей инфраструктуре. WAN IP `45.143.21.60` публичный → brute force с открытого интернета. После взлома атакующие держали постоянные авторизованные сессии и из своих shell-ов запускали спам напрямую.
|
||||||
|
|
||||||
|
> Ранняя гипотеза о malware-процессах под именами `systemd`/`sshd` оказалась ложной — это были обычные процессы атакующих в их собственных dropbear-shell. На OpenWrt нет ни systemd, ни sshd; имена `dropbear` в `netstat` — это родительские SSH-сессии злоумышленников.
|
||||||
|
|
||||||
|
## Что сделано (без ребута)
|
||||||
|
|
||||||
|
| Шаг | Команда / артефакт |
|
||||||
|
|---|---|
|
||||||
|
| 1. Заблокировать спам | `nft insert rule inet fw4 output oifname eth0 tcp dport {25,465,587,2375} drop` (+ `forward`) |
|
||||||
|
| 2. Заблокировать вход SSH с WAN | `nft insert rule inet fw4 input iifname eth0 tcp dport 22 drop` |
|
||||||
|
| 3. Убить 19 атакующих сессий | `kill -9` всех `dropbear` PID с не-NetBird foreign IP |
|
||||||
|
| 4. Положить ключ | `/etc/dropbear/authorized_keys` = mac-ed25519 (см. `~/.ssh/id_ed25519.pub`) |
|
||||||
|
| 5. Поменять пароль root | новый — в auto-memory (НЕ в vault) |
|
||||||
|
| 6. Удалить вредоносную крон-запись | `@reboot /tmp/.2424` вычищено, осталось только `13 9 * * * /usr/bin/podkop list_update` |
|
||||||
|
| 7. Persist firewall | `/etc/nftables.d/99-incident-20260520.nft` + `fw4 reload` |
|
||||||
|
|
||||||
|
После `fw4 reload` роутер автоматически ребутнулся (вероятно watchdog отреагировал на reload в момент OOM-loop). После ребута: правила подхватились из `/etc/nftables.d/`, ключ сработал, новый пароль активен, cron чистый.
|
||||||
|
|
||||||
|
## Результат
|
||||||
|
|
||||||
|
| Метрика | До | После |
|
||||||
|
|---|---|---|
|
||||||
|
| Load average | 4.04 | 0.15 |
|
||||||
|
| Free RAM | ~250 MB (с OOM-loop) | 307 MB available |
|
||||||
|
| Dropbear процессов | 21 | 2 (listener + моя сессия) |
|
||||||
|
| Outbound SMTP-соединений | 30+ | 0 |
|
||||||
|
| Counter `incident_block_in 22` | — | растёт (атакующие тыкаются) |
|
||||||
|
|
||||||
|
## Постоянные правила (`/etc/nftables.d/99-incident-20260520.nft`)
|
||||||
|
|
||||||
|
```nft
|
||||||
|
chain incident_block_in {
|
||||||
|
type filter hook input priority -100; policy accept;
|
||||||
|
iifname "eth0" tcp dport 22 counter drop comment "incident-20260520-no-ssh-from-wan"
|
||||||
|
}
|
||||||
|
chain incident_block_out {
|
||||||
|
type filter hook output priority -100; policy accept;
|
||||||
|
oifname "eth0" tcp dport { 25, 465, 587, 2375 } counter drop comment "incident-20260520-block-spam"
|
||||||
|
oifname "eth0" tcp dport 22 counter drop comment "incident-20260520-block-ssh-brute"
|
||||||
|
}
|
||||||
|
chain incident_block_fwd {
|
||||||
|
type filter hook forward priority -100; policy accept;
|
||||||
|
oifname "eth0" tcp dport { 25, 465, 587, 2375 } counter drop comment "incident-20260520-block-spam"
|
||||||
|
oifname "eth0" tcp dport 22 counter drop comment "incident-20260520-block-ssh-brute"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
SSH доступ остался только через:
|
||||||
|
- LAN (`192.168.1.0/24`, `br-lan`)
|
||||||
|
- NetBird (`100.70.207.97`, `wt0`)
|
||||||
|
|
||||||
|
## Расширение масштаба: Unifi + NetBird-mesh
|
||||||
|
|
||||||
|
Бенелюкс — **не изолированный объект**. Cudy за время взлома имел два открытых вектора в чужие сети:
|
||||||
|
|
||||||
|
1. **LAN Бенелюкса (192.168.1.0/24)** — здесь живёт **Unifi-сегмент**: 3 AP/Switch (`70:a7:41:79:ef:29`, `70:a7:41:9a:9e:92`, `70:a7:41:c1:33:0a`). Атакующие, сидя на Cudy под root, имели L2 ко всей подсети — могли сниффить broadcasts, ARP, DHCP. К какому контроллеру эти устройства adopted — на момент расследования не выяснено: inform-трафика ни к LXC 116 НИИКН (`100.70.138.234`), ни к UDM-Pro Знаменского нет. Одно из устройств (`192.168.1.199`, hostname `Benelyuks`) стучится в `192.168.28.34:8381` — это IP не из NetBird, пакеты уходят в default-шлюз провайдера без ответа. Похоже на orphaned-сегмент, см. [[projects/benilux/README#unifi-сегмент-за-cudy]].
|
||||||
|
|
||||||
|
2. **NetBird-mesh через wt0** — Cudy получает по NetBird маршруты в:
|
||||||
|
- `10.0.0.0/24` (через openclaw — это вся домашняя dttb-инфра)
|
||||||
|
- `10.253.1.0/24` + `2.63.246.0/24` + `87.250.251.0/24` + `95.167.245.0/24` (через pve-LionART — ММФБ)
|
||||||
|
- `192.168.1.0/24` (через pve-niikn — НИИКН; конфликт с локальной подсетью)
|
||||||
|
- `192.168.2.0/24` (Переделки), `192.168.8.0/24`, `192.168.88.0/24`
|
||||||
|
|
||||||
|
Атакующие, имея root на Cudy с активным NetBird agent, теоретически могли достучаться до любого хоста в этих сетях. На практике для этого надо знать топологию (которой у них не было) и проводить активную разведку (не видно в коротких SMTP-сессиях). Но риск ненулевой — особенно для **LXC 116 unifi-controller** (`100.70.138.234:8443`) и **Proxmox НИИКН** (`pve-niikn 100.70.120.229`), которые видны напрямую.
|
||||||
|
|
||||||
|
**Что проверить отдельно** (не в этом фиксе):
|
||||||
|
- Логи Docker LXC 116 unifi-controller (на pve-niikn, `/opt/unifi/config/logs/`) на попытки входа / сессии с `100.70.207.97` за 2026-05-20 13:00–15:45 MSK
|
||||||
|
- NetBird access policy для группы `OpenWRT VPN` — какие пиры/подсети разрешены этой группе
|
||||||
|
|
||||||
|
## Что НЕ сделано (на твоё решение)
|
||||||
|
|
||||||
|
1. **Полный wipe / sysupgrade -n.** Малварь была memory-resident (`/tmp/.2424` уже не существовало), бэкдоров на диске не найдено (find -mtime -7 чист в `/etc /lib /sbin /usr/sbin /opt`). Но 100% гарантии чистоты после взлома `root` без переустановки нет. Рекомендую перезалить роутер в течение недели в окно даунтайма.
|
||||||
|
2. **Жёсткое ограничение dropbear на интерфейсы.** Сейчас он слушает на всех (`0.0.0.0:22`), правило отбрасывает только `iifname eth0`. Можно дополнительно через `uci set dropbear.@dropbear[0].Interface=lan` ограничить bind. Не делал — риск разрыва.
|
||||||
|
3. **Audit прочих хостов с тем же паролем.** `1qaz!QAZ` фигурирует в инфраструктуре много где (Proxmox, Gitea-WebUI, NPM, Nextcloud, openclaw-LXC, server1c, MikroTik и др.). Также UDM-Pro использует похожий `1qaz!QAZ!QAZ`. **Если хоть один публично-доступный хост с этим паролем существует — он тоже скомпрометирован.** Нужен аудит.
|
||||||
|
4. **Уведомление abuse.** `45.143.21.60` рассылал спам несколько часов (минимум) — стоит ожидать blocklist-листинги (Spamhaus CSS/XBL, abuseipdb).
|
||||||
|
5. **Чистка `/var/log/dropbear`** (если есть) — для удаления fingerprint атакующих, но это удалит и улики.
|
||||||
|
|
||||||
|
## SMTP forward разблокирован (2026-05-20 ~17:00 MSK)
|
||||||
|
|
||||||
|
Александр пожаловался что почта перестала работать — это побочный эффект моего forward-drop для 25/465/587. Снял **forward** chain для этих портов (`/etc/nftables.d/99-incident-20260520.nft`), оставил только output-drop (с самого роутера — там SMTP-клиента быть не должно) + forward-drop для 22 (защита от LAN→WAN SSH-брута, если в сети окажется скомпрометированное устройство). Apple Mail/Outlook у LAN-клиентов снова работает.
|
||||||
|
|
||||||
|
## Постоянный фикс (2026-05-20 16:30 MSK)
|
||||||
|
|
||||||
|
После исходной изоляции выявлено в UCI: `firewall.@rule[9].name='Allow-SSH-WAN'` — **корневая причина инцидента**, явное разрешение SSH с интернета. Также включён парольный auth: `dropbear.main.PasswordAuth=on`, `RootPasswordAuth=on`. Применено:
|
||||||
|
|
||||||
|
```
|
||||||
|
# backup
|
||||||
|
cp /etc/config/firewall /etc/config/firewall.bak.incident-20260520
|
||||||
|
cp /etc/config/dropbear /etc/config/dropbear.bak.incident-20260520
|
||||||
|
cp /etc/dropbear/authorized_keys /etc/dropbear/authorized_keys.bak.incident-20260520
|
||||||
|
|
||||||
|
# второй ключ в authorized_keys (recovery, если Mac отвалится)
|
||||||
|
cat >> /etc/dropbear/authorized_keys <<'KEY'
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKlYObrWNTPQbR+WXMURscQ85Xc5HTLZa+wC8sf8WU72 claude-code@code-server
|
||||||
|
KEY
|
||||||
|
|
||||||
|
# удалить дырявые UCI-правила
|
||||||
|
uci delete firewall.@rule[<idx>] # Allow-SSH-WAN
|
||||||
|
uci delete firewall.@rule[<idx>] # Allow-IPSec-ESP
|
||||||
|
uci delete firewall.@rule[<idx>] # Allow-ISAKMP
|
||||||
|
|
||||||
|
# key-only
|
||||||
|
uci set dropbear.main.PasswordAuth='off'
|
||||||
|
uci set dropbear.main.RootPasswordAuth='off'
|
||||||
|
|
||||||
|
uci commit firewall && uci commit dropbear
|
||||||
|
fw4 reload && /etc/init.d/dropbear restart
|
||||||
|
```
|
||||||
|
|
||||||
|
**Verify:** вход по ключу — ОК; вход по паролю — `Permission denied (publickey)` (dropbear даже password-prompt не показывает).
|
||||||
|
|
||||||
|
## NetBird route — NIIKN остаётся в mesh (2026-05-20 16:50 MSK)
|
||||||
|
|
||||||
|
Изначально планировалось убрать route `192.168.1.0/24` от pve-niikn для устранения конфликта. По решению Олега — NIIKN-route в mesh нужен, оставлен (новый id после re-create: `d86ug0rl0ubs73djq120`, peer `cqrj61bl0ubs73dkhq70` pve-niikn).
|
||||||
|
|
||||||
|
Сейчас тот же `192.168.1.0/24` анонсируют два пира:
|
||||||
|
- `d86ug0rl0ubs73djq120` — peer **pve-niikn**, network_id="NIIKN"
|
||||||
|
- `d7kkgtbl0ubs73du6560` — peer **nbgw-glavtorg**, network_id="Glavtorg-LAN"
|
||||||
|
|
||||||
|
Какой именно будет выбран на каждом client-peer — определяется NetBird's внутренней логикой metric/peer-status. Для надёжной работы по конкретному объекту с конфликтующим /24 — ходи по NetBird-IP пира, не по LAN-IP (для Бенелюкса: `100.70.207.97`, для LXC 116 unifi-controller: `100.70.138.234`).
|
||||||
|
|
||||||
|
## Улики
|
||||||
|
|
||||||
|
Локально на mac: `/tmp/benelux-evidence/`
|
||||||
|
- `recon.txt` — ps/netstat/dmesg/cron на момент обнаружения
|
||||||
|
- `lockdown.txt` — лог изоляции (kill 19 сессий)
|
||||||
|
- `harden.txt` — установка ключа, чистка cron
|
||||||
|
- `new_password.txt` (chmod 600) — новый root пароль
|
||||||
|
- `recon.sh`, `lockdown.sh`, `harden.sh`, `finalize.sh` — исполненные скрипты
|
||||||
|
|
||||||
|
## Open questions для Олега
|
||||||
|
|
||||||
|
- [ ] Audit паролей на других хостах (особенно публично-доступных) — выше
|
||||||
|
- [ ] Когда планируем wipe+sysupgrade Бенелюкса?
|
||||||
|
- [ ] Сообщить ли Александру (клиент в КП Бенелюкс) — на объекте только podkop для обхода блокировок, бизнес-сервисов нет, утечки клиентских данных не было; вопрос косметический
|
||||||
|
- [ ] Кто сделал WAN-SSH публичным изначально? (по умолчанию OpenWrt блокирует ssh на wan)
|
||||||
51
decisions/2026-05-23-glavtorg-autologon-off.md
Normal file
51
decisions/2026-05-23-glavtorg-autologon-off.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-23
|
||||||
|
project: glavtorg
|
||||||
|
tags: [glavtorg, security, windows, vmware, autologon]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Glavtorg: отключение AutoLogon без потери автозапуска VM
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
Клиент Ярослав (Главторг) пожаловался: после ребута сервера (Win 2012 R2, 100.70.195.47) пользователь сам автоматически логинится в console-сессию, экран не блокируется. Любой у монитора/iLO/KVM получает залогиненный рабочий стол админа сервера 1С.
|
||||||
|
|
||||||
|
AutoLogon был включён 2026-04-25 ради автостарта двух VMware Workstation VM (`nbgw` 192.168.1.50 — NetBird gateway, `Ubuntu` 192.168.1.51 — Amnezia VPN), которые поднимаются скриптом `C:\Scripts\start-vms.bat` через Task Scheduler `VMware AutoStart`.
|
||||||
|
|
||||||
|
## Проверка: нужен ли AutoLogon для VM?
|
||||||
|
На рабочем сервере:
|
||||||
|
- `vmrun list` — 2 VM running
|
||||||
|
- `Get-Process vmware-vmx` показал **SessionId=0** (System session, не интерактивная сессия Ярослава)
|
||||||
|
- `schtasks /Query /TN 'VMware AutoStart' /V`: `LogonType=Password`, `Last Result=0`, отработало после ребута 22.05.2026 13:17
|
||||||
|
|
||||||
|
Вывод: Task Scheduler стартует `vmrun ... nogui` со stored password, VM процессы живут в Session 0 как обычные сервисные процессы — интерактивная сессия для них **не требуется**.
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
Снять AutoLogon полностью, оставив Task Scheduler как единственный механизм автозапуска VM.
|
||||||
|
|
||||||
|
### Что изменено в HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
|
||||||
|
| Параметр | Было | Стало |
|
||||||
|
|---|---|---|
|
||||||
|
| AutoAdminLogon | 1 | 0 |
|
||||||
|
| ForceAutoLogon | 1 | 0 |
|
||||||
|
| AutoLogonCount | 999988 | (удалён) |
|
||||||
|
| DefaultPassword | (отсутствует, был только LSA secret) | — |
|
||||||
|
| DefaultUserName | Ярослав | Ярослав (оставлен — preselect на logon screen) |
|
||||||
|
| DefaultDomainName | glavtorg | glavtorg (оставлен) |
|
||||||
|
|
||||||
|
LSA secret `HKLM\SECURITY\Policy\Secrets\DefaultPassword` (создан Sysinternals Autologon) физически остаётся, но без флага `AutoAdminLogon=1` Winlogon его не читает. Полностью стереть можно через `Autologon64.exe /accepteula /delete` (бинарник не установлен — при необходимости скачать).
|
||||||
|
|
||||||
|
## Бэкап и rollback
|
||||||
|
- Бэкап Winlogon ветки: `C:\Scripts\winlogon-backup-20260523-125613.reg`
|
||||||
|
- Rollback-скрипт: `C:\Scripts\rollback-autologon.cmd` — импортирует бэкап + инструкция как вернуть пароль через Autologon64.exe если потребуется
|
||||||
|
- Для срочного возврата AutoLogon Ярославу достаточно запустить rollback-скрипт от админа и (если LSA secret был стёрт когда-нибудь позже) скачать Autologon с https://learn.microsoft.com/sysinternals/downloads/autologon
|
||||||
|
|
||||||
|
## Проверка после следующего ребута
|
||||||
|
1. После ребута сервер должен встать на logon screen (без автоматического входа)
|
||||||
|
2. `vmrun list` от Ярослава после RDP-логина должен показать обе VM running
|
||||||
|
3. `schtasks /Query /TN 'VMware AutoStart' /V /FO LIST` — `Last Result: 0`
|
||||||
|
4. NetBird-маршрутизация в 192.168.1.0/24 работает (доступ к Юрию Витальевичу/другим клиентам через nbgw)
|
||||||
|
5. Если что-то из этого не сработало — запустить `C:\Scripts\rollback-autologon.cmd`, ребутнуться, разбираться отдельно
|
||||||
|
|
||||||
|
## Связанные
|
||||||
|
- [[projects/glavtorg/README]]
|
||||||
|
- [[feedback_vmware_workstation_session]] — общая память про VMware Workstation и сессии (logoff роняет VM в interactive session; в нашем случае VM в Session 0, так что это про другой сценарий)
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user