61 lines
5.5 KiB
Markdown
61 lines
5.5 KiB
Markdown
---
|
||
name: OmniRoute AI Gateway
|
||
description: OmniRoute v3.6.5 на LXC 132 (10.0.0.179) — AI-шлюз для 60+ LLM провайдеров, порт 20128
|
||
type: project
|
||
originSessionId: 9f26284f-db92-456f-813d-fd8210b7d7b6
|
||
---
|
||
## OmniRoute v3.6.5 (LXC 132, 10.0.0.179)
|
||
|
||
> ⚠️ **2026-06-19: провайдер Kiro (`kr/*`) потерял креды** — любой `kr/...` отдаёт `400 "No credentials for provider: kiro"`. Бьёт по fallback-цепочкам всех агентов, где стоял `kr/claude-sonnet-4.5` (German переведён на `cx/gpt-5.5`; проверить openclaw/swarmclaw). Лечение — переподключить Kiro-провайдер в дашборде OmniRoute. Что точно живо на 2026-06-19: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-sonnet-4-6` (все Max — общий кап, периодический 400 «out of extra usage»), `cx/gpt-5.5` (Codex, отдельный провайдер). Мертво: `kr/*`, `cx/gpt-5.4`, `gemini-cli/*` (403), `gh/*` (500).
|
||
|
||
- **Путь**: /root/OmniRoute/, Node.js 22, Next.js 16.2, git repo (github.com/diegosouzapw/OmniRoute)
|
||
- **Dashboard**: http://10.0.0.179:20128, пароль: 1qaz!QAZ
|
||
- **API**: http://10.0.0.179:20128/v1
|
||
- **API Key**: sk-225e902dc95ff192-6bdad7-3ec8cdc6
|
||
- **SQLite DB**: /root/.omniroute/storage.sqlite
|
||
- **Service**: omniroute.service (systemd, enabled), запускает **npx-кэш** (НЕ git repo)
|
||
- **ExecStart**: `/usr/bin/node /root/.npm/_npx/<hash>/node_modules/omniroute/app/server.js` (hash меняется при обновлении)
|
||
- **Конфиг**: /root/OmniRoute/.env (секреты сгенерированы)
|
||
|
||
### Инцидент 2026-06-16: disk-full + Claude OAuth протух (всё на cc/* легло)
|
||
Симптом: агенты SwarmClaw (Бенелюкс и др.) + Антошка молчат, `cc/claude-opus-4-8` → 500/504. **Два корня:**
|
||
1. **Диск LXC 132 = 100%.** OmniRoute делает **бэкап БД ~300МБ на КАЖДУЮ запись** в `/root/.omniroute/db_backups/` → за время съел 50G → `SqliteError: database or disk is full` → 500. Лечение: чистка `db_backups` (оставить 2-3), старых `storage.sqlite.bak`/`call_logs`, `journalctl --vacuum`; диск расширен `pct resize 132 rootfs +50G` → **100G**. ⚠️ Backup-спам надо ограничить (cron-чистка `db_backups`), иначе 100G тоже забьётся. ⚠️ local-lvm thin pool физически на 90% — не расширять бесконечно.
|
||
2. **Claude Max OAuth протух** (`invalid_grant: Refresh token not found`, `claude | none active`). **Reconnect (процедура):**
|
||
- `curl -s -c /tmp/cj -X POST -d '{"password":"1qaz!QAZ"}' -H 'Content-Type: application/json' http://localhost:20128/api/auth/login`
|
||
- `curl -b /tmp/cj http://localhost:20128/api/oauth/claude/authorize` → отдаёт **authorize-URL** `https://claude.ai/oauth/authorize?...&code_challenge=...&state=...`
|
||
- Олег открывает URL → логин в **Max-аккаунт** → Authorize → Anthropic redirect на `platform.claude.com/oauth/code/callback?code=...&state=...` показывает код.
|
||
- Обмен кода завершается (UI/redirect) → `claude active`. Проверка: тест `cc/claude-opus-4-8` → 200.
|
||
|
||
### SSH доступ к LXC 132
|
||
- **Прямой 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'"` — РАБОТАЕТ
|
||
- **Hostname**: code-server
|
||
|
||
### Обновление OmniRoute (npx способ — используется сервисом)
|
||
1. Остановить: `pct exec 132 -- systemctl stop omniroute`
|
||
2. Удалить старый npx-кэш: `rm -rf /root/.npm/_npx/<old_hash>`
|
||
3. Установить: `npx omniroute@<version> --version` (создаст новый кэш)
|
||
4. Обновить путь в `/etc/systemd/system/omniroute.service` ExecStart на новый hash
|
||
5. `systemctl daemon-reload && systemctl start omniroute`
|
||
|
||
### Обновление git-репозитория (отдельно, для разработки)
|
||
1. `cd /root/OmniRoute && git pull origin main && npm install && npm run build`
|
||
|
||
### Подключённые провайдеры (2026-04-11)
|
||
| Провайдер | Аккаунт | Модели | Статус |
|
||
|-----------|---------|--------|--------|
|
||
| Codex (OpenAI) | batlaew@gmail.com (free plan) | gpt-5.4, gpt-5.4-mini | Работает, refresh проблема |
|
||
| Claude | OAuth | claude-opus-4-6, sonnet | Токен есть, refresh проблема |
|
||
| Kiro (AWS) | OAuth | claude-sonnet-4.5, haiku | Токен есть, refresh проблема |
|
||
|
||
### Использование
|
||
- Prefix модели: `cx/gpt-5.4` (Codex), `cc/claude-opus-4-6` (Claude)
|
||
- 181 модель доступна через API (на 2026-04-14)
|
||
- Codex OAuth: callback на localhost:1455 (нужен SSH-туннель для удалённого доступа)
|
||
- Token refresh: требует периодическую перелогинку OAuth
|
||
|
||
### Важно
|
||
- OAuth Codex привязан к localhost:1455 — для удалённого доступа: `ssh -L 20128:localhost:20128 -L 1455:localhost:1455 root@10.0.0.179`
|
||
- Встроенные агенты: Droid и Assistant (Dashboard → Agents)
|
||
- CLI tools конфиг: Dashboard → CLI Tools
|