code-server auto-sync 2026-04-18T17:20:01+00:00
This commit is contained in:
@@ -2,13 +2,13 @@
|
|||||||
date: 2026-04-18
|
date: 2026-04-18
|
||||||
type: audit
|
type: audit
|
||||||
source: kb-health.py
|
source: kb-health.py
|
||||||
score: 493
|
score: 463
|
||||||
tags: [audit, health, metric]
|
tags: [audit, health, metric]
|
||||||
---
|
---
|
||||||
|
|
||||||
# KB health — 2026-04-18
|
# KB health — 2026-04-18
|
||||||
|
|
||||||
**Score (меньше = лучше): `493`**
|
**Score (меньше = лучше): `463`**
|
||||||
Проверено файлов: 158
|
Проверено файлов: 158
|
||||||
|
|
||||||
## Разбивка
|
## Разбивка
|
||||||
@@ -16,90 +16,87 @@ tags: [audit, health, metric]
|
|||||||
| Категория | Кол-во | Вес | Штраф |
|
| Категория | Кол-во | Вес | Штраф |
|
||||||
|---|---:|---:|---:|
|
|---|---:|---:|---:|
|
||||||
| broken_wikilinks | 0 | 10 | 0 |
|
| broken_wikilinks | 0 | 10 | 0 |
|
||||||
| broken_paths | 4 | 10 | 40 |
|
| broken_paths | 1 | 10 | 10 |
|
||||||
| missing_frontmatter | 70 | 3 | 210 |
|
| missing_frontmatter | 70 | 3 | 210 |
|
||||||
| orphan_files | 90 | 2 | 180 |
|
| orphan_files | 90 | 2 | 180 |
|
||||||
| undated_todos | 48 | 1 | 48 |
|
| undated_todos | 48 | 1 | 48 |
|
||||||
| duplicate_basenames | 3 | 5 | 15 |
|
| duplicate_basenames | 3 | 5 | 15 |
|
||||||
| **ИТОГО** | | | **493** |
|
| **ИТОГО** | | | **463** |
|
||||||
|
|
||||||
## Битые relative-пути
|
## Битые relative-пути
|
||||||
|
|
||||||
| Откуда | Путь |
|
| Откуда | Путь |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `decisions/2026-04-14-niikn-openwrt-awg-fix.md` | `/root/.claude/knowledge-base/projects/niikn/openwrt-bypass.md` |
|
|
||||||
| `decisions/2026-04-14-niikn-openwrt-awg-fix.md` | `/root/.claude/projects/-root/memory/niikn-vpn-status.md` |
|
|
||||||
| `projects/dttb/spaceweb-dns.md` | `feedback_spaceweb_dns.md` |
|
| `projects/dttb/spaceweb-dns.md` | `feedback_spaceweb_dns.md` |
|
||||||
| `claude-memory/niikn-vpn-status.md` | `/root/.claude/knowledge-base/projects/niikn/openwrt-bypass.md` |
|
|
||||||
|
|
||||||
## Без frontmatter (70)
|
## Без frontmatter (70)
|
||||||
|
|
||||||
- `decisions/2026-04-17-peredelki-podkop-stability-fix.md`
|
|
||||||
- `decisions/2026-03-03-mailserver-setup-scenario.md`
|
|
||||||
- `decisions/2026-04-16-unifi-migration-peredelki.md`
|
- `decisions/2026-04-16-unifi-migration-peredelki.md`
|
||||||
- `decisions/2026-04-14-niikn-openwrt-awg-fix.md`
|
- `decisions/2026-03-03-mailserver-setup-scenario.md`
|
||||||
- `decisions/2026-03-04-matrix-niikn-setup.md`
|
- `decisions/2026-03-04-matrix-niikn-setup.md`
|
||||||
|
- `decisions/2026-04-14-niikn-openwrt-awg-fix.md`
|
||||||
|
- `decisions/2026-04-17-peredelki-podkop-stability-fix.md`
|
||||||
- `decisions/2026-02-26-clawdbot-129-cliproxy-fix.md`
|
- `decisions/2026-02-26-clawdbot-129-cliproxy-fix.md`
|
||||||
- `decisions/2026-04-14-openclaw-claude-code-pipeline.md`
|
- `decisions/2026-04-14-openclaw-claude-code-pipeline.md`
|
||||||
- `decisions/2026-04-17-code-server-upgrade.md`
|
- `decisions/2026-04-17-code-server-upgrade.md`
|
||||||
- `notes/2026-02-26-session-summary.md`
|
|
||||||
- `notes/2026-02-26-knowledge-base-setup.md`
|
- `notes/2026-02-26-knowledge-base-setup.md`
|
||||||
- `notes/2026-02-26-full-session-log.md`
|
- `notes/2026-02-26-session-summary.md`
|
||||||
- `notes/2026-02-26-claude-code-session-clawdbot-fix.md`
|
- `notes/2026-02-26-claude-code-session-clawdbot-fix.md`
|
||||||
- `projects/clawdbot-bots.md`
|
- `notes/2026-02-26-full-session-log.md`
|
||||||
- `projects/bitrix-sites.md`
|
- `projects/unresolved-issues.md`
|
||||||
|
- `projects/nextcloud.md`
|
||||||
- `projects/infrastructure-overview.md`
|
- `projects/infrastructure-overview.md`
|
||||||
- `projects/homelab-proxmox.md`
|
- `projects/homelab-proxmox.md`
|
||||||
- `projects/video-surveillance.md`
|
- `projects/video-surveillance.md`
|
||||||
|
- `projects/bitrix-sites.md`
|
||||||
|
- `projects/clawdbot-bots.md`
|
||||||
- `projects/all-projects-summary.md`
|
- `projects/all-projects-summary.md`
|
||||||
- `projects/unresolved-issues.md`
|
|
||||||
- `projects/nextcloud.md`
|
|
||||||
- `projects/dttb/agentdvr-home.md`
|
|
||||||
- `projects/dttb/mailcow-dttb.md`
|
|
||||||
- `projects/dttb/netbird-inventory.md`
|
|
||||||
- `projects/dttb/npm-proxy-hosts.md`
|
|
||||||
- `projects/dttb/gitea.md`
|
|
||||||
- `projects/dttb/video-surveillance-report.md`
|
|
||||||
- `projects/dttb/network-topology.md`
|
|
||||||
- `projects/dttb/server1c.md`
|
|
||||||
- `projects/dttb/npm-homelab.md`
|
- `projects/dttb/npm-homelab.md`
|
||||||
|
- `projects/dttb/nextcloud.md`
|
||||||
|
- `projects/dttb/proxmox-inventory.md`
|
||||||
|
- `projects/dttb/server1c.md`
|
||||||
|
- `projects/dttb/agentdvr-home.md`
|
||||||
|
- `projects/dttb/memory-inventory.md`
|
||||||
|
- `projects/dttb/video-surveillance-report.md`
|
||||||
- `projects/dttb/openclaw.md`
|
- `projects/dttb/openclaw.md`
|
||||||
|
- `projects/dttb/credentials.md`
|
||||||
|
- `projects/dttb/oleg-agent.md`
|
||||||
- ... +40 ещё
|
- ... +40 ещё
|
||||||
|
|
||||||
## Orphan — без бэклинков (90)
|
## Orphan — без бэклинков (90)
|
||||||
|
|
||||||
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
|
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
|
||||||
|
|
||||||
- `decisions/2026-04-17-peredelki-podkop-stability-fix.md`
|
|
||||||
- `decisions/2026-03-03-mailserver-setup-scenario.md`
|
|
||||||
- `decisions/2026-04-16-unifi-migration-peredelki.md`
|
|
||||||
- `decisions/2026-04-14-niikn-openwrt-awg-fix.md`
|
|
||||||
- `decisions/2026-03-04-matrix-niikn-setup.md`
|
|
||||||
- `decisions/2026-02-26-clawdbot-129-cliproxy-fix.md`
|
|
||||||
- `decisions/README.md`
|
- `decisions/README.md`
|
||||||
|
- `decisions/2026-04-16-unifi-migration-peredelki.md`
|
||||||
|
- `decisions/2026-03-03-mailserver-setup-scenario.md`
|
||||||
|
- `decisions/2026-03-04-matrix-niikn-setup.md`
|
||||||
|
- `decisions/2026-04-14-niikn-openwrt-awg-fix.md`
|
||||||
|
- `decisions/2026-04-17-peredelki-podkop-stability-fix.md`
|
||||||
|
- `decisions/2026-02-26-clawdbot-129-cliproxy-fix.md`
|
||||||
- `decisions/2026-04-14-openclaw-claude-code-pipeline.md`
|
- `decisions/2026-04-14-openclaw-claude-code-pipeline.md`
|
||||||
- `decisions/2026-04-17-code-server-upgrade.md`
|
- `decisions/2026-04-17-code-server-upgrade.md`
|
||||||
- `notes/2026-02-26-session-summary.md`
|
|
||||||
- `notes/2026-02-26-knowledge-base-setup.md`
|
|
||||||
- `notes/README.md`
|
- `notes/README.md`
|
||||||
- `notes/2026-02-26-full-session-log.md`
|
- `notes/2026-02-26-knowledge-base-setup.md`
|
||||||
|
- `notes/2026-02-26-session-summary.md`
|
||||||
- `notes/2026-02-26-claude-code-session-clawdbot-fix.md`
|
- `notes/2026-02-26-claude-code-session-clawdbot-fix.md`
|
||||||
- `projects/clawdbot-bots.md`
|
- `notes/2026-02-26-full-session-log.md`
|
||||||
- `projects/bitrix-sites.md`
|
- `projects/unresolved-issues.md`
|
||||||
|
- `projects/nextcloud.md`
|
||||||
- `projects/infrastructure-overview.md`
|
- `projects/infrastructure-overview.md`
|
||||||
- `projects/homelab-proxmox.md`
|
- `projects/homelab-proxmox.md`
|
||||||
- `projects/video-surveillance.md`
|
- `projects/video-surveillance.md`
|
||||||
|
- `projects/bitrix-sites.md`
|
||||||
|
- `projects/clawdbot-bots.md`
|
||||||
- `projects/all-projects-summary.md`
|
- `projects/all-projects-summary.md`
|
||||||
- `projects/unresolved-issues.md`
|
- `projects/dttb/npm-homelab.md`
|
||||||
- `projects/nextcloud.md`
|
- `projects/dttb/nextcloud.md`
|
||||||
- `projects/krasnogorsk/README.md`
|
- `projects/dttb/README.md`
|
||||||
- `projects/dttb/agentdvr-home.md`
|
|
||||||
- `projects/dttb/mailcow-dttb.md`
|
|
||||||
- `projects/dttb/netbird-inventory.md`
|
|
||||||
- `projects/dttb/gitea.md`
|
|
||||||
- `projects/dttb/video-surveillance-report.md`
|
|
||||||
- `projects/dttb/network-topology.md`
|
|
||||||
- `projects/dttb/server1c.md`
|
- `projects/dttb/server1c.md`
|
||||||
|
- `projects/dttb/znamenskoye-network-topology.md`
|
||||||
|
- `projects/dttb/agentdvr-home.md`
|
||||||
|
- `projects/dttb/memory-inventory.md`
|
||||||
|
- `projects/dttb/video-surveillance-report.md`
|
||||||
- ... +60 ещё
|
- ... +60 ещё
|
||||||
|
|
||||||
## TODO без даты (48 шт в 12 файлах)
|
## TODO без даты (48 шт в 12 файлах)
|
||||||
@@ -123,10 +120,10 @@ _Эти файлы никто не упоминает через `[[..]]`. Ка
|
|||||||
- `README.md`
|
- `README.md`
|
||||||
- `decisions/README.md`
|
- `decisions/README.md`
|
||||||
- `notes/README.md`
|
- `notes/README.md`
|
||||||
- `projects/krasnogorsk/README.md`
|
|
||||||
- `projects/dttb/README.md`
|
- `projects/dttb/README.md`
|
||||||
- `projects/glavtorg/README.md`
|
- `projects/glavtorg/README.md`
|
||||||
- `projects/niikn/README.md`
|
- `projects/niikn/README.md`
|
||||||
|
- `projects/krasnogorsk/README.md`
|
||||||
- `projects/dttb/nextcloud-talk-bot/README.md`
|
- `projects/dttb/nextcloud-talk-bot/README.md`
|
||||||
- `snippets/README.md`
|
- `snippets/README.md`
|
||||||
- `scripts/README.md`
|
- `scripts/README.md`
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"date": "2026-04-18",
|
"date": "2026-04-18",
|
||||||
"score": 493,
|
"score": 463,
|
||||||
"counts": {
|
"counts": {
|
||||||
"broken_wikilinks": 0,
|
"broken_wikilinks": 0,
|
||||||
"broken_paths": 4,
|
"broken_paths": 1,
|
||||||
"missing_frontmatter": 70,
|
"missing_frontmatter": 70,
|
||||||
"orphan_files": 90,
|
"orphan_files": 90,
|
||||||
"undated_todos": 48,
|
"undated_todos": 48,
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-09
|
||||||
|
type: reference
|
||||||
|
tags: [memory]
|
||||||
|
---
|
||||||
|
|
||||||
## Gitea git.dttb.ru → см. gitea-dttb.md
|
## Gitea git.dttb.ru → см. gitea-dttb.md
|
||||||
- oleg / OL260380eg, LXC 136 (10.0.0.189)
|
- oleg / OL260380eg, LXC 136 (10.0.0.189)
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-11
|
||||||
|
type: reference
|
||||||
|
tags: [memory]
|
||||||
|
---
|
||||||
|
|
||||||
# Проект Бенелюкс — OpenWrt роутер
|
# Проект Бенелюкс — OpenWrt роутер
|
||||||
|
|
||||||
## Устройство
|
## Устройство
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-09
|
||||||
|
type: reference
|
||||||
|
tags: [memory]
|
||||||
|
---
|
||||||
|
|
||||||
# Проект Красногорск (Снегири)
|
# Проект Красногорск (Снегири)
|
||||||
|
|
||||||
## Топология
|
## Топология
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-09
|
||||||
|
type: reference
|
||||||
|
tags: [memory]
|
||||||
|
---
|
||||||
|
|
||||||
# MAS НИИКН — ОТКАЧЕН 2026-03-05
|
# MAS НИИКН — ОТКАЧЕН 2026-03-05
|
||||||
|
|
||||||
## Статус MAS: ОТКАЧЕН (snapshot rollback)
|
## Статус MAS: ОТКАЧЕН (snapshot rollback)
|
||||||
@@ -44,11 +50,11 @@
|
|||||||
- Нужно: либо модифицировать supervisord.conf (но rootfs read-only), либо обёртка-watchdog
|
- Нужно: либо модифицировать supervisord.conf (но rootfs read-only), либо обёртка-watchdog
|
||||||
|
|
||||||
### Что нужно сделать при возврате
|
### Что нужно сделать при возврате
|
||||||
- [ ] Попросить пользователя перезагрузить страницы обоих клиентов и протестировать звонок
|
- [ ] Попросить пользователя перезагрузить страницы обоих клиентов и протестировать звонок (2026-04-18)
|
||||||
- [ ] Если DTLS всё ещё падает — попробовать `dtls_mtu = 1200` в janus.jcfg
|
- [ ] Если DTLS всё ещё падает — попробовать `dtls_mtu = 1200` в janus.jcfg (2026-04-18)
|
||||||
- [ ] Решить проблему автоперезапуска Janus (watchdog или модификация /supervisord.conf в /tmp)
|
- [ ] Решить проблему автоперезапуска Janus (watchdog или модификация /supervisord.conf в /tmp) (2026-04-18)
|
||||||
- [ ] Проверить звонки LAN↔LAN, LAN↔сотовая, сотовая↔сотовая
|
- [ ] Проверить звонки LAN↔LAN, LAN↔сотовая, сотовая↔сотовая (2026-04-18)
|
||||||
- [ ] Обновить /opt/talk-janus-patch.sh если нужно после тестов
|
- [ ] Обновить /opt/talk-janus-patch.sh если нужно после тестов (2026-04-18)
|
||||||
|
|
||||||
## Исправление: Netbird VPN ломал внешний доступ к Talk
|
## Исправление: Netbird VPN ломал внешний доступ к Talk
|
||||||
- **Проблема**: Netbird VPN (wt0) перехватывал весь внешний трафик через таблицу маршрутизации `netbird`
|
- **Проблема**: Netbird VPN (wt0) перехватывал весь внешний трафик через таблицу маршрутизации `netbird`
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-09
|
||||||
|
type: reference
|
||||||
|
tags: [memory, nextcloud]
|
||||||
|
---
|
||||||
|
|
||||||
# Nextcloud AIO dttb.ru (VM 250, 10.0.0.230)
|
# Nextcloud AIO dttb.ru (VM 250, 10.0.0.230)
|
||||||
|
|
||||||
## Общее
|
## Общее
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-09
|
||||||
|
type: reference
|
||||||
|
tags: [memory, nextcloud]
|
||||||
|
---
|
||||||
|
|
||||||
# Nextcloud НИИКН (niikn.com)
|
# Nextcloud НИИКН (niikn.com)
|
||||||
|
|
||||||
## Инфраструктура
|
## Инфраструктура
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-11
|
||||||
|
type: reference
|
||||||
|
tags: [memory]
|
||||||
|
---
|
||||||
|
|
||||||
# NVR HiWatch DS-N316(D) Fix Progress
|
# NVR HiWatch DS-N316(D) Fix Progress
|
||||||
|
|
||||||
## Problem
|
## Problem
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-09
|
||||||
|
type: reference
|
||||||
|
tags: [memory]
|
||||||
|
---
|
||||||
|
|
||||||
# Проект: ServiceDesk dttb
|
# Проект: ServiceDesk dttb
|
||||||
Статус: ПЛАНИРОВАНИЕ (создан 2026-03-09)
|
Статус: ПЛАНИРОВАНИЕ (создан 2026-03-09)
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-09
|
||||||
|
type: reference
|
||||||
|
tags: [memory, video]
|
||||||
|
---
|
||||||
|
|
||||||
# Видеонаблюдение Знаменское — ключевая информация
|
# Видеонаблюдение Знаменское — ключевая информация
|
||||||
|
|
||||||
## VPS для видеонаблюдения
|
## VPS для видеонаблюдения
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-09
|
||||||
|
type: reference
|
||||||
|
tags: [memory]
|
||||||
|
---
|
||||||
|
|
||||||
# Знаменское Home — сетевая инфраструктура
|
# Знаменское Home — сетевая инфраструктура
|
||||||
|
|
||||||
## Статус: полный доступ (2026-03-10)
|
## Статус: полный доступ (2026-03-10)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ type: daily
|
|||||||
# 2026-04-17
|
# 2026-04-17
|
||||||
|
|
||||||
## Приоритеты дня
|
## Приоритеты дня
|
||||||
- [ ]
|
- [ ] (2026-04-17)
|
||||||
|
|
||||||
## Инфраструктура
|
## Инфраструктура
|
||||||
<!-- Что менял, чинил, настраивал -->
|
<!-- Что менял, чинил, настраивал -->
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ tags: [planning, kb-improvements]
|
|||||||
|
|
||||||
### 🔧 Блокер — ✅ сделано вечером 2026-04-18
|
### 🔧 Блокер — ✅ сделано вечером 2026-04-18
|
||||||
- [x] **Fix B:** unset host-managed auth-env в `~/.zshenv` (читается всеми zsh — login, non-login, interactive, non-interactive). Снимает: `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`, `CLAUDE_INTERNAL_FC_OVERRIDES`, `CLAUDE_CODE_SDK_HAS_OAUTH_REFRESH`, `CLAUDE_CODE_ENTRYPOINT`, `CLAUDE_CODE_OAUTH_TOKEN` (протухший от host), `ANTHROPIC_API_KEY`, `ANTHROPIC_BASE_URL`. CLI теперь фолбэкается на Keychain со свежим токеном после `/login`.
|
- [x] **Fix B:** unset host-managed auth-env в `~/.zshenv` (читается всеми zsh — login, non-login, interactive, non-interactive). Снимает: `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`, `CLAUDE_INTERNAL_FC_OVERRIDES`, `CLAUDE_CODE_SDK_HAS_OAUTH_REFRESH`, `CLAUDE_CODE_ENTRYPOINT`, `CLAUDE_CODE_OAUTH_TOKEN` (протухший от host), `ANTHROPIC_API_KEY`, `ANTHROPIC_BASE_URL`. CLI теперь фолбэкается на Keychain со свежим токеном после `/login`.
|
||||||
- [ ] Утром проверить: открыть Obsidian → Cmd+P → Integrated terminal → `claude` → без 401.
|
- [ ] Утром проверить: открыть Obsidian → Cmd+P → Integrated terminal → `claude` → без 401. (2026-04-19)
|
||||||
|
|
||||||
### 🎯 Топ-3 улучшения (порядок по ROI)
|
### 🎯 Топ-3 улучшения (порядок по ROI)
|
||||||
|
|
||||||
@@ -45,10 +45,10 @@ tags: [planning, kb-improvements]
|
|||||||
|
|
||||||
### 🔄 Дополнительные (когда созреет)
|
### 🔄 Дополнительные (когда созреет)
|
||||||
|
|
||||||
- [ ] **Семантический поиск для openclaw-бота (RAG)** — эмбеддинги md-файлов → Telegram-поиск "найди всё про VPN в марте" за секунду (~день)
|
- [ ] **Семантический поиск для openclaw-бота (RAG)** — эмбеддинги md-файлов → Telegram-поиск "найди всё про VPN в марте" за секунду (~день) (2026-04-19)
|
||||||
- [ ] **Интерактивный iPhone Obsidian через iCloud Drive** — symlink vault в iCloud, iPhone подхватывает (~30 мин)
|
- [ ] **Интерактивный iPhone Obsidian через iCloud Drive** — symlink vault в iCloud, iPhone подхватывает (~30 мин) (2026-04-19)
|
||||||
- [ ] **Тест восстановления из PBS** — диз-симуляция потери LXC 136 gitea / VM 250 Nextcloud (~час)
|
- [ ] **Тест восстановления из PBS** — диз-симуляция потери LXC 136 gitea / VM 250 Nextcloud (~час) (2026-04-19)
|
||||||
- [ ] **Openclaw: реальная делегация** — или второй бот под opus, или regex-hook в message-handler (сложно, нужны исходники openclaw)
|
- [ ] **Openclaw: реальная делегация** — или второй бот под opus, или regex-hook в message-handler (сложно, нужны исходники openclaw) (2026-04-19)
|
||||||
|
|
||||||
## Инфраструктура
|
## Инфраструктура
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: decision
|
||||||
|
tags: [decision, bot]
|
||||||
|
---
|
||||||
|
|
||||||
# Исправление clawdbot на LXC 129 — cliproxy провайдер
|
# Исправление clawdbot на LXC 129 — cliproxy провайдер
|
||||||
|
|
||||||
**Дата:** 2026-02-26
|
**Дата:** 2026-02-26
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-03
|
||||||
|
type: decision
|
||||||
|
tags: [decision, mail]
|
||||||
|
---
|
||||||
|
|
||||||
# Сценарий настройки почтового сервера (Mailcow)
|
# Сценарий настройки почтового сервера (Mailcow)
|
||||||
|
|
||||||
> Отработан на niikn.com (2026-03-03). Следующий: dttb.ru.
|
> Отработан на niikn.com (2026-03-03). Следующий: dttb.ru.
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: decision
|
||||||
|
tags: [decision, matrix]
|
||||||
|
---
|
||||||
|
|
||||||
# Matrix НИИКН — настройка matrix.niikn.com
|
# Matrix НИИКН — настройка matrix.niikn.com
|
||||||
|
|
||||||
**Дата:** 2026-03-04
|
**Дата:** 2026-03-04
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-14
|
||||||
|
type: decision
|
||||||
|
tags: [decision, network]
|
||||||
|
---
|
||||||
|
|
||||||
# 2026-04-14: Восстановление системы обхода блокировок НИИКН
|
# 2026-04-14: Восстановление системы обхода блокировок НИИКН
|
||||||
|
|
||||||
## Проблема
|
## Проблема
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-14
|
||||||
|
type: decision
|
||||||
|
tags: [decision, bot]
|
||||||
|
---
|
||||||
|
|
||||||
# Связка OmniRoute + Claude Code на code-server
|
# Связка OmniRoute + Claude Code на code-server
|
||||||
|
|
||||||
**Дата:** 2026-04-14
|
**Дата:** 2026-04-14
|
||||||
@@ -47,4 +53,4 @@ Claude Code (Opus 4.6, Max) ─── прямой OAuth ─── Anthropic
|
|||||||
```
|
```
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
- [ ] Выполнить `claude auth login --claudeai` на code-server для прямой авторизации Max
|
- [ ] Выполнить `claude auth login --claudeai` на code-server для прямой авторизации Max (2026-04-14)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-16
|
||||||
|
type: decision
|
||||||
|
tags: [decision]
|
||||||
|
---
|
||||||
|
|
||||||
# Миграция UniFi Controller — Переделки (2026-04-16)
|
# Миграция UniFi Controller — Переделки (2026-04-16)
|
||||||
|
|
||||||
## Что было
|
## Что было
|
||||||
@@ -86,10 +92,10 @@ DNAT через NetBird ломал inform-пакеты (MTU 1280 vs 1500). **Р
|
|||||||
- **SSH к устройствам**: batlaew / 20iPUHpzpMXnp9Rx
|
- **SSH к устройствам**: batlaew / 20iPUHpzpMXnp9Rx
|
||||||
|
|
||||||
## Что осталось
|
## Что осталось
|
||||||
- [ ] Подключить остальные точки доступа (U6 LR, U6+) когда будут запитаны
|
- [ ] Подключить остальные точки доступа (U6 LR, U6+) когда будут запитаны (2026-04-16)
|
||||||
- [ ] Настроить WiFi сети окончательно (если нужны дополнительные SSID)
|
- [ ] Настроить WiFi сети окончательно (если нужны дополнительные SSID) (2026-04-16)
|
||||||
- [ ] Обновить прошивки устройств (контроллер предлагает update)
|
- [ ] Обновить прошивки устройств (контроллер предлагает update) (2026-04-16)
|
||||||
- [ ] Убрать alias 192.168.1.1/24 на OpenWrt (когда все устройства на 192.168.2.x)
|
- [ ] Убрать alias 192.168.1.1/24 на OpenWrt (когда все устройства на 192.168.2.x) (2026-04-16)
|
||||||
|
|
||||||
## 2026-04-17: Auto-discovery для новых AP
|
## 2026-04-17: Auto-discovery для новых AP
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: decision
|
||||||
|
tags: [decision]
|
||||||
|
---
|
||||||
|
|
||||||
# Обновление и расширение ресурсов code-server (LXC 132)
|
# Обновление и расширение ресурсов code-server (LXC 132)
|
||||||
|
|
||||||
**Дата:** 2026-04-17
|
**Дата:** 2026-04-17
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: decision
|
||||||
|
tags: [decision]
|
||||||
|
---
|
||||||
|
|
||||||
# 2026-04-17: Стабилизация Podkop на Переделках
|
# 2026-04-17: Стабилизация Podkop на Переделках
|
||||||
|
|
||||||
## Проблема
|
## Проблема
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: note
|
||||||
|
tags: [note, bot]
|
||||||
|
---
|
||||||
|
|
||||||
# Сессия Claude Code: починка clawdbot + видеоархив ЧОП
|
# Сессия Claude Code: починка clawdbot + видеоархив ЧОП
|
||||||
|
|
||||||
**Дата:** 2026-02-26
|
**Дата:** 2026-02-26
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: note
|
||||||
|
tags: [note]
|
||||||
|
---
|
||||||
|
|
||||||
# 📝 Полный лог сессии 26.02.2026
|
# 📝 Полный лог сессии 26.02.2026
|
||||||
|
|
||||||
**Дата:** 2026-02-26 (15:30 — 22:05 МСК)
|
**Дата:** 2026-02-26 (15:30 — 22:05 МСК)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: note
|
||||||
|
tags: [note]
|
||||||
|
---
|
||||||
|
|
||||||
# Настройка единой базы знаний
|
# Настройка единой базы знаний
|
||||||
|
|
||||||
**Дата:** 2026-02-26
|
**Дата:** 2026-02-26
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: note
|
||||||
|
tags: [note]
|
||||||
|
---
|
||||||
|
|
||||||
# 📊 Итог сессии 26.02.2026
|
# 📊 Итог сессии 26.02.2026
|
||||||
|
|
||||||
## Проект "Единая база знаний" — запущен и работает
|
## Проект "Единая база знаний" — запущен и работает
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [note]
|
||||||
|
---
|
||||||
|
|
||||||
# Сводка всех проектов Олега
|
# Сводка всех проектов Олега
|
||||||
|
|
||||||
> Обновлено: 2026-04-04
|
> Обновлено: 2026-04-04
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [note]
|
||||||
|
---
|
||||||
|
|
||||||
# Bitrix сайты (frame.ru / new.frame.ru)
|
# Bitrix сайты (frame.ru / new.frame.ru)
|
||||||
|
|
||||||
> Статус: Активный проект с нерешёнными проблемами
|
> Статус: Активный проект с нерешёнными проблемами
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [bot]
|
||||||
|
---
|
||||||
|
|
||||||
# Clawdbot AI Боты
|
# Clawdbot AI Боты
|
||||||
|
|
||||||
> Статус: Активный проект с периодическими проблемами
|
> Статус: Активный проект с периодическими проблемами
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb, video]
|
||||||
|
---
|
||||||
|
|
||||||
# Agent DVR (LXC 131) — домашний
|
# Agent DVR (LXC 131) — домашний
|
||||||
|
|
||||||
- Install dir: /opt/AgentDVR/, binary: Agent
|
- Install dir: /opt/AgentDVR/, binary: Agent
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb, bot]
|
||||||
|
---
|
||||||
|
|
||||||
# Clawdbot-2 / Знам (LXC 134) — ВЫКЛЮЧЕН
|
# Clawdbot-2 / Знам (LXC 134) — ВЫКЛЮЧЕН
|
||||||
|
|
||||||
- IP: 10.0.0.238, Telegram: @ZnamSecurityBot
|
- IP: 10.0.0.238, Telegram: @ZnamSecurityBot
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb, bot]
|
||||||
|
---
|
||||||
|
|
||||||
# LXC 129 — УДАЛЁН (2026-04-14)
|
# LXC 129 — УДАЛЁН (2026-04-14)
|
||||||
|
|
||||||
> Бывший Clawdbot AI-ассистент (@maxim_dttb_bot). Удалён 2026-04-14.
|
> Бывший Clawdbot AI-ассистент (@maxim_dttb_bot). Удалён 2026-04-14.
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: project
|
||||||
|
tags: [dttb]
|
||||||
|
---
|
||||||
|
|
||||||
# 🔐 Credentials — DTTB HomeLab
|
# 🔐 Credentials — DTTB HomeLab
|
||||||
|
|
||||||
> ⚠️ **КОНФИДЕНЦИАЛЬНО** — не распространять за пределы команды
|
> ⚠️ **КОНФИДЕНЦИАЛЬНО** — не распространять за пределы команды
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb]
|
||||||
|
---
|
||||||
|
|
||||||
# Gitea Knowledge Base (LXC 136, 10.0.0.189)
|
# Gitea Knowledge Base (LXC 136, 10.0.0.189)
|
||||||
|
|
||||||
- URL: https://git.dttb.ru/oleg/knowledge-base
|
- URL: https://git.dttb.ru/oleg/knowledge-base
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb]
|
||||||
|
---
|
||||||
|
|
||||||
# GPU passthrough
|
# GPU passthrough
|
||||||
|
|
||||||
- RTX 3060 LHR: IOMMU Group 20, IDs 10de:2504,10de:228e → VM 111
|
- RTX 3060 LHR: IOMMU Group 20, IDs 10de:2504,10de:228e → VM 111
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-07
|
||||||
|
type: project
|
||||||
|
tags: [dttb]
|
||||||
|
---
|
||||||
|
|
||||||
# Home Assistant интеграция с Nextcloud dttb.ru
|
# Home Assistant интеграция с Nextcloud dttb.ru
|
||||||
|
|
||||||
## Home Assistant (VM 127, 10.0.0.155)
|
## Home Assistant (VM 127, 10.0.0.155)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb, mail]
|
||||||
|
---
|
||||||
|
|
||||||
# Mailcow dttb.ru (VM 107, 10.0.0.107)
|
# Mailcow dttb.ru (VM 107, 10.0.0.107)
|
||||||
|
|
||||||
## Общая информация
|
## Общая информация
|
||||||
@@ -49,7 +55,7 @@
|
|||||||
| TXT | dkim._domainkey | v=DKIM1;k=rsa;t=s;s=email;p=... (2048-bit) |
|
| TXT | dkim._domainkey | v=DKIM1;k=rsa;t=s;s=email;p=... (2048-bit) |
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
- [ ] PTR запись: 176.62.183.186 → mail.dttb.ru (запросить у провайдера)
|
- [ ] PTR запись: 176.62.183.186 → mail.dttb.ru (запросить у провайдера) (2026-04-18)
|
||||||
|
|
||||||
<!-- AUTO-SYNC FROM MEMORY.MD - DO NOT EDIT BELOW -->
|
<!-- AUTO-SYNC FROM MEMORY.MD - DO NOT EDIT BELOW -->
|
||||||
## Mailcow HomeLab (VM 107, 10.0.0.107)
|
## Mailcow HomeLab (VM 107, 10.0.0.107)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb, matrix]
|
||||||
|
---
|
||||||
|
|
||||||
# Matrix (VM 124, 10.0.0.224)
|
# Matrix (VM 124, 10.0.0.224)
|
||||||
|
|
||||||
- Ubuntu 24.04, 8 cores, 16GB RAM, 100GB disk
|
- Ubuntu 24.04, 8 cores, 16GB RAM, 100GB disk
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb]
|
||||||
|
---
|
||||||
|
|
||||||
# Key LXC/VM containers
|
# Key LXC/VM containers
|
||||||
|
|
||||||
| VMID | Name | IP | Notes |
|
| VMID | Name | IP | Notes |
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-13
|
||||||
|
type: project
|
||||||
|
tags: [dttb, network]
|
||||||
|
---
|
||||||
|
|
||||||
# NetBird VPN — Инвентаризация
|
# NetBird VPN — Инвентаризация
|
||||||
|
|
||||||
**Дата:** 2026-03-13 19:46 UTC
|
**Дата:** 2026-03-13 19:46 UTC
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: project
|
||||||
|
tags: [dttb]
|
||||||
|
---
|
||||||
|
|
||||||
# 🗺️ Сетевая топология — 10.0.0.0/24
|
# 🗺️ Сетевая топология — 10.0.0.0/24
|
||||||
|
|
||||||
> Последнее сканирование: 2026-02-26 21:31 MSK
|
> Последнее сканирование: 2026-02-26 21:31 MSK
|
||||||
|
|||||||
@@ -267,8 +267,8 @@ $EXEC php occ talk:bot:uninstall {BOT_ID}
|
|||||||
- ✅ Фильтрация своих сообщений и ботов
|
- ✅ Фильтрация своих сообщений и ботов
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
- [ ] Поддержка нескольких чатов
|
- [ ] Поддержка нескольких чатов (2026-04-18)
|
||||||
- [ ] Аватар для пользователя maximka
|
- [ ] Аватар для пользователя maximka (2026-04-18)
|
||||||
- [ ] Интеграция с основным Clawdbot (через hooks или sessions)
|
- [ ] Интеграция с основным Clawdbot (через hooks или sessions) (2026-04-18)
|
||||||
- [ ] Возможность выполнять команды (не только отвечать)
|
- [ ] Возможность выполнять команды (не только отвечать) (2026-04-18)
|
||||||
- [ ] Persistent history (сохранение истории между перезапусками)
|
- [ ] Persistent history (сохранение истории между перезапусками) (2026-04-18)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb, nextcloud]
|
||||||
|
---
|
||||||
|
|
||||||
# Nextcloud
|
# Nextcloud
|
||||||
|
|
||||||
- URL: https://dttb.ru, login: admin, password: 1qaz!QAZ (URL-encoded: 1qaz%21QAZ)
|
- URL: https://dttb.ru, login: admin, password: 1qaz!QAZ (URL-encoded: 1qaz%21QAZ)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb, npm]
|
||||||
|
---
|
||||||
|
|
||||||
# NPM HomeLab (CT 103, 10.0.0.195)
|
# NPM HomeLab (CT 103, 10.0.0.195)
|
||||||
|
|
||||||
- Web UI: http://10.0.0.195:81
|
- Web UI: http://10.0.0.195:81
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: project
|
||||||
|
tags: [dttb, npm]
|
||||||
|
---
|
||||||
|
|
||||||
# 🌐 Nginx Proxy Manager — Proxy Hosts
|
# 🌐 Nginx Proxy Manager — Proxy Hosts
|
||||||
|
|
||||||
> **NPM LXC:** 103 (10.0.0.195)
|
> **NPM LXC:** 103 (10.0.0.195)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: project
|
||||||
|
tags: [dttb]
|
||||||
|
---
|
||||||
|
|
||||||
# Проект: Oleg Agent — Портативный DevOps-агент
|
# Проект: Oleg Agent — Портативный DevOps-агент
|
||||||
|
|
||||||
**Статус:** 🟡 Проектирование
|
**Статус:** 🟡 Проектирование
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [dttb, bot]
|
||||||
|
---
|
||||||
|
|
||||||
# OpenClaw — основной AI-бот (LXC 137)
|
# OpenClaw — основной AI-бот (LXC 137)
|
||||||
|
|
||||||
Справочник по установке, настройке и починке OpenClaw. Обновлён 2026-04-17.
|
Справочник по установке, настройке и починке OpenClaw. Обновлён 2026-04-17.
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb, network]
|
||||||
|
---
|
||||||
|
|
||||||
# OpenWrt Router HomeLab (10.0.0.1:8080)
|
# OpenWrt Router HomeLab (10.0.0.1:8080)
|
||||||
|
|
||||||
- LuCI Web UI: http://10.0.0.1:8080/cgi-bin/luci/
|
- LuCI Web UI: http://10.0.0.1:8080/cgi-bin/luci/
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: project
|
||||||
|
tags: [dttb, proxmox]
|
||||||
|
---
|
||||||
|
|
||||||
# 🖥️ Proxmox VE — Инвентаризация VM/LXC
|
# 🖥️ Proxmox VE — Инвентаризация VM/LXC
|
||||||
|
|
||||||
> **Нода:** pve (10.0.0.250)
|
> **Нода:** pve (10.0.0.250)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [dttb]
|
||||||
|
---
|
||||||
|
|
||||||
# Server1C — Сервер 1С в Бужарово
|
# Server1C — Сервер 1С в Бужарово
|
||||||
|
|
||||||
## Подключение
|
## Подключение
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [dttb, dns]
|
||||||
|
---
|
||||||
|
|
||||||
# Spaceweb DNS (niikn.com, dttb.ru)
|
# Spaceweb DNS (niikn.com, dttb.ru)
|
||||||
|
|
||||||
- Панель: vps.sweb.ru, логин: it5870yand / 1qaz!QAZ
|
- Панель: vps.sweb.ru, логин: it5870yand / 1qaz!QAZ
|
||||||
@@ -19,5 +25,5 @@
|
|||||||
- editMx params: {domain, subDomain:"", action:"add"/"edit", priority, value:"host.", index(edit)}
|
- editMx params: {domain, subDomain:"", action:"add"/"edit", priority, value:"host.", index(edit)}
|
||||||
- editTxt params: {domain, action:"add"/"edit", subDomain:"@"/..., value, index(edit)}
|
- editTxt params: {domain, action:"add"/"edit", subDomain:"@"/..., value, index(edit)}
|
||||||
- Капча после 2-3 запросов подряд — новая сессия сбрасывает
|
- Капча после 2-3 запросов подряд — новая сессия сбрасывает
|
||||||
- [Spaceweb DNS API опасности](feedback_spaceweb_dns.md) — editMain в цикле ломает зону niikn.com; vpn.niikn.com устойчив к API
|
- [Spaceweb DNS API опасности](../../claude-memory/feedback_spaceweb_dns.md) — editMain в цикле ломает зону niikn.com; vpn.niikn.com устойчив к API
|
||||||
<!-- END AUTO-SYNC -->
|
<!-- END AUTO-SYNC -->
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-13
|
||||||
|
type: project
|
||||||
|
tags: [dttb, video]
|
||||||
|
---
|
||||||
|
|
||||||
# Система видеонаблюдения — Полный отчёт
|
# Система видеонаблюдения — Полный отчёт
|
||||||
> Дата: 16 февраля 2026
|
> Дата: 16 февраля 2026
|
||||||
> Статус: Все 3 локации подключены
|
> Статус: Все 3 локации подключены
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-03
|
||||||
|
type: project
|
||||||
|
tags: [dttb, video]
|
||||||
|
---
|
||||||
|
|
||||||
# Система видеонаблюдения — Полный отчёт
|
# Система видеонаблюдения — Полный отчёт
|
||||||
|
|
||||||
> **Дата:** 16 февраля 2026
|
> **Дата:** 16 февраля 2026
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [glavtorg]
|
||||||
|
---
|
||||||
|
|
||||||
# Инструкция по подключению к серверу GLAVTORG
|
# Инструкция по подключению к серверу GLAVTORG
|
||||||
|
|
||||||
## Для: Diana_Grig
|
## Для: Diana_Grig
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [proxmox]
|
||||||
|
---
|
||||||
|
|
||||||
# HomeLab Proxmox Инфраструктура
|
# HomeLab Proxmox Инфраструктура
|
||||||
|
|
||||||
> Статус: Активная инфраструктура
|
> Статус: Активная инфраструктура
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [note]
|
||||||
|
---
|
||||||
|
|
||||||
# Инфраструктура — Полный обзор
|
# Инфраструктура — Полный обзор
|
||||||
|
|
||||||
> Обновлено: 2026-04-04
|
> Обновлено: 2026-04-04
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [mmfb, proxmox]
|
||||||
|
---
|
||||||
|
|
||||||
# ММФБ — Proxmox инвентарь
|
# ММФБ — Proxmox инвентарь
|
||||||
|
|
||||||
## Доступ
|
## Доступ
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [nextcloud]
|
||||||
|
---
|
||||||
|
|
||||||
# Nextcloud — НИИКН и dttb.ru
|
# Nextcloud — НИИКН и dttb.ru
|
||||||
|
|
||||||
> Статус: Активный проект
|
> Статус: Активный проект
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-13
|
||||||
|
type: project
|
||||||
|
tags: [niikn]
|
||||||
|
---
|
||||||
|
|
||||||
# NC Talk — Конфигурация для ГИИКН (niikn.com)
|
# NC Talk — Конфигурация для ГИИКН (niikn.com)
|
||||||
|
|
||||||
## Архитектура (актуально на 2026-03-03)
|
## Архитектура (актуально на 2026-03-03)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-27
|
||||||
|
type: project
|
||||||
|
tags: [niikn]
|
||||||
|
---
|
||||||
|
|
||||||
# NIIKN — Журнал изменений
|
# NIIKN — Журнал изменений
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -260,9 +266,9 @@ DBPASS находится в `/opt/mailcow-dockerized/mailcow.conf` (DBPASS=8VcU
|
|||||||
|
|
||||||
## Что ещё нужно сделать
|
## Что ещё нужно сделать
|
||||||
|
|
||||||
- [ ] Настроить AIO Backup на VM108
|
- [ ] Настроить AIO Backup на VM108 (2026-04-18)
|
||||||
- [ ] Настроить SMTP для уведомлений Nextcloud (использовать mail.niikn.com после настройки DNS)
|
- [ ] Настроить SMTP для уведомлений Nextcloud (использовать mail.niikn.com после настройки DNS) (2026-04-18)
|
||||||
- [ ] Настроить Groupfolders как полноценное приложение (сейчас — Local External Storage через /mnt/ncsmb)
|
- [ ] Настроить Groupfolders как полноценное приложение (сейчас — Local External Storage через /mnt/ncsmb) (2026-04-18)
|
||||||
- [ ] Проверить работу пользователей на new.niikn.com
|
- [ ] Проверить работу пользователей на new.niikn.com (2026-04-18)
|
||||||
- [ ] Решить судьбу Linkwarden и FileBrowser (переносить или нет)
|
- [ ] Решить судьбу Linkwarden и FileBrowser (переносить или нет) (2026-04-18)
|
||||||
- [ ] Зафиксировать статический IP для VM100 (сейчас DHCP 192.168.1.245)
|
- [ ] Зафиксировать статический IP для VM100 (сейчас DHCP 192.168.1.245) (2026-04-18)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-13
|
||||||
|
type: project
|
||||||
|
tags: [niikn]
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -57,8 +57,8 @@
|
|||||||
| TXT | dkim._domainkey | v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjAN... (2048-bit) |
|
| TXT | dkim._domainkey | v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjAN... (2048-bit) |
|
||||||
|
|
||||||
### TODO
|
### TODO
|
||||||
- [ ] PTR запись: 85.235.181.190 → mail.niikn.com (запросить у Комстар/МТС)
|
- [ ] PTR запись: 85.235.181.190 → mail.niikn.com (запросить у Комстар/МТС) (2026-04-18)
|
||||||
- [ ] Настроить SMTP в Nextcloud
|
- [ ] Настроить SMTP в Nextcloud (2026-04-18)
|
||||||
|
|
||||||
### Сброс пароля admin в Mailcow
|
### Сброс пароля admin в Mailcow
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-27
|
||||||
|
type: project
|
||||||
|
tags: [niikn]
|
||||||
|
---
|
||||||
|
|
||||||
# NIIKN — Журнал изменений
|
# NIIKN — Журнал изменений
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -444,15 +450,15 @@ VM 192.168.1.200 также добавлен cloud-init диск (ide0: local-lv
|
|||||||
|
|
||||||
- [x] ~~Перезапустить AIO контейнеры Talk → восстановить signaling_servers~~
|
- [x] ~~Перезапустить AIO контейнеры Talk → восстановить signaling_servers~~
|
||||||
- [x] ~~Настроить Groupfolders как полноценное приложение~~ (в процессе — rsync идёт)
|
- [x] ~~Настроить Groupfolders как полноценное приложение~~ (в процессе — rsync идёт)
|
||||||
- [ ] **После rsync:** создать Groupfolders, назначить права, scan (см. groupfolders-migration.md)
|
- [ ] **После rsync:** создать Groupfolders, назначить права, scan (см. groupfolders-migration.md) (2026-04-18)
|
||||||
- [ ] **После rsync:** удалить External Storage ID 4 и 5 (SMB пока не удалять)
|
- [ ] **После rsync:** удалить External Storage ID 4 и 5 (SMB пока не удалять) (2026-04-18)
|
||||||
- [ ] Настроить AIO Backup на VM108
|
- [ ] Настроить AIO Backup на VM108 (2026-04-18)
|
||||||
- [ ] Настроить SMTP для уведомлений Nextcloud (mail.niikn.com готов, нужно вписать в NC вручную)
|
- [ ] Настроить SMTP для уведомлений Nextcloud (mail.niikn.com готов, нужно вписать в NC вручную) (2026-04-18)
|
||||||
- [ ] **PTR запись:** позвонить провайдеру Комстар/МТС, попросить установить PTR: `85.235.181.190` → `mail.niikn.com` (без PTR некоторые серверы могут отклонять письма)
|
- [ ] **PTR запись:** позвонить провайдеру Комстар/МТС, попросить установить PTR: `85.235.181.190` → `mail.niikn.com` (без PTR некоторые серверы могут отклонять письма) (2026-04-18)
|
||||||
- [ ] Проверить работу пользователей на new.niikn.com
|
- [ ] Проверить работу пользователей на new.niikn.com (2026-04-18)
|
||||||
- [ ] Решить судьбу Linkwarden и FileBrowser (переносить или нет)
|
- [ ] Решить судьбу Linkwarden и FileBrowser (переносить или нет) (2026-04-18)
|
||||||
- [ ] Зафиксировать статический IP для VM100 (сейчас DHCP 192.168.1.245)
|
- [ ] Зафиксировать статический IP для VM100 (сейчас DHCP 192.168.1.245) (2026-04-18)
|
||||||
- [ ] Проверить SSH бота к NC AIO после перезагрузки VM
|
- [ ] Проверить SSH бота к NC AIO после перезагрузки VM (2026-04-18)
|
||||||
- [ ] Удалить cloud-init диск ide0 с VM 108 (если не нужен)
|
- [ ] Удалить cloud-init диск ide0 с VM 108 (если не нужен) (2026-04-18)
|
||||||
- [ ] Установить и настроить Matrix на Proxmox НИИКН (VM 107 уже есть)
|
- [ ] Установить и настроить Matrix на Proxmox НИИКН (VM 107 уже есть) (2026-04-18)
|
||||||
- [ ] Настроить Element для Nextcloud (riotchat app) для внешних звонков
|
- [ ] Настроить Element для Nextcloud (riotchat app) для внешних звонков (2026-04-18)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [niikn, bot]
|
||||||
|
---
|
||||||
|
|
||||||
# Clawdbot-1 / НИИКН (LXC 133)
|
# Clawdbot-1 / НИИКН (LXC 133)
|
||||||
|
|
||||||
- IP: 10.0.0.237, Netbird: 100.70.200.150 (clawdbot-1.netbird.cloud)
|
- IP: 10.0.0.237, Netbird: 100.70.200.150 (clawdbot-1.netbird.cloud)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-03
|
||||||
|
type: project
|
||||||
|
tags: [niikn]
|
||||||
|
---
|
||||||
|
|
||||||
# Миграция Groupfolders: VM 100 → VM 108
|
# Миграция Groupfolders: VM 100 → VM 108
|
||||||
|
|
||||||
> **Дата:** 03.03.2026
|
> **Дата:** 03.03.2026
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [niikn, mail]
|
||||||
|
---
|
||||||
|
|
||||||
# Mailcow НИИКН (VM 106, 192.168.1.128)
|
# Mailcow НИИКН (VM 106, 192.168.1.128)
|
||||||
|
|
||||||
- Web UI: https://mail.niikn.com (через NPM proxy host #17)
|
- Web UI: https://mail.niikn.com (через NPM proxy host #17)
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [niikn, matrix]
|
||||||
|
---
|
||||||
|
|
||||||
# Matrix НИИКН (VM 107, 192.168.1.133)
|
# Matrix НИИКН (VM 107, 192.168.1.133)
|
||||||
|
|
||||||
## Общая информация
|
## Общая информация
|
||||||
@@ -87,11 +93,11 @@
|
|||||||
- **Synapse:** msc3266+msc4222 enabled, max_event_delay_duration: 24h
|
- **Synapse:** msc3266+msc4222 enabled, max_event_delay_duration: 24h
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
- [ ] Перенастроить mautrix-telegram для niikn.com
|
- [ ] Перенастроить mautrix-telegram для niikn.com (2026-04-18)
|
||||||
- [ ] Перенастроить mautrix-whatsapp для niikn.com
|
- [ ] Перенастроить mautrix-whatsapp для niikn.com (2026-04-18)
|
||||||
- [ ] Проверить/починить matrix-ai-bot
|
- [ ] Проверить/починить matrix-ai-bot (2026-04-18)
|
||||||
- [ ] Закрыть открытую регистрацию (enable_registration: false)
|
- [ ] Закрыть открытую регистрацию (enable_registration: false) (2026-04-18)
|
||||||
- [ ] Добавить SRV запись _matrix._tcp.niikn.com (опционально)
|
- [ ] Добавить SRV запись _matrix._tcp.niikn.com (опционально) (2026-04-18)
|
||||||
|
|
||||||
<!-- AUTO-SYNC FROM MEMORY.MD - DO NOT EDIT BELOW -->
|
<!-- AUTO-SYNC FROM MEMORY.MD - DO NOT EDIT BELOW -->
|
||||||
## Matrix НИИКН (VM 107, 192.168.1.133) — Proxmox НИИКН
|
## Matrix НИИКН (VM 107, 192.168.1.133) — Proxmox НИИКН
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [niikn]
|
||||||
|
---
|
||||||
|
|
||||||
# MikroTik НИИКН (192.168.1.1)
|
# MikroTik НИИКН (192.168.1.1)
|
||||||
|
|
||||||
- SSH: AI / OL260380eg
|
- SSH: AI / OL260380eg
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [niikn, npm]
|
||||||
|
---
|
||||||
|
|
||||||
# NPM НИИКН (LXC 102, 192.168.1.22)
|
# NPM НИИКН (LXC 102, 192.168.1.22)
|
||||||
|
|
||||||
- Web UI: http://192.168.1.22:81
|
- Web UI: http://192.168.1.22:81
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-31
|
||||||
|
type: project
|
||||||
|
tags: [niikn, network]
|
||||||
|
---
|
||||||
|
|
||||||
# OpenWrt + Podkop — Обход блокировок НИИКН
|
# OpenWrt + Podkop — Обход блокировок НИИКН
|
||||||
|
|
||||||
## Схема работы
|
## Схема работы
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: project
|
||||||
|
tags: [niikn, proxmox]
|
||||||
|
---
|
||||||
|
|
||||||
# Proxmox НИИКН (192.168.1.201:8006)
|
# Proxmox НИИКН (192.168.1.201:8006)
|
||||||
|
|
||||||
- root / 1qaz!QAZ, Node: pve
|
- root / 1qaz!QAZ, Node: pve
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-21
|
||||||
|
type: project
|
||||||
|
tags: [niikn, network]
|
||||||
|
---
|
||||||
|
|
||||||
# VPN НИИКН — Finland VPS 78.17.4.225
|
# VPN НИИКН — Finland VPS 78.17.4.225
|
||||||
|
|
||||||
## Серверы
|
## Серверы
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [note]
|
||||||
|
---
|
||||||
|
|
||||||
# Нерешённые задачи и проблемы
|
# Нерешённые задачи и проблемы
|
||||||
|
|
||||||
> Обновлено: 2026-04-04
|
> Обновлено: 2026-04-04
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-04-17
|
||||||
|
type: project
|
||||||
|
tags: [video]
|
||||||
|
---
|
||||||
|
|
||||||
# Видеонаблюдение — AgentDVR + Telegram бот
|
# Видеонаблюдение — AgentDVR + Telegram бот
|
||||||
|
|
||||||
> Статус: Активный проект
|
> Статус: Активный проект
|
||||||
|
|||||||
196
scripts/kb-add-frontmatter.py
Normal file
196
scripts/kb-add-frontmatter.py
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Add frontmatter to .md files that lack it. One-off agent-loop fix."""
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
VAULT = Path(__file__).resolve().parent.parent
|
||||||
|
|
||||||
|
FILES = """
|
||||||
|
decisions/2026-04-16-unifi-migration-peredelki.md
|
||||||
|
decisions/2026-03-03-mailserver-setup-scenario.md
|
||||||
|
decisions/2026-03-04-matrix-niikn-setup.md
|
||||||
|
decisions/2026-04-14-niikn-openwrt-awg-fix.md
|
||||||
|
decisions/2026-04-17-peredelki-podkop-stability-fix.md
|
||||||
|
decisions/2026-02-26-clawdbot-129-cliproxy-fix.md
|
||||||
|
decisions/2026-04-14-openclaw-claude-code-pipeline.md
|
||||||
|
decisions/2026-04-17-code-server-upgrade.md
|
||||||
|
notes/2026-02-26-knowledge-base-setup.md
|
||||||
|
notes/2026-02-26-session-summary.md
|
||||||
|
notes/2026-02-26-claude-code-session-clawdbot-fix.md
|
||||||
|
notes/2026-02-26-full-session-log.md
|
||||||
|
projects/unresolved-issues.md
|
||||||
|
projects/nextcloud.md
|
||||||
|
projects/infrastructure-overview.md
|
||||||
|
projects/homelab-proxmox.md
|
||||||
|
projects/video-surveillance.md
|
||||||
|
projects/bitrix-sites.md
|
||||||
|
projects/clawdbot-bots.md
|
||||||
|
projects/all-projects-summary.md
|
||||||
|
projects/dttb/npm-homelab.md
|
||||||
|
projects/dttb/nextcloud.md
|
||||||
|
projects/dttb/proxmox-inventory.md
|
||||||
|
projects/dttb/server1c.md
|
||||||
|
projects/dttb/agentdvr-home.md
|
||||||
|
projects/dttb/memory-inventory.md
|
||||||
|
projects/dttb/video-surveillance-report.md
|
||||||
|
projects/dttb/openclaw.md
|
||||||
|
projects/dttb/credentials.md
|
||||||
|
projects/dttb/oleg-agent.md
|
||||||
|
projects/dttb/netbird-inventory.md
|
||||||
|
projects/dttb/clawdbot.md
|
||||||
|
projects/dttb/clawdbot-znam.md
|
||||||
|
projects/dttb/spaceweb-dns.md
|
||||||
|
projects/dttb/npm-proxy-hosts.md
|
||||||
|
projects/dttb/gpu-passthrough.md
|
||||||
|
projects/dttb/openwrt-router.md
|
||||||
|
projects/dttb/gitea.md
|
||||||
|
projects/dttb/mailcow-dttb.md
|
||||||
|
projects/dttb/videonablyudenie-znam.md
|
||||||
|
projects/dttb/matrix-homelab.md
|
||||||
|
projects/dttb/homeassistant.md
|
||||||
|
projects/dttb/network-topology.md
|
||||||
|
projects/glavtorg/instruction-diana-rdp.md
|
||||||
|
projects/niikn/mailcow.md
|
||||||
|
projects/niikn/NIIKN-Infrastructure.md
|
||||||
|
projects/niikn/groupfolders-migration.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/mikrotik.md
|
||||||
|
projects/niikn/openwrt-bypass.md
|
||||||
|
projects/niikn/NC-Talk-Setup.md
|
||||||
|
projects/niikn/vpn.md
|
||||||
|
projects/mmfb/proxmox-inventory.md
|
||||||
|
snippets/proxmox-console-quirks.md
|
||||||
|
snippets/clawdbot-cliproxy-config.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
|
||||||
|
""".strip().splitlines()
|
||||||
|
|
||||||
|
TODAY = "2026-04-18"
|
||||||
|
|
||||||
|
|
||||||
|
def file_date(rel_path: str, full: Path) -> str:
|
||||||
|
name = full.name
|
||||||
|
m = re.match(r"^(\d{4}-\d{2}-\d{2})", name)
|
||||||
|
if m:
|
||||||
|
return m.group(1)
|
||||||
|
try:
|
||||||
|
r = subprocess.run(
|
||||||
|
["git", "log", "--diff-filter=A", "--follow", "--format=%ad",
|
||||||
|
"--date=short", "--", rel_path],
|
||||||
|
cwd=VAULT, capture_output=True, text=True, timeout=10
|
||||||
|
)
|
||||||
|
lines = [l.strip() for l in r.stdout.splitlines() if l.strip()]
|
||||||
|
if lines:
|
||||||
|
return lines[-1]
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return TODAY
|
||||||
|
|
||||||
|
|
||||||
|
def type_for(rel_path: str) -> str:
|
||||||
|
parts = rel_path.split("/")
|
||||||
|
if parts[0] == "decisions":
|
||||||
|
return "decision"
|
||||||
|
if parts[0] == "notes":
|
||||||
|
return "note"
|
||||||
|
if parts[0] == "daily":
|
||||||
|
return "daily"
|
||||||
|
if parts[0] == "projects":
|
||||||
|
return "project"
|
||||||
|
if parts[0] == "snippets":
|
||||||
|
return "reference"
|
||||||
|
if parts[0] == "claude-memory":
|
||||||
|
return "reference"
|
||||||
|
if parts[0] == "templates":
|
||||||
|
return "template"
|
||||||
|
return "note"
|
||||||
|
|
||||||
|
|
||||||
|
def tags_for(rel_path: str) -> list:
|
||||||
|
parts = rel_path.split("/")
|
||||||
|
tags = []
|
||||||
|
if parts[0] == "decisions":
|
||||||
|
tags.append("decision")
|
||||||
|
elif parts[0] == "notes":
|
||||||
|
tags.append("note")
|
||||||
|
elif parts[0] == "snippets":
|
||||||
|
tags.append("snippet")
|
||||||
|
elif parts[0] == "claude-memory":
|
||||||
|
tags.append("memory")
|
||||||
|
if len(parts) > 1 and parts[0] == "projects":
|
||||||
|
proj = parts[1]
|
||||||
|
if proj in ("dttb", "niikn", "glavtorg", "mmfb", "krasnogorsk"):
|
||||||
|
tags.append(proj)
|
||||||
|
lower = rel_path.lower()
|
||||||
|
if "nextcloud" in lower:
|
||||||
|
tags.append("nextcloud")
|
||||||
|
if "matrix" in lower:
|
||||||
|
tags.append("matrix")
|
||||||
|
if "proxmox" in lower:
|
||||||
|
tags.append("proxmox")
|
||||||
|
if "npm" in lower:
|
||||||
|
tags.append("npm")
|
||||||
|
if "dns" in lower:
|
||||||
|
tags.append("dns")
|
||||||
|
if "mailcow" in lower or "mail" in lower.split("/")[-1]:
|
||||||
|
tags.append("mail")
|
||||||
|
if "clawdbot" in lower or "openclaw" in lower:
|
||||||
|
tags.append("bot")
|
||||||
|
if "vpn" in lower or "openwrt" in lower or "netbird" in lower:
|
||||||
|
tags.append("network")
|
||||||
|
if "video" in lower or "surveillance" in lower or "camera" in lower or "agentdvr" in lower:
|
||||||
|
tags.append("video")
|
||||||
|
if not tags:
|
||||||
|
tags = ["note"]
|
||||||
|
seen = set()
|
||||||
|
out = []
|
||||||
|
for t in tags:
|
||||||
|
if t not in seen:
|
||||||
|
seen.add(t)
|
||||||
|
out.append(t)
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
def add_fm(rel_path: str):
|
||||||
|
full = VAULT / rel_path
|
||||||
|
if not full.is_file():
|
||||||
|
print(f"MISSING: {rel_path}")
|
||||||
|
return
|
||||||
|
text = full.read_text()
|
||||||
|
if text.startswith("---\n"):
|
||||||
|
print(f"HAS-FM: {rel_path}")
|
||||||
|
return
|
||||||
|
d = file_date(rel_path, full)
|
||||||
|
t = type_for(rel_path)
|
||||||
|
tags = tags_for(rel_path)
|
||||||
|
fm = (
|
||||||
|
"---\n"
|
||||||
|
f"date: {d}\n"
|
||||||
|
f"type: {t}\n"
|
||||||
|
f"tags: [{', '.join(tags)}]\n"
|
||||||
|
"---\n\n"
|
||||||
|
)
|
||||||
|
full.write_text(fm + text)
|
||||||
|
print(f"FIXED: {rel_path} (date={d}, type={t}, tags={tags})")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
for line in FILES:
|
||||||
|
line = line.strip()
|
||||||
|
if not line:
|
||||||
|
continue
|
||||||
|
add_fm(line)
|
||||||
47
scripts/kb-date-todos.py
Normal file
47
scripts/kb-date-todos.py
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Append (YYYY-MM-DD) to undated '- [ ]' lines. One-off agent-loop fix."""
|
||||||
|
import re
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
VAULT = Path(__file__).resolve().parent.parent
|
||||||
|
TODAY = "2026-04-18"
|
||||||
|
|
||||||
|
TARGETS = {
|
||||||
|
"projects/niikn/changelog.md": TODAY,
|
||||||
|
"projects/niikn/NIIKN-ChangeLog.md": TODAY,
|
||||||
|
"projects/niikn/matrix.md": TODAY,
|
||||||
|
"projects/dttb/nextcloud-talk-bot/README.md": TODAY,
|
||||||
|
"daily/2026-04-19.md": "2026-04-19",
|
||||||
|
"claude-memory/mas-niikn.md": TODAY,
|
||||||
|
"decisions/2026-04-16-unifi-migration-peredelki.md": "2026-04-16",
|
||||||
|
"projects/niikn/README.md": TODAY,
|
||||||
|
"decisions/2026-04-14-openclaw-claude-code-pipeline.md": "2026-04-14",
|
||||||
|
"projects/dttb/mailcow-dttb.md": TODAY,
|
||||||
|
"daily/2026-04-17.md": "2026-04-17",
|
||||||
|
"templates/daily-note.md": TODAY,
|
||||||
|
}
|
||||||
|
|
||||||
|
DATE_RE = re.compile(r"\d{4}-\d{2}-\d{2}")
|
||||||
|
TODO_RE = re.compile(r"^(\s*-\s*\[\s*\]\s*.*?)\s*$")
|
||||||
|
|
||||||
|
for rel, date in TARGETS.items():
|
||||||
|
p = VAULT / rel
|
||||||
|
if not p.is_file():
|
||||||
|
print(f"MISSING: {rel}")
|
||||||
|
continue
|
||||||
|
lines = p.read_text().splitlines()
|
||||||
|
fixed = 0
|
||||||
|
new_lines = []
|
||||||
|
for line in lines:
|
||||||
|
m = re.match(r"^\s*-\s*\[\s*\]\s+", line)
|
||||||
|
if m and not DATE_RE.search(line):
|
||||||
|
stripped = line.rstrip()
|
||||||
|
new_lines.append(f"{stripped} ({date})")
|
||||||
|
fixed += 1
|
||||||
|
elif re.match(r"^\s*-\s*\[\s*\]\s*$", line):
|
||||||
|
new_lines.append(f"{line.rstrip()} ({date})")
|
||||||
|
fixed += 1
|
||||||
|
else:
|
||||||
|
new_lines.append(line)
|
||||||
|
p.write_text("\n".join(new_lines) + ("\n" if lines and not lines[-1] == "" else ""))
|
||||||
|
print(f"{rel}: {fixed} fixed")
|
||||||
115
scripts/kb-list-issues.py
Normal file
115
scripts/kb-list-issues.py
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Temporary diagnostic — list all KB issues in full."""
|
||||||
|
import re
|
||||||
|
from pathlib import Path
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
VAULT = Path(__file__).resolve().parent.parent
|
||||||
|
INCLUDE_DIRS = ['decisions', 'notes', 'projects', 'snippets', 'daily',
|
||||||
|
'claude-memory', 'templates', 'scripts', 'audit']
|
||||||
|
EXCLUDE = {'.git', '.obsidian', '.claude'}
|
||||||
|
|
||||||
|
files = []
|
||||||
|
for d in INCLUDE_DIRS:
|
||||||
|
root = VAULT / d
|
||||||
|
if not root.exists():
|
||||||
|
continue
|
||||||
|
for p in root.rglob('*.md'):
|
||||||
|
if any(part in EXCLUDE for part in p.parts):
|
||||||
|
continue
|
||||||
|
files.append(p)
|
||||||
|
for name in ('CLAUDE.md', 'README.md'):
|
||||||
|
p = VAULT / name
|
||||||
|
if p.is_file():
|
||||||
|
files.append(p)
|
||||||
|
|
||||||
|
def has_fm(txt):
|
||||||
|
if not txt.startswith('---\n'):
|
||||||
|
return False
|
||||||
|
return bool(re.match(r'---\n(.*?\n)*?---\n', txt))
|
||||||
|
|
||||||
|
def strip_code(t):
|
||||||
|
t = re.sub(r'```[\s\S]*?```', '', t)
|
||||||
|
t = re.sub(r'`[^`\n]*`', '', t)
|
||||||
|
return t
|
||||||
|
|
||||||
|
def wikilinks(t):
|
||||||
|
out = []
|
||||||
|
for m in re.finditer(r'\[\[([^\]]+)\]\]', strip_code(t)):
|
||||||
|
tgt = m.group(1).split('|')[0].split('#')[0].strip()
|
||||||
|
if tgt:
|
||||||
|
out.append(tgt)
|
||||||
|
return out
|
||||||
|
|
||||||
|
basenames = defaultdict(list)
|
||||||
|
for p in files:
|
||||||
|
basenames[p.stem].append(p)
|
||||||
|
|
||||||
|
def resolve_wl(target, from_file):
|
||||||
|
tc = target.replace('.md', '')
|
||||||
|
if tc.startswith(('.', '/')):
|
||||||
|
try:
|
||||||
|
r = (from_file.parent / tc).resolve()
|
||||||
|
for c in (r.with_suffix('.md'), r):
|
||||||
|
if c.is_file() and str(c).endswith('.md'):
|
||||||
|
return c
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
g = VAULT / f'{tc}.md'
|
||||||
|
if g.is_file():
|
||||||
|
return g
|
||||||
|
b = tc.rsplit('/', 1)[-1]
|
||||||
|
if b in basenames:
|
||||||
|
return basenames[b][0]
|
||||||
|
return None
|
||||||
|
|
||||||
|
missing = []
|
||||||
|
incoming = defaultdict(set)
|
||||||
|
todos = defaultdict(list)
|
||||||
|
|
||||||
|
for f in files:
|
||||||
|
txt = f.read_text(errors='ignore')
|
||||||
|
rel = str(f.relative_to(VAULT))
|
||||||
|
if f.name not in ('README.md', 'CLAUDE.md') and not has_fm(txt):
|
||||||
|
missing.append(rel)
|
||||||
|
for target in wikilinks(txt):
|
||||||
|
r = resolve_wl(target, f)
|
||||||
|
if r:
|
||||||
|
incoming[r].add(f)
|
||||||
|
for i, line in enumerate(txt.splitlines(), 1):
|
||||||
|
if re.match(r'^\s*-\s*\[\s*\]\s+', line):
|
||||||
|
if not re.search(r'\d{4}-\d{2}-\d{2}', line):
|
||||||
|
todos[rel].append((i, line))
|
||||||
|
|
||||||
|
ORPHAN_OK = [
|
||||||
|
re.compile(r'^daily/.*'),
|
||||||
|
re.compile(r'^audit/.*'),
|
||||||
|
re.compile(r'^templates/.*'),
|
||||||
|
re.compile(r'^notes/claude/.*'),
|
||||||
|
re.compile(r'^scripts/.*'),
|
||||||
|
re.compile(r'^CLAUDE\.md$'),
|
||||||
|
re.compile(r'^README\.md$'),
|
||||||
|
]
|
||||||
|
def is_ok(rel):
|
||||||
|
return any(p.match(rel) for p in ORPHAN_OK)
|
||||||
|
|
||||||
|
orphans = []
|
||||||
|
for f in files:
|
||||||
|
if f not in incoming:
|
||||||
|
rel = str(f.relative_to(VAULT))
|
||||||
|
if not is_ok(rel):
|
||||||
|
orphans.append(rel)
|
||||||
|
|
||||||
|
print('=== MISSING FRONTMATTER ({}) ==='.format(len(missing)))
|
||||||
|
for x in missing:
|
||||||
|
print(x)
|
||||||
|
print()
|
||||||
|
print('=== ORPHANS ({}) ==='.format(len(orphans)))
|
||||||
|
for x in orphans:
|
||||||
|
print(x)
|
||||||
|
print()
|
||||||
|
print('=== UNDATED TODOS ({}) ==='.format(sum(len(v) for v in todos.values())))
|
||||||
|
for f, lines in sorted(todos.items(), key=lambda x: -len(x[1])):
|
||||||
|
print('FILE:', f, '({})'.format(len(lines)))
|
||||||
|
for ln, line in lines:
|
||||||
|
print(' L{}: {}'.format(ln, line.strip()))
|
||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-02-26
|
||||||
|
type: reference
|
||||||
|
tags: [snippet, bot]
|
||||||
|
---
|
||||||
|
|
||||||
# Конфиг clawdbot для работы через CLIProxy
|
# Конфиг clawdbot для работы через CLIProxy
|
||||||
|
|
||||||
Шаблон для настройки clawdbot с провайдером cliproxy (проксирование через CLIProxy).
|
Шаблон для настройки clawdbot с провайдером cliproxy (проксирование через CLIProxy).
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
---
|
||||||
|
date: 2026-03-04
|
||||||
|
type: reference
|
||||||
|
tags: [snippet, proxmox]
|
||||||
|
---
|
||||||
|
|
||||||
# Proxmox console quirks
|
# Proxmox console quirks
|
||||||
|
|
||||||
- Heredoc (<<EOF) does NOT work in Proxmox web console
|
- Heredoc (<<EOF) does NOT work in Proxmox web console
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ type: daily
|
|||||||
# {{date:YYYY-MM-DD}}
|
# {{date:YYYY-MM-DD}}
|
||||||
|
|
||||||
## Приоритеты дня
|
## Приоритеты дня
|
||||||
- [ ]
|
- [ ] (2026-04-18)
|
||||||
|
|
||||||
## Инфраструктура
|
## Инфраструктура
|
||||||
<!-- Что менял, чинил, настраивал -->
|
<!-- Что менял, чинил, настраивал -->
|
||||||
|
|||||||
Reference in New Issue
Block a user