vm:n8n_mcp:01-install_http_multi-user

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
vm:n8n_mcp:01-install_http_multi-user [2025/08/13 14:21] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1vm:n8n_mcp:01-install_http_multi-user [2025/08/14 11:08] (текущий) admin
Строка 1: Строка 1:
 +====== n8n MCP Multi-Instance - Руководство пользователя ======
  
 +=====Источники=====
 +https://github.com/czlonkowski/n8n-mcp\\
 +https://www.n8n-mcp.com/
 +
 +=====Установка в один клик=====
 +** Важно!**\\
 +Если хотите что бы все папки и файлы создались от текущего пользователя что бы был доступ для редактирования запускать не от SUDO\\
 +Тогда скрипт выяснит текущего пользователя и установит все от системного пользователя.
 +<code>
 +cd ~
 +wget "https://dokuwiki.nanokey.tech/_media/vm:n8n_mcp:n8n_mcp_multi_installer.tar" -O n8n_mcp_multi_installer.tar
 +tar -xvf n8n_mcp_multi_installer.tar
 +chmod +x n8n_mcp_multi_installer.sh
 +./n8n_mcp_multi_installer.sh
 +</code>
 +
 +** Важно!**\\
 +После установки первичной нужно выйти из текущей сессии и зайти что бы применились все новые права для работы с меню.
 +
 +====== N8N MCP Multi-Instance Docker Installer v3.0 ======
 +
 +===== Описание =====
 +
 +**N8N MCP Multi-Instance Docker Installer** - это автоматизированный скрипт для развертывания множественных изолированных инстансов n8n-mcp в Docker контейнерах с умным управлением портами и централизованной системой управления.
 +
 +<WRAP center round info 60%>
 +**Версия:** 3.0\\
 +**Совместимость:** Ubuntu 18.04+, Debian 10+\\
 +**Требования:** sudo права, интернет соединение\\
 +**Автор:** Система автоматической установки n8n-mcp
 +</WRAP>
 +
 +===== Основные возможности =====
 +
 +  * 🚀 **Автоматическая установка** Docker и Docker Compose
 +  * 🎯 **Умное управление портами** с автоматическим поиском свободных портов
 +  * 📦 **Множественные инстансы** с изоляцией и независимой конфигурацией
 +  * 🎛️ **Консоль управления** с 16 функциями администрирования
 +  * 👥 **Управление клиентами** с генерацией конфигов подключения
 +  * 🔒 **Безопасность** с автоматической генерацией токенов авторизации
 +  * 📊 **Мониторинг** статуса всех инстансов и портов
 +
 +===== Быстрый старт =====
 +
 +==== 1. Загрузка и запуск ====
 +
 +<code bash>
 +# Скачайте скрипт
 +wget https://your-domain.com/install-n8n-mcp-v3.sh
 +
 +# Или создайте файл вручную
 +nano install-n8n-mcp-v3.sh
 +# Вставьте код скрипта
 +
 +# Сделайте исполняемым
 +chmod +x install-n8n-mcp-v3.sh
 +
 +# Запустите установку
 +./install-n8n-mcp-v3.sh
 +</code>
 +
 +==== 2. Применение прав Docker ====
 +
 +После установки выполните одну из команд для применения прав Docker:
 +
 +<code bash>
 +# Вариант 1: Применить в текущей сессии
 +newgrp docker
 +
 +# Вариант 2: Перелогиниться
 +exit
 +ssh user@server
 +</code>
 +
 +==== 3. Запуск базового инстанса ====
 +
 +<code bash>
 +# Быстрый запуск основного инстанса
 +/opt/n8nmcp/start-main.sh
 +
 +# Или через консоль управления
 +/opt/n8nmcp/multi-manage.sh
 +</code>
 +
 +===== Структура установки =====
 +
 +После установки создается следующая структура:
 +
 +<code>
 +/opt/n8nmcp/
 +├── instances/           # Директория инстансов
 +│   └── main/           # Базовый инстанс
 +│       ├── docker-compose.yml
 +│       ├── .env        # Конфигурация
 +│       ├── instance.json # Метаданные
 +│       ├── data/       # Данные инстанса
 +│       ├── logs/       # Логи
 +│       └── config/     # Конфигурации
 +├── clients/            # Клиентские конфиги
 +├── logs/              # Общие логи
 +├── config/            # Общие конфигурации
 +├── shared/            # Общие ресурсы
 +├── multi-manage.sh    # Консоль управления
 +├── start-main.sh      # Быстрый запуск
 +├── instances.registry # Реестр инстансов
 +└── clients.registry   # Реестр клиентов
 +</code>
 +
 +===== Консоль управления =====
 +
 +Запустите консоль управления: ''%%/opt/n8nmcp/multi-manage.sh%%''
 +
 +==== Категории функций ====
 +
 +=== 📦 ИНСТАНСЫ ===
 +
 +^ Опция ^ Функция ^ Описание ^
 +| **1** | 🆕 Создать новый инстанс | Создание нового изолированного инстанса |
 +| **2** | 📋 Список инстансов | Отображение всех инстансов с статусом |
 +| **3** | ⚙️ Управление инстансом | Запуск/остановка/удаление инстанса |
 +| **4** | 🔄 Запустить все инстансы | Массовый запуск всех инстансов |
 +| **5** | ⏹️ Остановить все инстансы | Массовая остановка всех инстансов |
 +
 +=== 👥 КЛИЕНТЫ ===
 +
 +^ Опция ^ Функция ^ Описание ^
 +| **6** | 🆕 Создать клиентский конфиг | Генерация конфига для подключения |
 +| **7** | 📋 Список клиентов | Отображение всех клиентских конфигов |
 +| **8** | 🔌 Тестировать подключение | Проверка соединения с инстансом |
 +| **9** | 🗑️ Удалить клиента | Удаление клиентского конфига |
 +
 +=== 🌐 ПОРТЫ ===
 +
 +^ Опция ^ Функция ^ Описание ^
 +| **10** | 📊 Показать использование портов | Карта занятых/свободных портов |
 +| **11** | 🔍 Найти свободный порт | Поиск доступного порта в диапазоне |
 +
 +=== 🔧 СИСТЕМА ===
 +
 +^ Опция ^ Функция ^ Описание ^
 +| **12** | 📊 Общий статус системы | Информация о Docker, инстансах, ресурсах |
 +| **13** | 📡 Показать все подключения | URL и токены всех инстансов |
 +| **14** | 🧹 Очистка неиспользуемых ресурсов | Docker system prune |
 +| **15** | 🔄 Обновить все образы | Обновление n8n-mcp образов |
 +| **16** | 🔧 Исправить права доступа | Восстановление прав на файлы |
 +
 +===== Создание инстанса =====
 +
 +==== Автоматический режим ====
 +
 +<code bash>
 +# Через консоль управления
 +/opt/n8nmcp/multi-manage.sh
 +# Выберите опцию 1
 +
 +# Введите имя инстанса (например: production)
 +# Система автоматически найдет свободный порт
 +</code>
 +
 +==== Интерактивный выбор порта ====
 +
 +При создании инстанса доступны 3 опции:
 +
 +  - **1)** Использовать предлагаемый порт (автоматический)
 +  - **2)** Ввести другой порт вручную
 +  - **3)** Показать занятые порты и выбрать
 +
 +<WRAP center round tip 60%>
 +**Совет:** Используйте опцию 3 для просмотра карты портов перед выбором
 +</WRAP>
 +
 +==== Конфигурация .env файла ====
 +
 +После создания инстанса отредактируйте файл конфигурации:
 +
 +<code bash>
 +nano /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА/.env
 +</code>
 +
 +Раскомментируйте и настройте N8N API:
 +
 +<code bash>
 +# n8n MCP Instance Configuration - production
 +AUTH_TOKEN=сгенерированный_токен
 +USE_FIXED_HTTP=true
 +MCP_MODE=http
 +TZ=Europe/Moscow
 +INSTANCE_NAME=production
 +INSTANCE_PORT=3001
 +
 +# Добавьте здесь ваши n8n API настройки:
 +N8N_API_URL=https://your-n8n-instance.com
 +N8N_API_KEY=your-n8n-api-key
 +</code>
 +
 +===== Управление инстансами =====
 +
 +==== Основные команды ====
 +
 +<code bash>
 +# Запуск инстанса
 +cd /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА
 +docker-compose up -d
 +
 +# Остановка инстанса
 +docker-compose down
 +
 +# Перезапуск инстанса
 +docker-compose restart
 +
 +# Просмотр логов
 +docker-compose logs -f
 +
 +# Статус инстанса
 +docker-compose ps
 +</code>
 +
 +==== Через консоль управления ====
 +
 +<code bash>
 +/opt/n8nmcp/multi-manage.sh
 +# Выберите опцию 3 "Управление инстансом"
 +# Выберите нужный инстанс и действие
 +</code>
 +
 +===== Работа с клиентами =====
 +
 +==== Создание клиентского конфига ====
 +
 +<code bash>
 +# Через консоль управления
 +/opt/n8nmcp/multi-manage.sh
 +# Выберите опцию 6 "Создать клиентский конфиг"
 +
 +# Введите имя клиента: my-client
 +# Выберите инстанс для подключения: production
 +</code>
 +
 +==== Использование конфига ====
 +
 +<code bash>
 +# Скрипт подключения
 +/opt/n8nmcp/clients/my-client/connect.sh
 +
 +# Конфигурационный файл
 +cat /opt/n8nmcp/clients/my-client/config.json
 +</code>
 +
 +Пример конфига клиента:
 +
 +<code json>
 +{
 +  "client_name": "my-client",
 +  "instance_name": "production",
 +  "url": "http://192.168.1.100:3001",
 +  "auth_token": "abc123...",
 +  "port": 3001
 +}
 +</code>
 +
 +===== Мониторинг и диагностика =====
 +
 +==== Проверка статуса системы ====
 +
 +<code bash>
 +# Через консоль управления
 +/opt/n8nmcp/multi-manage.sh
 +# Опция 12: Общий статус системы
 +
 +# Или командная строка
 +docker ps --filter 'name=n8n-mcp'
 +</code>
 +
 +==== Просмотр использования портов ====
 +
 +<code bash>
 +# Через консоль управления
 +/opt/n8nmcp/multi-manage.sh
 +# Опция 10: Показать использование портов
 +
 +# Или вручную
 +netstat -tuln | grep :3000
 +ss -tuln | grep :3000
 +</code>
 +
 +==== Диагностика проблем ====
 +
 +<code bash>
 +# Проверка логов инстанса
 +cd /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА
 +docker-compose logs -f
 +
 +# Проверка статуса контейнера
 +docker ps -a --filter 'name=n8n-mcp-ИМЯ_ИНСТАНСА'
 +
 +# Проверка прав Docker
 +docker ps
 +# Если ошибка, выполните: newgrp docker
 +
 +# Проверка здоровья инстанса
 +curl -s http://localhost:ПОРТ/health
 +</code>
 +
 +===== Настройка systemd ===== 
 +
 +Скрипт автоматически создает systemd service для базового инстанса:
 +
 +<code bash>
 +# Управление службой
 +sudo systemctl start n8n-mcp
 +sudo systemctl stop n8n-mcp
 +sudo systemctl restart n8n-mcp
 +sudo systemctl status n8n-mcp
 +
 +# Автозапуск при загрузке
 +sudo systemctl enable n8n-mcp
 +sudo systemctl disable n8n-mcp
 +</code>
 +
 +===== Обновление системы =====
 +
 +==== Обновление образов ====
 +
 +<code bash>
 +# Через консоль управления
 +/opt/n8nmcp/multi-manage.sh
 +# Опция 15: Обновить все образы
 +
 +# Или вручную
 +docker pull ghcr.io/czlonkowski/n8n-mcp:latest
 +
 +# Перезапуск инстансов для применения обновлений
 +/opt/n8nmcp/multi-manage.sh
 +# Опция 4: Запустить все инстансы
 +</code>
 +
 +==== Очистка ресурсов ====
 +
 +<code bash>
 +# Через консоль управления
 +/opt/n8nmcp/multi-manage.sh
 +# Опция 14: Очистка неиспользуемых ресурсов
 +
 +# Или вручную
 +docker system prune -f
 +docker volume prune -f
 +docker network prune -f
 +</code>
 +
 +===== Резервное копирование =====
 +
 +==== Важные данные для бэкапа ====
 +
 +<code bash>
 +# Конфигурации инстансов
 +tar -czf n8nmcp-configs-$(date +%Y%m%d).tar.gz /opt/n8nmcp/instances/*/
 +
 +# Данные инстансов
 +tar -czf n8nmcp-data-$(date +%Y%m%d).tar.gz /opt/n8nmcp/instances/*/data/
 +
 +# Клиентские конфиги
 +tar -czf n8nmcp-clients-$(date +%Y%m%d).tar.gz /opt/n8nmcp/clients/
 +
 +# Полный бэкап
 +tar -czf n8nmcp-full-backup-$(date +%Y%m%d).tar.gz /opt/n8nmcp/
 +</code>
 +
 +==== Восстановление ====
 +
 +<code bash>
 +# Остановка всех инстансов
 +/opt/n8nmcp/multi-manage.sh # Опция 5
 +
 +# Восстановление из бэкапа
 +sudo tar -xzf n8nmcp-full-backup-YYYYMMDD.tar.gz -C /
 +
 +# Восстановление прав
 +sudo chown -R $(whoami):$(id -gn) /opt/n8nmcp/
 +chmod -R 755 /opt/n8nmcp/
 +find /opt/n8nmcp/ -name "*.env" -exec chmod 600 {} \;
 +
 +# Запуск инстансов
 +/opt/n8nmcp/multi-manage.sh # Опция 4
 +</code>
 +
 +===== Устранение неполадок =====
 +
 +==== Частые проблемы ====
 +
 +=== Ошибка: "AUTH_TOKEN is required" ===
 +
 +<WRAP center round important 80%>
 +**Проблема:** Контейнер не может найти токен авторизации\\
 +**Решение:** Проверьте файл .env в директории инстанса
 +</WRAP>
 +
 +<code bash>
 +# Проверьте наличие токена
 +grep AUTH_TOKEN /opt/n8nmcp/instances/main/.env
 +
 +# Если токена нет, добавьте:
 +echo "AUTH_TOKEN=$(openssl rand -base64 32)" >> /opt/n8nmcp/instances/main/.env
 +
 +# Перезапустите инстанс
 +cd /opt/n8nmcp/instances/main
 +docker-compose restart
 +</code>
 +
 +=== Ошибка: "permission denied" при запуске Docker ===
 +
 +<WRAP center round important 80%>
 +**Проблема:** Пользователь не в группе docker\\
 +**Решение:** Применить права Docker группы
 +</WRAP>
 +
 +<code bash>
 +# Проверьте группы пользователя
 +groups $(whoami)
 +
 +# Если нет группы docker:
 +sudo usermod -aG docker $(whoami)
 +newgrp docker
 +
 +# Или перелогиньтесь
 +exit && ssh user@server
 +</code>
 +
 +=== Порт уже занят ===
 +
 +<WRAP center round important 80%>
 +**Проблема:** Выбранный порт уже используется\\
 +**Решение:** Используйте автоматический поиск портов
 +</WRAP>
 +
 +<code bash>
 +# Через консоль управления
 +/opt/n8nmcp/multi-manage.sh
 +# Опция 10: Показать использование портов
 +# Опция 11: Найти свободный порт
 +
 +# Или вручную
 +netstat -tuln | grep :3000
 +ss -tuln | grep :3000
 +</code>
 +
 +=== Инстанс не запускается ===
 +
 +<code bash>
 +# Проверьте логи
 +cd /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА
 +docker-compose logs
 +
 +# Проверьте статус контейнера
 +docker ps -a
 +
 +# Проверьте права на файлы
 +ls -la /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА/
 +
 +# Исправьте права
 +sudo chown -R $(whoami):$(id -gn) /opt/n8nmcp/
 +</code>
 +
 +===== Безопасность =====
 +
 +==== Рекомендации по безопасности ====
 +
 +  * 🔒 **Токены авторизации** генерируются автоматически и уникальны для каждого инстанса
 +  * 🛡️ **Файлы .env** имеют права доступа 600 (только владелец)
 +  * 🌐 **Сетевая изоляция** - каждый инстанс в собственной Docker сети
 +  * 👤 **Пользовательские права** - контейнеры запускаются от имени текущего пользователя
 +
 +==== Настройка файрвола ====
 +
 +<code bash>
 +# Открытие портов для инстансов (пример для ufw)
 +sudo ufw allow 3000/tcp comment "n8n-mcp main instance"
 +sudo ufw allow 3001/tcp comment "n8n-mcp production instance"
 +
 +# Ограничение доступа по IP
 +sudo ufw allow from 192.168.1.0/24 to any port 3000
 +</code>
 +
 +==== Смена токенов ====
 +
 +<code bash>
 +# Генерация нового токена
 +NEW_TOKEN=$(openssl rand -base64 32)
 +
 +# Обновление в .env файле
 +sed -i "s/AUTH_TOKEN=.*/AUTH_TOKEN=$NEW_TOKEN/" /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА/.env
 +
 +# Обновление в метаданных
 +sed -i "s/\"auth_token\": \".*\"/\"auth_token\": \"$NEW_TOKEN\"/" /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА/instance.json
 +
 +# Перезапуск инстанса
 +cd /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА
 +docker-compose restart
 +</code>
 +
 +===== API и интеграция =====
 +
 +==== Подключение к инстансу ====
 +
 +<code bash>
 +# Базовое подключение
 +curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:3000/health
 +
 +# Проверка здоровья инстанса
 +curl -s http://localhost:3000/health | jq .
 +
 +# MCP подключение
 +curl -H "Authorization: Bearer YOUR_TOKEN" \
 +     -H "Content-Type: application/json" \
 +     -d '{"method": "ping"}' \
 +     http://localhost:3000/mcp
 +</code>
 +
 +==== Конфигурация N8N ====
 +
 +В настройках N8N добавьте MCP сервер:
 +
 +<code json>
 +{
 +  "name": "n8n-mcp-instance",
 +  "url": "http://localhost:3000",
 +  "auth": {
 +    "type": "bearer",
 +    "token": "YOUR_AUTH_TOKEN"
 +  }
 +}
 +</code>
 +
 +===== Полезные команды =====
 +
 +<code bash>
 +# Просмотр всех инстансов
 +docker ps --filter 'name=n8n-mcp' --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'
 +
 +# Просмотр использования ресурсов
 +docker stats --filter 'name=n8n-mcp'
 +
 +# Просмотр логов всех инстансов
 +for instance in /opt/n8nmcp/instances/*/; do
 +  echo "=== $(basename $instance) ==="
 +  cd "$instance" && docker-compose logs --tail=10
 +done
 +
 +# Массовое обновление конфигураций
 +find /opt/n8nmcp/instances -name ".env" -exec sed -i 's/TZ=.*/TZ=Europe\/Moscow/' {} \;
 +
 +# Поиск инстанса по порту
 +grep -r "INSTANCE_PORT=3001" /opt/n8nmcp/instances/*/
 +</code>
 +
 +===== Контакты и поддержка =====
 +
 +<WRAP center round info 60%>
 +**Документация:** [[https://docs.n8n-mcp.com|docs.n8n-mcp.com]]\\
 +**GitHub:** [[https://github.com/czlonkowski/n8n-mcp|n8n-mcp repository]]\\
 +**Issues:** [[https://github.com/czlonkowski/n8n-mcp/issues|GitHub Issues]]
 +</WRAP>
 +
 +==== Полезные ссылки ====
 +
 +  * [[https://docs.docker.com/|Docker Documentation]]
 +  * [[https://docs.docker.com/compose/|Docker Compose Documentation]]
 +  * [[https://n8n.io/docs/|N8N Documentation]]
 +  * [[https://ubuntu.com/server/docs|Ubuntu Server Guide]]
 +
 +----
 +
 +<WRAP center round tip 60%>
 +**Последнее обновление:** {{page>:wiki:footer_date&nofooter&noeditbtn}}\\
 +**Версия документации:** 3.0\\
 +**Совместимость:** N8N MCP Multi-Instance Installer v3.0+
 +</WRAP>