Files
knowledge-base/CLAUDE.md
dttb d97e7a4a03 podkop: канонический справочник (модель/списки/грабли/инвентарь)
Свёл разрозненные знания о podkop в один single-source-of-truth: snippets/podkop-reference.md.
Главное — семантика inside/outside (причина НИИКН-косяка), каталог листов + decision guide,
правильный конфиг, каталог граблей (busybox ip -br, слетающие overrides, fwmark vs NetBird,
cache.db lock, disable_quic, MTU), инвентарь podkop по объектам. Линки из runbook + CLAUDE.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 13:31:58 +03:00

99 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Claude Code — Единая база знаний
## Контекст
Это база знаний DevOps-инженера Олега Батлаева. Содержит всю информацию об инфраструктуре, проектах и решениях. Синхронизируется между Claude Code, Cursor, Gitea и Nextcloud.
## Язык: русский
## Структура (Obsidian vault)
- `projects/dttb/` — домашний сервер (Proxmox, сеть, все сервисы)
- `network-topology.md` — полная карта сети 10.0.0.0/24
- `proxmox-inventory.md` — все VM/LXC
- `credentials.md` — пароли и ключи
- `npm-proxy-hosts.md` — домены *.dttb.ru
- `projects/niikn/` — проект НИИКН
- `projects/glavtorg/` — проект Главторг (Windows-сервер, 1С)
- `decisions/` — принятые решения (формат: YYYY-MM-DD-тема.md)
- `snippets/` — полезный код и конфиги
- `notes/` — заметки из чатов с ИИ
- `daily/` — ежедневные заметки (YYYY-MM-DD.md)
- `templates/` — шаблоны (daily-note, decision)
## Obsidian-конвенции
- Используй `[[двойные скобки]]` для внутренних ссылок
- Теги `#topic` для фильтрации
- Daily notes в формате YYYY-MM-DD
- Разделяй факты (decisions/) от рабочих заметок (notes/)
## Инфраструктура
- **Proxmox:** 10.0.0.250 (root/1qaz!QAZ)
- **Gitea:** git.dttb.ru (oleg/OL260380eg) — LXC 136 (10.0.0.189)
- **Nextcloud AIO:** dttb.ru (admin/1qaz!QAZ) — VM 250 (10.0.0.230:11001)
- **NPM:** 10.0.0.195:81 (it5870@yandex.ru/1qaz!QAZ) — LXC 103
- **code-server:** ai.dttb.ru — LXC 132 (10.0.0.179) + OmniRoute + CLIProxy
- **OpenClaw:** bot.dttb.ru — LXC 137 (10.0.0.239) — основной AI-бот
## Синхронизация knowledge-base
См. [[decisions/2026-04-17-nextcloud-sync-schema]]. Три-четыре хоста держат vault в синхроне через Gitea:
- **Mac** `~/knowledge-base` — RW, git + rclone-bisync на Nextcloud (Stop-hook)
- **code-server LXC 132** `/root/knowledge-base` — RW, cron `*/5` `kb-autosync.sh`
- **openclaw LXC 137** `/root/knowledge-base` — RO, cron `*/15` `kb-pull.sh`
- **Nextcloud** `/Knowledge Base/` — сервисная копия для iPhone/веб-доступа
## Частые команды
- Список VM: `sshpass -p '1qaz!QAZ' ssh -o StrictHostKeyChecking=no root@10.0.0.250 qm list`
- Список LXC: `sshpass -p '1qaz!QAZ' ssh -o StrictHostKeyChecking=no root@10.0.0.250 pct list`
- Проверить хост: `ping -c3 <ip>`
- Домены NPM: смотри `projects/dttb/npm-proxy-hosts.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/`
- При изменениях в инфраструктуре — обнови `proxmox-inventory.md` и `network-topology.md`
- Отвечай кратко, без воды и повторений
## Ресёрч через OmniRoute (бесплатные модели)
При работе над задачами используй двухэтапный подход:
1. **Ресёрч** — вызывай MCP тул `research` для поиска решений через бесплатные модели (Sonnet 4.5, GPT-5.4, Gemini)
2. **Исполнение** — реализуй найденное решение сам (Opus 4.6 через Max подписку)
### MCP тулы omniroute
- `research(query, model?)` — запрос к бесплатной модели. По умолчанию kr/claude-sonnet-4.5
- `research_compare(query, models?)` — сравнить ответы нескольких моделей
- `models_list()` — список доступных бесплатных моделей
### Когда использовать research
- Поиск best practices и подходов к задаче
- Сравнение технологий/решений
- Генерация конфигов и шаблонов для проверки
- НЕ используй для простых задач где ответ очевиден
## Правила
1. Проверяй базу перед работой — решение может уже быть
2. Сохраняй новые решения в `decisions/`
3. Полезный код → `snippets/`
4. Обновляй inventory при изменениях в инфраструктуре
5. Коммить на русском: `git add -A && git commit -m "описание" && git push`
### Рекомендуемые модели для ресёрча через research-тул
- `kr/claude-sonnet-4.5` — основная (Kiro/AWS, бесплатно)
- `cx/gpt-5.4` — альтернатива (Codex/OpenAI, бесплатно)
- `gh/claude-opus-4.6` — GitHub Models (бесплатно, лимиты)
- `gemini-cli/gemini-2.5-pro` — Google Gemini
### CLI скрипт
```bash
research "вопрос" # через Sonnet 4.5
research -m cx/gpt-5.4 "вопрос" # через GPT-5.4
```