diff --git a/proxmox-mcp-open-webui-setup.md b/proxmox-mcp-open-webui-setup.md index d3c9877..55484a5 100644 --- a/proxmox-mcp-open-webui-setup.md +++ b/proxmox-mcp-open-webui-setup.md @@ -15,9 +15,8 @@ На каждом Proxmox-сервере отдельно открой **Datacenter → Permissions → API Tokens** и создай токен. - User: `root@pam`; -- Token ID: например `openwebui-token`; -- сохрани Secret, который показывается только один раз; -- Token ID должен точно совпадать со значением `auth.token_name` в конфигурации. +- Token ID должен точно совпадать со значением `auth.token_name`; +- сохрани Secret, который показывается только один раз. Повтори операцию для `kybinka` и `pve1`. @@ -25,14 +24,6 @@ ## Шаг 2. Подготовить конфиги на TrueNAS -Файлы должны находиться здесь: - -```text -/mnt/ssd/apps/mcp/pve/config.json -/mnt/ssd/apps/mcp/kybinka/config.json -/mnt/ssd/apps/mcp/pve1/config.json -``` - Создай каталоги: ```bash @@ -43,7 +34,8 @@ mkdir -p /mnt/ssd/apps/mcp/{pve,kybinka,pve1} ### Конфигурация `pve` -```json +```bash +cat > /mnt/ssd/apps/mcp/pve/config.json << 'EOF' { "proxmox": { "host": "192.168.31.2", @@ -62,13 +54,13 @@ mkdir -p /mnt/ssd/apps/mcp/{pve,kybinka,pve1} "dev_mode": true } } +EOF ``` -Сохрани этот JSON в `/mnt/ssd/apps/mcp/pve/config.json`. - ### Конфигурация `kybinka` -```json +```bash +cat > /mnt/ssd/apps/mcp/kybinka/config.json << 'EOF' { "proxmox": { "host": "192.168.1.10", @@ -87,13 +79,13 @@ mkdir -p /mnt/ssd/apps/mcp/{pve,kybinka,pve1} "dev_mode": true } } +EOF ``` -Сохрани этот JSON в `/mnt/ssd/apps/mcp/kybinka/config.json`. - ### Конфигурация `pve1` -```json +```bash +cat > /mnt/ssd/apps/mcp/pve1/config.json << 'EOF' { "proxmox": { "host": "192.168.31.4", @@ -112,11 +104,10 @@ mkdir -p /mnt/ssd/apps/mcp/{pve,kybinka,pve1} "dev_mode": true } } +EOF ``` -Сохрани этот JSON в `/mnt/ssd/apps/mcp/pve1/config.json`. - -Проверь файлы: +Проверь корректность JSON-файлов: ```bash python3 -m json.tool /mnt/ssd/apps/mcp/pve/config.json @@ -124,25 +115,25 @@ python3 -m json.tool /mnt/ssd/apps/mcp/kybinka/config.json python3 -m json.tool /mnt/ssd/apps/mcp/pve1/config.json ``` -Ограничь доступ к файлам с токенами: +Ограничь права доступа к файлам с токенами: ```bash chmod 600 /mnt/ssd/apps/mcp/{pve,kybinka,pve1}/config.json ``` -`verify_ssl: false` используется для самоподписанных сертификатов Proxmox. В этом случае требуется `security.dev_mode: true`. Для production следует установить доверенный сертификат и использовать `verify_ssl: true`, `security.dev_mode: false`. +`verify_ssl: false` используется для самоподписанных сертификатов Proxmox. Для production следует установить доверенный сертификат и использовать `verify_ssl: true` вместе с `security.dev_mode: false`. --- ## Шаг 3. Запустить три контейнера через Dockge -В Dockge создай один Stack с именем `proxmox-mcp`, рабочая директория: +В Dockge создай один Stack с именем `proxmox-mcp` и рабочей директорией: ```text /mnt/ssd/apps/mcp ``` -Вставь в редактор Dockge **один** compose-файл: +Вставь в редактор Dockge один compose-файл: ```yaml services: @@ -180,9 +171,7 @@ services: - /mnt/ssd/apps/mcp/pve1/config.json:/app/proxmox-config/config.json:ro ``` -Не добавляй несколько блоков `services:` подряд. `networks: {}` не требуется — Compose создаст сеть автоматически. - -Замени `ЗАМЕНИТЬ_КЛЮЧ_*` на отдельные ключи для OpenAPI-доступа, нажми **Save**, затем **Down** и **Deploy/Up**. После изменения JSON-файлов контейнеры нужно перезапустить или пересоздать. +Не добавляй несколько блоков `services:` подряд. Нажми **Save**, затем **Down** и **Deploy/Up**. После изменения JSON-файлов контейнеры нужно перезапустить или пересоздать. --- @@ -217,13 +206,13 @@ curl -H "Authorization: Bearer ЗАМЕНИТЬ_КЛЮЧ_PVE" \ ## Диагностика -Если в логе появляется: +Если появляется ошибка: ```text Insecure TLS configuration blocked ``` -проверь, что внутри контейнера присутствует именно такая структура: +проверь, что внутри каждого файла присутствует: ```json "security": { @@ -231,7 +220,7 @@ Insecure TLS configuration blocked } ``` -Проверка маунта: +Проверка volume-маунта: ```bash docker inspect proxmox-mcp-pve \ @@ -252,4 +241,4 @@ docker exec proxmox-mcp-pve cat /app/proxmox-config/config.json `McpError: Connection closed` является вторичной ошибкой: MCP OpenAPI Proxy закрывается после ошибки валидации конфигурации. -> Никогда не публикуй в чат или репозиторий реальные значения `PROXMOX_API_KEY` и `auth.token_value`. Если ключи уже были опубликованы, их следует заменить. +> Не публикуй реальные значения `PROXMOX_API_KEY` и `auth.token_value` в чат или репозиторий. Если они были опубликованы, их следует заменить.