Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| vm:n8n_mcp:01-install_http_multi-user [2025/08/13 14:21] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | vm:n8n_mcp:01-install_http_multi-user [2025/08/14 11:08] (текущий) – admin | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== n8n MCP Multi-Instance - Руководство пользователя ====== | ||
| + | =====Источники===== | ||
| + | https:// | ||
| + | https:// | ||
| + | |||
| + | =====Установка в один клик===== | ||
| + | ** Важно!**\\ | ||
| + | Если хотите что бы все папки и файлы создались от текущего пользователя что бы был доступ для редактирования запускать не от SUDO\\ | ||
| + | Тогда скрипт выяснит текущего пользователя и установит все от системного пользователя. | ||
| + | < | ||
| + | cd ~ | ||
| + | wget " | ||
| + | tar -xvf n8n_mcp_multi_installer.tar | ||
| + | chmod +x n8n_mcp_multi_installer.sh | ||
| + | ./ | ||
| + | </ | ||
| + | |||
| + | ** Важно!**\\ | ||
| + | После установки первичной нужно выйти из текущей сессии и зайти что бы применились все новые права для работы с меню. | ||
| + | |||
| + | ====== N8N MCP Multi-Instance Docker Installer v3.0 ====== | ||
| + | |||
| + | ===== Описание ===== | ||
| + | |||
| + | **N8N MCP Multi-Instance Docker Installer** - это автоматизированный скрипт для развертывания множественных изолированных инстансов n8n-mcp в Docker контейнерах с умным управлением портами и централизованной системой управления. | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | **Версия: | ||
| + | **Совместимость: | ||
| + | **Требования: | ||
| + | **Автор: | ||
| + | </ | ||
| + | |||
| + | ===== Основные возможности ===== | ||
| + | |||
| + | * 🚀 **Автоматическая установка** Docker и Docker Compose | ||
| + | * 🎯 **Умное управление портами** с автоматическим поиском свободных портов | ||
| + | * 📦 **Множественные инстансы** с изоляцией и независимой конфигурацией | ||
| + | * 🎛️ **Консоль управления** с 16 функциями администрирования | ||
| + | * 👥 **Управление клиентами** с генерацией конфигов подключения | ||
| + | * 🔒 **Безопасность** с автоматической генерацией токенов авторизации | ||
| + | * 📊 **Мониторинг** статуса всех инстансов и портов | ||
| + | |||
| + | ===== Быстрый старт ===== | ||
| + | |||
| + | ==== 1. Загрузка и запуск ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Скачайте скрипт | ||
| + | wget https:// | ||
| + | |||
| + | # Или создайте файл вручную | ||
| + | nano install-n8n-mcp-v3.sh | ||
| + | # Вставьте код скрипта | ||
| + | |||
| + | # Сделайте исполняемым | ||
| + | chmod +x install-n8n-mcp-v3.sh | ||
| + | |||
| + | # Запустите установку | ||
| + | ./ | ||
| + | </ | ||
| + | |||
| + | ==== 2. Применение прав Docker ==== | ||
| + | |||
| + | После установки выполните одну из команд для применения прав Docker: | ||
| + | |||
| + | <code bash> | ||
| + | # Вариант 1: Применить в текущей сессии | ||
| + | newgrp docker | ||
| + | |||
| + | # Вариант 2: Перелогиниться | ||
| + | exit | ||
| + | ssh user@server | ||
| + | </ | ||
| + | |||
| + | ==== 3. Запуск базового инстанса ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Быстрый запуск основного инстанса | ||
| + | / | ||
| + | |||
| + | # Или через консоль управления | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | ===== Структура установки ===== | ||
| + | |||
| + | После установки создается следующая структура: | ||
| + | |||
| + | < | ||
| + | / | ||
| + | ├── instances/ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | ├── clients/ | ||
| + | ├── logs/ # Общие логи | ||
| + | ├── config/ | ||
| + | ├── shared/ | ||
| + | ├── multi-manage.sh | ||
| + | ├── start-main.sh | ||
| + | ├── instances.registry # Реестр инстансов | ||
| + | └── clients.registry | ||
| + | </ | ||
| + | |||
| + | ===== Консоль управления ===== | ||
| + | |||
| + | Запустите консоль управления: | ||
| + | |||
| + | ==== Категории функций ==== | ||
| + | |||
| + | === 📦 ИНСТАНСЫ === | ||
| + | |||
| + | ^ Опция ^ Функция ^ Описание ^ | ||
| + | | **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> | ||
| + | # Через консоль управления | ||
| + | / | ||
| + | # Выберите опцию 1 | ||
| + | |||
| + | # Введите имя инстанса (например: | ||
| + | # Система автоматически найдет свободный порт | ||
| + | </ | ||
| + | |||
| + | ==== Интерактивный выбор порта ==== | ||
| + | |||
| + | При создании инстанса доступны 3 опции: | ||
| + | |||
| + | - **1)** Использовать предлагаемый порт (автоматический) | ||
| + | - **2)** Ввести другой порт вручную | ||
| + | - **3)** Показать занятые порты и выбрать | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | **Совет: | ||
| + | </ | ||
| + | |||
| + | ==== Конфигурация .env файла ==== | ||
| + | |||
| + | После создания инстанса отредактируйте файл конфигурации: | ||
| + | |||
| + | <code bash> | ||
| + | nano / | ||
| + | </ | ||
| + | |||
| + | Раскомментируйте и настройте N8N API: | ||
| + | |||
| + | <code bash> | ||
| + | # n8n MCP Instance Configuration - production | ||
| + | AUTH_TOKEN=сгенерированный_токен | ||
| + | USE_FIXED_HTTP=true | ||
| + | MCP_MODE=http | ||
| + | TZ=Europe/ | ||
| + | INSTANCE_NAME=production | ||
| + | INSTANCE_PORT=3001 | ||
| + | |||
| + | # Добавьте здесь ваши n8n API настройки: | ||
| + | N8N_API_URL=https:// | ||
| + | N8N_API_KEY=your-n8n-api-key | ||
| + | </ | ||
| + | |||
| + | ===== Управление инстансами ===== | ||
| + | |||
| + | ==== Основные команды ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Запуск инстанса | ||
| + | cd / | ||
| + | docker-compose up -d | ||
| + | |||
| + | # Остановка инстанса | ||
| + | docker-compose down | ||
| + | |||
| + | # Перезапуск инстанса | ||
| + | docker-compose restart | ||
| + | |||
| + | # Просмотр логов | ||
| + | docker-compose logs -f | ||
| + | |||
| + | # Статус инстанса | ||
| + | docker-compose ps | ||
| + | </ | ||
| + | |||
| + | ==== Через консоль управления ==== | ||
| + | |||
| + | <code bash> | ||
| + | / | ||
| + | # Выберите опцию 3 " | ||
| + | # Выберите нужный инстанс и действие | ||
| + | </ | ||
| + | |||
| + | ===== Работа с клиентами ===== | ||
| + | |||
| + | ==== Создание клиентского конфига ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Через консоль управления | ||
| + | / | ||
| + | # Выберите опцию 6 " | ||
| + | |||
| + | # Введите имя клиента: | ||
| + | # Выберите инстанс для подключения: | ||
| + | </ | ||
| + | |||
| + | ==== Использование конфига ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Скрипт подключения | ||
| + | / | ||
| + | |||
| + | # Конфигурационный файл | ||
| + | cat / | ||
| + | </ | ||
| + | |||
| + | Пример конфига клиента: | ||
| + | |||
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Мониторинг и диагностика ===== | ||
| + | |||
| + | ==== Проверка статуса системы ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Через консоль управления | ||
| + | / | ||
| + | # Опция 12: Общий статус системы | ||
| + | |||
| + | # Или командная строка | ||
| + | docker ps --filter ' | ||
| + | </ | ||
| + | |||
| + | ==== Просмотр использования портов ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Через консоль управления | ||
| + | / | ||
| + | # Опция 10: Показать использование портов | ||
| + | |||
| + | # Или вручную | ||
| + | netstat -tuln | grep :3000 | ||
| + | ss -tuln | grep :3000 | ||
| + | </ | ||
| + | |||
| + | ==== Диагностика проблем ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Проверка логов инстанса | ||
| + | cd / | ||
| + | docker-compose logs -f | ||
| + | |||
| + | # Проверка статуса контейнера | ||
| + | docker ps -a --filter ' | ||
| + | |||
| + | # Проверка прав Docker | ||
| + | docker ps | ||
| + | # Если ошибка, | ||
| + | |||
| + | # Проверка здоровья инстанса | ||
| + | curl -s http:// | ||
| + | </ | ||
| + | |||
| + | ===== Настройка 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 bash> | ||
| + | # Через консоль управления | ||
| + | / | ||
| + | # Опция 15: Обновить все образы | ||
| + | |||
| + | # Или вручную | ||
| + | docker pull ghcr.io/ | ||
| + | |||
| + | # Перезапуск инстансов для применения обновлений | ||
| + | / | ||
| + | # Опция 4: Запустить все инстансы | ||
| + | </ | ||
| + | |||
| + | ==== Очистка ресурсов ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Через консоль управления | ||
| + | / | ||
| + | # Опция 14: Очистка неиспользуемых ресурсов | ||
| + | |||
| + | # Или вручную | ||
| + | docker system prune -f | ||
| + | docker volume prune -f | ||
| + | docker network prune -f | ||
| + | </ | ||
| + | |||
| + | ===== Резервное копирование ===== | ||
| + | |||
| + | ==== Важные данные для бэкапа ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Конфигурации инстансов | ||
| + | tar -czf n8nmcp-configs-$(date +%Y%m%d).tar.gz / | ||
| + | |||
| + | # Данные инстансов | ||
| + | tar -czf n8nmcp-data-$(date +%Y%m%d).tar.gz / | ||
| + | |||
| + | # Клиентские конфиги | ||
| + | tar -czf n8nmcp-clients-$(date +%Y%m%d).tar.gz / | ||
| + | |||
| + | # Полный бэкап | ||
| + | tar -czf n8nmcp-full-backup-$(date +%Y%m%d).tar.gz / | ||
| + | </ | ||
| + | |||
| + | ==== Восстановление ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Остановка всех инстансов | ||
| + | / | ||
| + | |||
| + | # Восстановление из бэкапа | ||
| + | sudo tar -xzf n8nmcp-full-backup-YYYYMMDD.tar.gz -C / | ||
| + | |||
| + | # Восстановление прав | ||
| + | sudo chown -R $(whoami): | ||
| + | chmod -R 755 / | ||
| + | find / | ||
| + | |||
| + | # Запуск инстансов | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | ===== Устранение неполадок ===== | ||
| + | |||
| + | ==== Частые проблемы ==== | ||
| + | |||
| + | === Ошибка: | ||
| + | |||
| + | <WRAP center round important 80%> | ||
| + | **Проблема: | ||
| + | **Решение: | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | # Проверьте наличие токена | ||
| + | grep AUTH_TOKEN / | ||
| + | |||
| + | # Если токена нет, добавьте: | ||
| + | echo " | ||
| + | |||
| + | # Перезапустите инстанс | ||
| + | cd / | ||
| + | docker-compose restart | ||
| + | </ | ||
| + | |||
| + | === Ошибка: | ||
| + | |||
| + | <WRAP center round important 80%> | ||
| + | **Проблема: | ||
| + | **Решение: | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | # Проверьте группы пользователя | ||
| + | groups $(whoami) | ||
| + | |||
| + | # Если нет группы docker: | ||
| + | sudo usermod -aG docker $(whoami) | ||
| + | newgrp docker | ||
| + | |||
| + | # Или перелогиньтесь | ||
| + | exit && ssh user@server | ||
| + | </ | ||
| + | |||
| + | === Порт уже занят === | ||
| + | |||
| + | <WRAP center round important 80%> | ||
| + | **Проблема: | ||
| + | **Решение: | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | # Через консоль управления | ||
| + | / | ||
| + | # Опция 10: Показать использование портов | ||
| + | # Опция 11: Найти свободный порт | ||
| + | |||
| + | # Или вручную | ||
| + | netstat -tuln | grep :3000 | ||
| + | ss -tuln | grep :3000 | ||
| + | </ | ||
| + | |||
| + | === Инстанс не запускается === | ||
| + | |||
| + | <code bash> | ||
| + | # Проверьте логи | ||
| + | cd / | ||
| + | docker-compose logs | ||
| + | |||
| + | # Проверьте статус контейнера | ||
| + | docker ps -a | ||
| + | |||
| + | # Проверьте права на файлы | ||
| + | ls -la / | ||
| + | |||
| + | # Исправьте права | ||
| + | sudo chown -R $(whoami): | ||
| + | </ | ||
| + | |||
| + | ===== Безопасность ===== | ||
| + | |||
| + | ==== Рекомендации по безопасности ==== | ||
| + | |||
| + | * 🔒 **Токены авторизации** генерируются автоматически и уникальны для каждого инстанса | ||
| + | * 🛡️ **Файлы .env** имеют права доступа 600 (только владелец) | ||
| + | * 🌐 **Сетевая изоляция** - каждый инстанс в собственной Docker сети | ||
| + | * 👤 **Пользовательские права** - контейнеры запускаются от имени текущего пользователя | ||
| + | |||
| + | ==== Настройка файрвола ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Открытие портов для инстансов (пример для ufw) | ||
| + | sudo ufw allow 3000/tcp comment " | ||
| + | sudo ufw allow 3001/tcp comment " | ||
| + | |||
| + | # Ограничение доступа по IP | ||
| + | sudo ufw allow from 192.168.1.0/ | ||
| + | </ | ||
| + | |||
| + | ==== Смена токенов ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Генерация нового токена | ||
| + | NEW_TOKEN=$(openssl rand -base64 32) | ||
| + | |||
| + | # Обновление в .env файле | ||
| + | sed -i " | ||
| + | |||
| + | # Обновление в метаданных | ||
| + | sed -i " | ||
| + | |||
| + | # Перезапуск инстанса | ||
| + | cd / | ||
| + | docker-compose restart | ||
| + | </ | ||
| + | |||
| + | ===== API и интеграция ===== | ||
| + | |||
| + | ==== Подключение к инстансу ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Базовое подключение | ||
| + | curl -H " | ||
| + | |||
| + | # Проверка здоровья инстанса | ||
| + | curl -s http:// | ||
| + | |||
| + | # MCP подключение | ||
| + | curl -H " | ||
| + | -H " | ||
| + | -d ' | ||
| + | | ||
| + | </ | ||
| + | |||
| + | ==== Конфигурация N8N ==== | ||
| + | |||
| + | В настройках N8N добавьте MCP сервер: | ||
| + | |||
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Полезные команды ===== | ||
| + | |||
| + | <code bash> | ||
| + | # Просмотр всех инстансов | ||
| + | docker ps --filter ' | ||
| + | |||
| + | # Просмотр использования ресурсов | ||
| + | docker stats --filter ' | ||
| + | |||
| + | # Просмотр логов всех инстансов | ||
| + | for instance in / | ||
| + | echo "=== $(basename $instance) ===" | ||
| + | cd " | ||
| + | done | ||
| + | |||
| + | # Массовое обновление конфигураций | ||
| + | find / | ||
| + | |||
| + | # Поиск инстанса по порту | ||
| + | grep -r " | ||
| + | </ | ||
| + | |||
| + | ===== Контакты и поддержка ===== | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | **Документация: | ||
| + | **GitHub:** [[https:// | ||
| + | **Issues:** [[https:// | ||
| + | </ | ||
| + | |||
| + | ==== Полезные ссылки ==== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | **Последнее обновление: | ||
| + | **Версия документации: | ||
| + | **Совместимость: | ||
| + | </ | ||