diff --git a/decisions/2026-06-22-open-webui-deploy.md b/decisions/2026-06-22-open-webui-deploy.md index 5e298a0..e505223 100644 --- a/decisions/2026-06-22-open-webui-deploy.md +++ b/decisions/2026-06-22-open-webui-deploy.md @@ -30,6 +30,14 @@ tags: [homelab, proxmox, open-webui, omniroute, npm, ai] 3. **Первый старт Open WebUI**: тянет embedding-модель с HuggingFace (~1 ГБ, 30 файлов) — из РФ медленно, стартап висит на «Fetching 30 files» пару минут. Это нормально; DNS 1.1.1.1 помогает. RAG-эмбеддинги можно позже переключить на OmniRoute. 4. **Open WebUI signup**: первый зарегистрированный = admin. Открытую регистрацию выключать в Admin Panel → Settings (env `ENABLE_SIGNUP` не действует — persistent config хранится в БД и перебивает env). 5. **Max-кап**: `cc/claude-opus-4-8` делит 5-часовой кап Max с german/openclaw/swarmclaw/code-server → при нагрузке 400 «out of extra usage» (транзиентно). Для тяжёлых сессий fallback `kr/claude-sonnet-4.5` (free). +6. **Ключ OmniRoute = пустой, НЕ dummy** (важно!). Open WebUI сначала показывал **0 моделей**. Причина: домашний OmniRoute с **непустым неизвестным** ключом (`sk-omniroute`) отдаёт `{"data":[]}` (скоупит по ключу→0 провайдеров), а с **отсутствующим/пустым** auth — полный каталог (LAN-доверие). Open WebUI всегда шлёт `Authorization: Bearer `. Фикс: ключ коннекта = **пустая строка** (`OPENAI_API_KEYS:[""]`). German/openclaw ходят так же (без auth); найденный в их конфигах `ork_VQo75…` — это inbound-ключ openclaw, к OmniRoute-авторизации отношения не имеет (тоже даёт 0). + +## Настройка Open WebUI (через API, токен = signin админом) +- **Коннект**: `POST /openai/config/update` `{ENABLE_OPENAI_API:true, OPENAI_API_BASE_URLS:["http://10.0.0.179:20128/v1"], OPENAI_API_KEYS:[""], OPENAI_API_CONFIGS:{}}`. NB: `POST /openai/config` (без `/update`) уходит в passthrough-роут → ошибка «Direct API passthrough is disabled». +- **Дефолтная модель**: `POST /api/v1/configs/models` `{"DEFAULT_MODELS":"cc/claude-opus-4-8", ...}`. Персистится в БД, переживает рестарт. Публичный `/api/config` поле `default_models` НЕ отдаёт в v0.9.6 — это норма, не индикатор. +- **Регистрация**: `ENABLE_SIGNUP=false` по умолчанию (проверять `GET /api/v1/auths/admin/config`). +- Проверка end-to-end: `POST /api/chat/completions {model:"cc/claude-opus-4-8", messages:[...], stream:false}` → ответ от Opus 4.8. +- `openapi.json` отключён (0 байт) — интроспекции нет, эндпоинты выше зафиксированы вручную. ## Команды ```bash diff --git a/projects/dttb/proxmox-inventory.md b/projects/dttb/proxmox-inventory.md index 9ad6bf6..f598a92 100644 --- a/projects/dttb/proxmox-inventory.md +++ b/projects/dttb/proxmox-inventory.md @@ -240,7 +240,7 @@ tags: [dttb, proxmox] | ОС/рантайм | Debian 12, unprivileged + nesting/keyctl, Docker 20.10; контейнер `ghcr.io/open-webui/open-webui:main` v0.9.6 (`-p 3000:8080`, volume `open-webui`, restart=always, onboot=1) | | Ресурсы | 2 vCPU / 2 GB / 12 GB (rootfs на `work`, НЕ local-lvm — тот забит на 93%) | | Веб | **https://chat.dttb.ru** (NPM proxy host id39, LE cert id129 до 2026-09-20, Force SSL + WebSockets) — публично + LAN/NetBird | -| Бэкенд | OmniRoute `http://10.0.0.179:20128/v1` (OpenAI-совместимый; LAN-доступ без авторизации → dummy-ключ `sk-omniroute`) → все 145 моделей; рабочий Opus = `cc/claude-opus-4-8` (делит Max-кап с german/openclaw/swarmclaw/code-server, бывает 400 «out of extra usage») | +| Бэкенд | OmniRoute `http://10.0.0.179:20128/v1` (OpenAI-совместимый; ключ коннекта = **пустая строка**, НЕ dummy — с непустым неизвестным ключом OmniRoute отдаёт 0 моделей) → 242 модели; дефолт `cc/claude-opus-4-8` (делит Max-кап с german/openclaw/swarmclaw/code-server, бывает 400 «out of extra usage», fallback `kr/claude-sonnet-4.5`) | | Авторизация | встроенная Open WebUI (1 admin = Олег). Открытую регистрацию выключать в Admin Panel → Settings (env `ENABLE_SIGNUP` не рулит — persistent config в БД) | | Назначение | Личный веб-клиент «как ChatGPT» поверх OmniRoute. Грабли: первый старт тянет embedding-модель с HuggingFace (~1 ГБ, медленно из РФ → DNS контейнера = 1.1.1.1 против FakeIP роутера). См. [[../../decisions/2026-06-22-open-webui-deploy]] |