Исправил URL OpenAPI в Шаге 5 для Open WebUI

This commit is contained in:
2026-08-05 21:01:37 +03:00
parent e6e473191c
commit 39736b1559
+51 -38
View File
@@ -12,14 +12,12 @@
## Шаг 1. Создать API-токен на каждом Proxmox-узле ## Шаг 1. Создать API-токен на каждом Proxmox-узле
На каждом Proxmox-сервере отдельно открой **Datacenter → Permissions → API Tokens** и создай токен. На каждом Proxmox-сервере открой **Datacenter → Permissions → API Tokens** и создай токен.
- User: `root@pam`; - User: `root@pam`;
- Token ID должен точно совпадать со значением `auth.token_name` соответствующего `config.json`; - Token ID должен совпадать со значением `auth.token_name` соответствующего `config.json`;
- сохрани Secret, который показывается только один раз. - сохрани Secret, который показывается только один раз.
Повтори операцию для `kybinka` и `pve1`.
--- ---
## Шаг 2. Подготовить конфиги на TrueNAS ## Шаг 2. Подготовить конфиги на TrueNAS
@@ -30,7 +28,7 @@
mkdir -p /mnt/ssd/apps/mcp/{pve,kybinka,pve1} mkdir -p /mnt/ssd/apps/mcp/{pve,kybinka,pve1}
``` ```
Для самоподписанных сертификатов Proxmox используй `verify_ssl: false` и `security.dev_mode: true`. Для самоподписанных сертификатов Proxmox используются `verify_ssl: false` и `security.dev_mode: true`.
### Конфигурация `pve` ### Конфигурация `pve`
@@ -115,10 +113,10 @@ python3 -m json.tool /mnt/ssd/apps/mcp/kybinka/config.json
python3 -m json.tool /mnt/ssd/apps/mcp/pve1/config.json python3 -m json.tool /mnt/ssd/apps/mcp/pve1/config.json
``` ```
Важное различие: Важно:
- `auth.token_value` — Secret API-токена Proxmox, он хранится в `config.json`; - `auth.token_value` — Secret API-токена Proxmox из `config.json`;
- `PROXMOX_API_KEY` — отдельный ключ защиты OpenAPI-сервера, он задаётся в compose/Dockge и используется в Open WebUI как Bearer-токен. - `PROXMOX_API_KEY` — отдельный ключ OpenAPI из compose/Dockge, который используется в Open WebUI как Bearer-токен.
--- ---
@@ -168,13 +166,13 @@ services:
- /mnt/ssd/apps/mcp/pve1/config.json:/app/proxmox-config/config.json:ro - /mnt/ssd/apps/mcp/pve1/config.json:/app/proxmox-config/config.json:ro
``` ```
Для каждого сервиса используй отдельный ключ. Сгенерировать ключ можно командой: Для каждого сервиса используй отдельный ключ. Ключ можно сгенерировать командой:
```bash ```bash
openssl rand -hex 32 openssl rand -hex 32
``` ```
Замени значения `СГЕНЕРИРОВАТЬ_ОТДЕЛЬНЫЙ_КЛЮЧ_*` в Dockge, нажми **Save**, затем **Down** и **Deploy/Up**. В Dockge нажми **Save**, затем **Down** и **Deploy/Up**.
--- ---
@@ -186,86 +184,101 @@ curl -f http://192.168.31.100:8812/livez
curl -f http://192.168.31.100:8813/livez curl -f http://192.168.31.100:8813/livez
``` ```
Проверка OpenAPI для `pve` выполняется с ключом из переменной `PROXMOX_API_KEY` сервиса `proxmox-mcp-pve`: Проверка OpenAPI для `pve`:
```bash ```bash
curl -H "Authorization: Bearer КЛЮЧ_ИЗ_PROXMOX_API_KEY_PVE" \ curl -H "Authorization: Bearer КЛЮЧ_ИЗ_PROXMOX_API_KEY_PVE" \
http://192.168.31.100:8811/health http://192.168.31.100:8811/health
``` ```
Ожидаемый ответ:
```json
{"status":"ok"}
```
--- ---
## Шаг 5. Подключить к Open WebUI ## Шаг 5. Подключить к Open WebUI
В Open WebUI перейди по пути: В Open WebUI перейди:
```text ```text
Настройки → Интеграции → External Tool Servers → «+» Настройки → Интеграции → External Tool Servers → «+»
``` ```
Добавь сервер `pve`: > Важно: в основном поле **URL** указывается только базовый адрес сервера. Не добавляй к нему `/openapi.json`, потому что Open WebUI добавляет путь спецификации отдельно.
### Сервер `pve`
```text ```text
Название: Proxmox pve Название: Proxmox pve
URL: http://192.168.31.100:8811/openapi.json URL: http://192.168.31.100:8811
Авторизация: Bearer Авторизация: Bearer
Токен: значение PROXMOX_API_KEY из сервиса proxmox-mcp-pve в Dockge Токен: значение PROXMOX_API_KEY из сервиса proxmox-mcp-pve в Dockge
Спецификация OpenAPI: openapi.json
``` ```
Добавь сервер `kybinka`: Итоговый адрес спецификации должен быть:
```text
http://192.168.31.100:8811/openapi.json
```
### Сервер `kybinka`
```text ```text
Название: Proxmox kybinka Название: Proxmox kybinka
URL: http://192.168.31.100:8812/openapi.json URL: http://192.168.31.100:8812
Авторизация: Bearer Авторизация: Bearer
Токен: значение PROXMOX_API_KEY из сервиса proxmox-mcp-kybinka в Dockge Токен: значение PROXMOX_API_KEY из сервиса proxmox-mcp-kybinka в Dockge
Спецификация OpenAPI: openapi.json
``` ```
Добавь сервер `pve1`: Итоговый адрес:
```text
http://192.168.31.100:8812/openapi.json
```
### Сервер `pve1`
```text ```text
Название: Proxmox pve1 Название: Proxmox pve1
URL: http://192.168.31.100:8813/openapi.json URL: http://192.168.31.100:8813
Авторизация: Bearer Авторизация: Bearer
Токен: значение PROXMOX_API_KEY из сервиса proxmox-mcp-pve1 в Dockge Токен: значение PROXMOX_API_KEY из сервиса proxmox-mcp-pve1 в Dockge
Спецификация OpenAPI: openapi.json
``` ```
Не используй для авторизации значение `auth.token_value` из `config.json`. Это другой Secret — он нужен MCP-серверу для подключения к Proxmox, а не Open WebUI. Итоговый адрес:
После сохранения открой новый чат, нажми значок инструментов и включи нужный сервер, например `Proxmox pve`. ```text
http://192.168.31.100:8813/openapi.json
```
Не используй для авторизации значение `auth.token_value` из `config.json`. Это секрет подключения MCP-сервера к Proxmox, а не ключ OpenAPI.
После сохранения открой новый чат, нажми значок инструментов и включи нужный сервер.
--- ---
## Диагностика ## Диагностика
Если появляется ошибка: Если Open WebUI формирует адрес вида:
```text ```text
Invalid API key http://192.168.31.100:8811/openapi.json/openapi.json
``` ```
проверь, что Bearer-токен в Open WebUI полностью совпадает с `PROXMOX_API_KEY` соответствующего контейнера в Dockge. замени URL сервера на базовый:
Если появляется ошибка:
```text ```text
Insecure TLS configuration blocked http://192.168.31.100:8811
``` ```
проверь наличие блока: а в поле спецификации оставь только:
```json ```text
"security": { openapi.json
"dev_mode": true
}
``` ```
Если появляется `McpError: Connection closed`, сначала ищи выше в логе первичную ошибку конфигурации. Если появляется `Invalid API key`, Bearer-токен Open WebUI не совпадает с `PROXMOX_API_KEY` соответствующего контейнера Dockge.
Если появляется `McpError: Connection closed`, сначала ищи выше в логе первичную ошибку.
> Не публикуй реальные значения `PROXMOX_API_KEY` и `auth.token_value` в чат или репозиторий. Если они были опубликованы, их следует заменить. > Не публикуй реальные значения `PROXMOX_API_KEY` и `auth.token_value` в чат или репозиторий. Если они были опубликованы, их следует заменить.