From b179795cafb74302116e2794ec17097108b09355 Mon Sep 17 00:00:00 2001 From: host Date: Wed, 5 Aug 2026 19:17:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=88=D0=B0=D0=B3=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=20Proxmox=20MCP=20=D0=B4=D0=BB=D1=8F=20Dockge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proxmox-mcp-open-webui-setup.md | 57 ++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/proxmox-mcp-open-webui-setup.md b/proxmox-mcp-open-webui-setup.md index 56ac48e..a50ee89 100644 --- a/proxmox-mcp-open-webui-setup.md +++ b/proxmox-mcp-open-webui-setup.md @@ -12,7 +12,7 @@ TrueNAS отдельно — это **не Proxmox**, и ProxmoxMCP-Plus с ним не работает. Управлять TrueNAS через тот же чат — отдельная задача (нужен другой MCP-сервер, для TrueNAS API). Ниже — только про Proxmox-узлы, но покажу, где ты потом можешь добавить TrueNAS-инструмент рядом. -Разворачивать контейнеры удобнее всего **на TrueNAS** — там уже крутится Open WebUI, сервер работает постоянно, и можно поднимать Docker-контейнеры через встроенный интерфейс Apps. +Разворачивать контейнеры удобнее всего **на TrueNAS** — там уже крутится Open WebUI, сервер работает постоянно, и можно поднимать Docker-контейнеры через Dockge. --- @@ -67,14 +67,21 @@ EOF --- -## Шаг 3. Запустить три контейнера (по одному на узел) +## Шаг 3. Запустить три контейнера через Dockge -Проще всего — через **docker-compose** прямо в шелле TrueNAS (TrueNAS 25.10 поддерживает Docker нативно). +Вместо запуска через Shell создай один Stack (стек) в веб-интерфейсе **Dockge**. Все три контейнера будут управляться из одного стека. -Создай файл `docker-compose.yml`: +1. Открой Dockge в браузере. +2. Нажми **Create Stack** (или **+**). +3. Введи имя стека, например `proxmox-mcp`. +4. В качестве рабочей директории стека укажи: -```bash -cat > /mnt/ssd/apps/mcp/docker-compose.yml << 'EOF' + `/mnt/ssd/apps/mcp` + + Если Dockge уже использует собственную корневую директорию для стеков, выбери или создай каталог, соответствующий этому пути. Важно, чтобы каталоги `pve`, `kybinka` и `pve1` с файлами `config.json` находились внутри рабочей директории стека. +5. В редакторе compose-файла вставь следующий конфиг: + +```yaml services: proxmox-mcp-pve: image: ghcr.io/rekklesna/proxmoxmcp-plus:latest @@ -83,7 +90,7 @@ services: ports: - "8811:8811" environment: - - PROXMOX_API_KEY=ключ-для-pve-придумай-любой-длинный + PROXMOX_API_KEY: ключ-для-pve-придумай-любой-длинный volumes: - /mnt/ssd/apps/mcp/pve/config.json:/app/proxmox-config/config.json:ro @@ -94,7 +101,7 @@ services: ports: - "8812:8811" environment: - - PROXMOX_API_KEY=ключ-для-kybinka-придумай-любой-длинный + PROXMOX_API_KEY: ключ-для-kybinka-придумай-любой-длинный volumes: - /mnt/ssd/apps/mcp/kybinka/config.json:/app/proxmox-config/config.json:ro @@ -105,39 +112,45 @@ services: ports: - "8813:8811" environment: - - PROXMOX_API_KEY=ключ-для-pve1-придумай-любой-длинный + PROXMOX_API_KEY: ключ-для-pve1-придумай-любой-длинный volumes: - /mnt/ssd/apps/mcp/pve1/config.json:/app/proxmox-config/config.json:ro -EOF ``` -Замени `ключ-для-*` на свои сгенерированные ключи, например так: +6. Замени значения `ключ-для-*` на собственные длинные ключи. Ключи можно сгенерировать заранее командой: ```bash openssl rand -hex 32 ``` -Выполни для каждого сервиса свой ключ, вставь в файл. Запусти всё: +Команду можно выполнить на любом компьютере, где установлен OpenSSL. Для каждого контейнера используй отдельный ключ. +7. Нажми **Save**. +8. Нажми **Deploy** / **Up** / **Start** — название кнопки зависит от версии Dockge. -```bash -cd /mnt/ssd/apps/mcp -docker compose up -d -``` +После запуска в Dockge должны появиться три контейнера: + +- `proxmox-mcp-pve` — порт `8811`; +- `proxmox-mcp-kybinka` — порт `8812`; +- `proxmox-mcp-pve1` — порт `8813`. + +> Если Dockge не может найти `config.json`, проверь, что рабочая директория стека действительно `/mnt/ssd/apps/mcp`, а файлы находятся по адресам `/mnt/ssd/apps/mcp/pve/config.json`, `/mnt/ssd/apps/mcp/kybinka/config.json` и `/mnt/ssd/apps/mcp/pve1/config.json`. --- ## Шаг 4. Проверить, что контейнеры работают +Проверку можно выполнить через встроенный Terminal/Shell TrueNAS или другим компьютером в сети: + ```bash -curl -f http://localhost:8811/livez # pve -curl -f http://localhost:8812/livez # kybinka -curl -f http://localhost:8813/livez # pve1 +curl -f http://192.168.31.100:8811/livez # pve +curl -f http://192.168.31.100:8812/livez # kybinka +curl -f http://192.168.31.100:8813/livez # pve1 ``` Каждый должен ответить `200 OK`. Дальше проверь авторизованный доступ (подставь свой ключ и порт): ```bash -curl -H "Authorization: Bearer ключ-для-pve" http://localhost:8811/health +curl -H "Authorization: Bearer ключ-для-pve" http://192.168.31.100:8811/health ``` Если видишь `{"status":"ok"}` (или похожее) — контейнер видит Proxmox API. @@ -173,8 +186,8 @@ curl -H "Authorization: Bearer ключ-для-pve" http://localhost:8811/health | Симптом | Причина | | --- | --- | | Инструмент не появляется в Open WebUI | Проверь, что URL заканчивается на `/openapi.json`, а не просто на `/docs` | -| 401 Unauthorized | Ключ Bearer в Open WebUI не совпадает с `PROXMOX_API_KEY` в docker-compose | -| Контейнер падает при старте | Опечатка в `config.json` (проверь `docker compose logs proxmox-mcp-pve`) | +| 401 Unauthorized | Ключ Bearer в Open WebUI не совпадает с `PROXMOX_API_KEY` в compose-файле Dockge | +| Контейнер падает при старте | Опечатка в `config.json` (проверь логи контейнера в Dockge) | | Модель "не видит" VM | Токен Proxmox создан с "Privilege Separation" — права токена ограничены, пересоздай без этой галки или явно выдай права в Datacenter → Permissions | ## Что дальше