From 4e8207c33b6fa9a561bbb20edea311cc51399c26 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Wed, 13 May 2026 23:20:03 +0600 Subject: [PATCH] =?UTF-8?q?2026-05-13=20=D0=BF=D0=BB=D0=B0=D0=BD:=20Aide?= =?UTF-8?q?=20=E2=86=92=20Kraken=20backend=20=D1=87=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=20Hermes=20API=20+=20CF=20Tunnel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- family/projects/aide-kraken-backend.md | 134 +++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 family/projects/aide-kraken-backend.md diff --git a/family/projects/aide-kraken-backend.md b/family/projects/aide-kraken-backend.md new file mode 100644 index 00000000..a6592549 --- /dev/null +++ b/family/projects/aide-kraken-backend.md @@ -0,0 +1,134 @@ +# Aide → Kraken Backend: план настройки + +> Создано: 2026-05-13 +> Статус: 📋 план, не выполнен + +## Цель + +Сделать Кракена бэкендом для приложения **Aide** на Android — как замена Siri/Google Assistant с Hermes вместо Claude API напрямую. + +--- + +## Почему это реализуемо + +- Hermes gateway уже поддерживает **OpenAI-compatible API server** (`gateway/platforms/api_server.py`) +- Endpoint: `POST /v1/chat/completions` — именно то, что ожидает Aide (BYOK → Custom Endpoint) +- Кракен работает в режиме `network_mode: host` → порт 8642 будет доступен напрямую на хосте +- cloudflared уже запущен на Кракене (туннель `kraken` активен) → достаточно добавить hostname + +--- + +## Архитектура + +``` +Android (Aide) + └── HTTPS → hermes.kraken.qentra.top/v1/chat/completions + ↓ Cloudflare Tunnel + cloudflared (контейнер на Кракене, host network) + ↓ localhost + hermes-kraken:8642 (API server) + ↓ + Hermes gateway → Gemini / OpenRouter / ... +``` + +--- + +## Шаги + +### Шаг 1 — Включить API server в Hermes (config.yaml на Кракене) + +Добавить в `/opt/data/config.yaml`: + +```yaml +api_server: + enabled: true + port: 8642 + host: "0.0.0.0" # слушать на всех интерфейсах (CF туннель на хосте) + key: "СГЕНЕРИРОВАТЬ_СЕКРЕТ" # openssl rand -hex 32 +``` + +Перезапустить контейнер: +```bash +BASE=http://localhost:9000 +KEY="ptr_AJY+Ba9A7f6pcAHZfDD5koU4stkKgJCdbTEXLDLxn0g=" +EP=3 + +CID=$(curl -s -H "X-API-Key: $KEY" "$BASE/api/endpoints/$EP/docker/containers/json" \ + | jq -r '.[] | select(.Names[] | contains("hermes-kraken")) | .Id') + +curl -s -X POST -H "X-API-Key: $KEY" "$BASE/api/endpoints/$EP/docker/containers/$CID/restart" +``` + +Проверить: +```bash +curl -s http://localhost:8642/health +# → {"status":"ok","version":"..."} +``` + +### Шаг 2 — Добавить Cloudflare Tunnel hostname + +В **Cloudflare Zero Trust** → Networks → Tunnels → `kraken` → Edit → Public Hostnames → Add: + +| Поле | Значение | +|------|----------| +| Subdomain | `hermes` | +| Domain | `kraken.qentra.top` | +| Type | HTTP | +| URL | `localhost:8642` | + +Результат: `https://hermes.kraken.qentra.top` → Кракен:8642 + +> Нужно будет сделать через CF Zero Trust Dashboard (web UI) — Орёл сам не может, нужен Alex. + +Проверить после добавления: +```bash +curl -s https://hermes.kraken.qentra.top/health +``` + +### Шаг 3 — Настроить Aide на Android + +В Aide → Providers → Add Provider → Custom Endpoint: + +| Поле | Значение | +|------|----------| +| Base URL | `https://hermes.kraken.qentra.top/v1` | +| API Key | секрет из config.yaml | +| Model | `hermes-agent` (или любое — маппится на Hermes) | + +--- + +## О cloudflared SSH перенастройке + +Текущий SSH hostname `kraken.qentra.top → SSH → localhost:22` **не мешает** — он просто не используется (SSH ходит через VPS на 2223). + +Варианты: +- **Оставить как есть** — просто добавить новый hostname `hermes.kraken.qentra.top` для API +- **Перенастроить старый** — изменить `kraken.qentra.top` с SSH на HTTP (если SSH через CF больше не нужен) + +Рекомендую: **оставить** старый SSH hostname (не мешает, может пригодиться), добавить новый для Hermes API. + +--- + +## Что НЕ нужно менять + +- ✅ Контейнер cloudflared — уже запущен и работает +- ✅ Reverse SSH туннель на VPS — не трогаем, SSH доступ остаётся +- ✅ network_mode: host у hermes-kraken — порт 8642 сразу на хосте + +--- + +## Что нужно от Alex + +1. Сгенерировать API ключ: `openssl rand -hex 32` (сохранить в `.env` или config) +2. Добавить hostname в CF Zero Trust (вебинтерфейс) +3. Ввести endpoint + ключ в Aide + +Всё остальное Орёл сделает сам. + +--- + +## Связанные заметки + +- [[kraken-access]] — SSH и Portainer доступ к Кракену +- [[kraken-portainer-access]] — Portainer API команды +- [[openmediavault-rpi5]] — структура Docker на Кракене