Важно!
Если хотите что бы все папки и файлы создались от текущего пользователя что бы был доступ для редактирования запускать не от SUDO
Тогда скрипт выяснит текущего пользователя и установит все от системного пользователя.
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
Важно!
После установки первичной нужно выйти из текущей сессии и зайти что бы применились все новые права для работы с меню.
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>
# Скачайте скрипт 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
После установки выполните одну из команд для применения прав Docker:
# Вариант 1: Применить в текущей сессии newgrp docker # Вариант 2: Перелогиниться exit ssh user@server
# Быстрый запуск основного инстанса /opt/n8nmcp/start-main.sh # Или через консоль управления /opt/n8nmcp/multi-manage.sh
После установки создается следующая структура:
/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 # Реестр клиентов
Запустите консоль управления: /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 | 🔧 Исправить права доступа | Восстановление прав на файлы |
# Через консоль управления /opt/n8nmcp/multi-manage.sh # Выберите опцию 1 # Введите имя инстанса (например: production) # Система автоматически найдет свободный порт
При создании инстанса доступны 3 опции:
<WRAP center round tip 60%> Совет: Используйте опцию 3 для просмотра карты портов перед выбором </WRAP>
После создания инстанса отредактируйте файл конфигурации:
nano /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА/.env
Раскомментируйте и настройте N8N API:
# 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
# Запуск инстанса cd /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА docker-compose up -d # Остановка инстанса docker-compose down # Перезапуск инстанса docker-compose restart # Просмотр логов docker-compose logs -f # Статус инстанса docker-compose ps
/opt/n8nmcp/multi-manage.sh # Выберите опцию 3 "Управление инстансом" # Выберите нужный инстанс и действие
# Через консоль управления /opt/n8nmcp/multi-manage.sh # Выберите опцию 6 "Создать клиентский конфиг" # Введите имя клиента: my-client # Выберите инстанс для подключения: production
# Скрипт подключения /opt/n8nmcp/clients/my-client/connect.sh # Конфигурационный файл cat /opt/n8nmcp/clients/my-client/config.json
Пример конфига клиента:
{
"client_name": "my-client",
"instance_name": "production",
"url": "http://192.168.1.100:3001",
"auth_token": "abc123...",
"port": 3001
}
# Через консоль управления /opt/n8nmcp/multi-manage.sh # Опция 12: Общий статус системы # Или командная строка docker ps --filter 'name=n8n-mcp'
# Через консоль управления /opt/n8nmcp/multi-manage.sh # Опция 10: Показать использование портов # Или вручную netstat -tuln | grep :3000 ss -tuln | grep :3000
# Проверка логов инстанса 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
Скрипт автоматически создает systemd service для базового инстанса:
# Управление службой 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
# Через консоль управления /opt/n8nmcp/multi-manage.sh # Опция 15: Обновить все образы # Или вручную docker pull ghcr.io/czlonkowski/n8n-mcp:latest # Перезапуск инстансов для применения обновлений /opt/n8nmcp/multi-manage.sh # Опция 4: Запустить все инстансы
# Через консоль управления /opt/n8nmcp/multi-manage.sh # Опция 14: Очистка неиспользуемых ресурсов # Или вручную docker system prune -f docker volume prune -f docker network prune -f
# Конфигурации инстансов 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/
# Остановка всех инстансов /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
<WRAP center round important 80%>
Проблема: Контейнер не может найти токен авторизации
Решение: Проверьте файл .env в директории инстанса
</WRAP>
# Проверьте наличие токена 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
<WRAP center round important 80%>
Проблема: Пользователь не в группе docker
Решение: Применить права Docker группы
</WRAP>
# Проверьте группы пользователя groups $(whoami) # Если нет группы docker: sudo usermod -aG docker $(whoami) newgrp docker # Или перелогиньтесь exit && ssh user@server
<WRAP center round important 80%>
Проблема: Выбранный порт уже используется
Решение: Используйте автоматический поиск портов
</WRAP>
# Через консоль управления /opt/n8nmcp/multi-manage.sh # Опция 10: Показать использование портов # Опция 11: Найти свободный порт # Или вручную netstat -tuln | grep :3000 ss -tuln | grep :3000
# Проверьте логи cd /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА docker-compose logs # Проверьте статус контейнера docker ps -a # Проверьте права на файлы ls -la /opt/n8nmcp/instances/ИМЯ_ИНСТАНСА/ # Исправьте права sudo chown -R $(whoami):$(id -gn) /opt/n8nmcp/
# Открытие портов для инстансов (пример для 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
# Генерация нового токена 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
# Базовое подключение 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
В настройках N8N добавьте MCP сервер:
{
"name": "n8n-mcp-instance",
"url": "http://localhost:3000",
"auth": {
"type": "bearer",
"token": "YOUR_AUTH_TOKEN"
}
}
# Просмотр всех инстансов 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/*/
<WRAP center round info 60%>
Документация: docs.n8n-mcp.com
GitHub: n8n-mcp repository
Issues: GitHub Issues
</WRAP>
<WRAP center round tip 60%>
Последнее обновление: :wiki:footer_date&nofooter&noeditbtn
Версия документации: 3.0
Совместимость: N8N MCP Multi-Instance Installer v3.0+
</WRAP>