Как установить node n8n: Полное руководство
n8n — это мощный инструмент для автоматизации рабочих процессов с открытым исходным кодом. Его архитектура, основанная на Node.js, позволяет создавать сложные цепочки задач (workflows), интегрируя различные сервисы, API и протоколы. Установка n8n может быть выполнена несколькими способами, выбор которого зависит от операционной системы, уровня экспертизы пользователя и целевого окружения. Данное руководство детально рассматривает все основные методы установки, их настройку и последующее обслуживание.
Предварительные требования и подготовка системы
Перед началом установки n8n необходимо убедиться, что система соответствует минимальным требованиям и подготовлена.
- Операционная система: n8n является кроссплатформенным. Он официально поддерживается на Linux (Ubuntu, Debian, CentOS), macOS и Windows (10 и выше). Для производственных сред рекомендуется использовать Linux-сервер.
- Node.js: n8n требует установленной среды выполнения Node.js. Рекомендуемая версия — LTS (Long Term Support), например, 18.x или 20.x. Не рекомендуется использовать более старые версии.
- Менеджер пакетов npm: Обычно устанавливается вместе с Node.js. Требуется для установки n8n через npm или npx.
- База данных (опционально, но рекомендуется для production): По умолчанию n8n использует SQLite для хранения рабочих процессов и данных выполнения. Для многопользовательского режима и повышения надежности в production-средах необходима внешняя база данных: PostgreSQL (рекомендуется), MySQL, или MariaDB.
- Вычислительные ресурсы: Минимальные требования для небольшой инсталляции: 1-2 ядра CPU, 2 ГБ оперативной памяти, 10 ГБ свободного места на диске. Требования растут пропорционально количеству и сложности рабочих процессов.
- Для Ubuntu/Debian:
sudo apt update && sudo apt install nodejs npm - Для macOS (с Homebrew):
brew install node - После установки проверьте версии командой:
node --versionиnpm --version. -p 5678:5678— пробрасывает порт контейнера на порт хоста.-v ~/.n8n:/home/node/.n8n— монтирует том для сохранения данных за пределами контейнера.n8nio/n8n— официальный образ с Docker Hub.
Способ 1: Установка с помощью npm (менеджер пакетов Node.js)
Это стандартный метод для разработчиков и пользователей, уже знакомых с экосистемой Node.js. Он обеспечивает прямую установку на вашу систему.
Шаг 1: Установка Node.js и npm
Если Node.js не установлен, загрузите установщик с официального сайта nodejs.org или используйте менеджер пакетов вашей ОС.
Шаг 2: Глобальная установка n8n
Выполните следующую команду в терминале или командной строке с правами администратора (на Linux/macOS может потребоваться sudo):
npm install n8n -g
Флаг -g указывает на глобальную установку пакета, делая команду n8n доступной из любого места в системе.
Шаг 3: Запуск n8n
После успешной установки запустите n8n простой командой:
n8n start
По умолчанию веб-интерфейс n8n будет доступен по адресу: http://localhost:5678. При первом открытии вам будет предложено создать учетную запись пользователя для защиты интерфейса.
Способ 2: Запуск с помощью npx (без установки)
npx позволяет запускать пакеты npm без их предварительной глобальной установки. Это удобно для быстрого тестирования или разовых запусков.
Просто выполните команду:
npx n8n start
npx автоматически загрузит последнюю версию n8n и запустит его. Все данные (рабочие процессы, учетные данные) будут сохранены в локальной директории, но этот метод не рекомендуется для постоянного использования.
Способ 3: Установка с помощью Docker
Docker — это наиболее предпочтительный и изолированный способ развертывания n8n, особенно в production-средах. Он гарантирует одинаковое поведение приложения на любой системе и упрощает обновления.
Шаг 1: Установка Docker и Docker Compose
Установите Docker Engine и Docker Compose согласно официальной документации для вашей операционной системы.
Шаг 2: Запуск n8n в Docker контейнере
Для быстрого старта выполните команду:
docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
Разберем ключевые параметры:
Шаг 3: Развертывание с Docker Compose для Production
Для production-среды рекомендуется использовать Docker Compose с внешней базой данных PostgreSQL. Создайте файл docker-compose.yml:
version: '3.8'
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_PROTOCOL=https
- N8N_HOST=your_domain.com
- N8N_PORT=5678
- N8N_WEBHOOK_URL=https://your_domain.com/
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n_user
- DB_POSTGRESDB_PASSWORD=secure_password
- N8N_ENCRYPTION_KEY=your_super_secure_encryption_key
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:15-alpine
container_name: n8n_postgres
restart: unless-stopped
environment:
- POSTGRES_USER=n8n_user
- POSTGRES_PASSWORD=secure_password
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
Запустите стек командой docker-compose up -d. n8n будет работать в фоновом режиме с автоматическим перезапуском и надежным хранением данных в PostgreSQL.
Способ 4: Установка на сервер с помощью PM2 (Process Manager)
Для запуска n8n в качестве постоянного фонового процесса на сервере (VPS) рекомендуется использовать менеджер процессов PM2. Он обеспечивает автоматический перезапуск при сбоях и управление логированием.
Шаг 1: Установка n8n и PM2
Установите n8n глобально, как описано в способе 1. Затем установите PM2:
npm install pm2 -g
Шаг 2: Запуск n8n через PM2
Запустите n8n под управлением PM2:
pm2 start n8n --name "n8n" -- start
Шаг 3: Настройка PM2 для автозагрузки
Чтобы n8n запускался автоматически при загрузке сервера, выполните:
pm2 startup
pm2 save
Теперь вы можете управлять процессом командами pm2 status, pm2 logs n8n, pm2 restart n8n.
Базовая конфигурация n8n
Настройка n8n осуществляется через переменные окружения или файл конфигурации .n8n/config. Ключевые настраиваемые параметры:
| Переменная окружения | Описание | Пример значения |
|---|---|---|
| N8N_PROTOCOL | Протокол для доступа к веб-интерфейсу (http/https). | https |
| N8N_HOST | Доменное имя или IP-адрес сервера. | automation.yourcompany.com |
| N8N_WEBHOOK_URL | Полный базовый URL для вызовов webhook. | https://automation.yourcompany.com/ |
| N8N_ENCRYPTION_KEY | Ключ для шифрования учетных данных. Обязателен в production! | supersecretkey32charslong123456 |
| DB_TYPE | Тип базы данных (sqlite, postgresdb, mysqldb). | postgresdb |
| GENERIC_TIMEZONE | Часовой пояс для выполнения workflows. | Europe/Moscow |
| N8N_METRICS | Включение сбора метрик (true/false). | true |
Настройка обратного прокси (Nginx) и SSL
Для безопасного доступа к n8n из интернета необходимо разместить его за обратным прокси (например, Nginx) и настроить SSL-сертификат (например, от Let’s Encrypt).
Пример конфигурации Nginx:
server {
server_name automation.yourcompany.com;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
Важно для корректной работы WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/automation.yourcompany.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/automation.yourcompany.com/privkey.pem;
}
server {
if ($host = automation.yourcompany.com) {
return 301 https://$host$request_uri;
}
listen 80;
server_name automation.yourcompany.com;
return 404;
}
Обновление n8n
Процесс обновления зависит от выбранного метода установки.
- Для установки через npm:
npm update n8n -g - Для Docker: Обновите образ и пересоздайте контейнер:
docker pull n8nio/n8n
docker-compose down
docker-compose up -d - Для PM2: Обновите пакет через npm, затем перезапустите процесс PM2.
Важно: Перед обновлением в production всегда создавайте резервную копию базы данных и директории .n8n.
Резервное копирование и восстановление
Данные n8n включают рабочие процессы, учетные данные, историю выполнения и настройки.
- При использовании SQLite: Скопируйте файл
~/.n8n/database.sqlite. - При использовании PostgreSQL/MySQL: Используйте стандартные утилиты дампа БД (pg_dump, mysqldump).
- Через интерфейс n8n: Рабочие процессы можно экспортировать/импортировать вручную в разделе «Workflows».
- Для полной копии (Docker): Резервируйте весь том Docker, связанный с
/home/node/.n8n.
Ответы на часто задаваемые вопросы (FAQ)
Какой метод установки лучше всего подходит для production-сервера?
Для production настоятельно рекомендуется использовать Docker Compose в связке с PostgreSQL. Этот метод обеспечивает изоляцию, простоту развертывания, масштабируемость, легкое обновление и отказоустойчивость за счет внешней базы данных.
Как сменить порт по умолчанию (5678) для n8n?
Используйте переменную окружения N8N_PORT. Например, для запуска на порту 8080: n8n start --port=8080 или в Docker добавьте -e N8N_PORT=8080 и измените проброс портов -p 8080:8080.
Как настроить n8n для работы с пользовательскими SSL-сертификатами?
Задайте переменные окружения: N8N_PROTOCOL=https, N8N_SSL_KEY=/path/to/your/key.pem, N8N_SSL_CERT=/path/to/your/cert.pem. При использовании обратного прокси (рекомендуется) SSL терминация происходит на уровне Nginx/Apache.
Почему n8n не запускается после обновления Node.js?
Возможен конфликт версий или повреждение глобальных модулей. Попробуйте переустановить n8n: npm uninstall n8n -g, затем npm install n8n -g. Убедитесь, что версия Node.js соответствует требованиям n8n.
Как организовать многопользовательский доступ (Multi-tenancy) в n8n?
Начиная с версии 0.198.0, n8n поддерживает многопользовательский режим. Для его активации необходимо использовать внешнюю базу данных (PostgreSQL/MySQL) и задать переменную окружения N8N_USER_MANAGEMENT_ENABLED=true. После первого входа первого пользователя (ставшего владельцем) можно приглашать других пользователей через интерфейс.
Как решить проблему «Webhook timeout» или «Workflow waiting»?
Это часто происходит, когда n8n работает за обратным прокси. Убедитесь, что в конфигурации Nginx/Apache правильно настроены таймауты (директивы proxy_read_timeout, proxy_connect_timeout) и поддержка WebSocket (как показано в примере конфигурации выше).
Где хранятся логи выполнения workflows и как их просмотреть?
Логи хранятся в базе данных n8n. Просмотреть их можно непосредственно в интерфейсе n8n во вкладке «Executions» для каждого workflow. Для просмотра системных логов сервера при использовании Docker используйте docker logs n8n_container_name, а при использовании PM2 — pm2 logs n8n.
Как добавить собственные узлы (custom nodes) в n8n?
Создайте директорию custom внутри директории данных n8n (например, ~/.n8n/custom). Поместите туда папку с вашим узлом, которая должна содержать файлы package.json и index.js. Перезапустите n8n. Узел появится в палитре узлов с префиксом «CUSTOM».
Как ограничить доступ к n8n по IP-адресу?
Настройте ограничения на уровне обратного прокси (Nginx/Apache) с помощью директив allow и deny или используйте брандмауэр сервера (например, ufw на Linux) чтобы открыть порт 5678 только для доверенных IP-адресов.
Как перенести данные n8n с одного сервера на другой?
1. Остановите n8n на исходном сервере.
2. Экспортируйте базу данных (дамп PostgreSQL/MySQL или файл SQLite).
3. Скопируйте всю директорию .n8n (или соответствующий Docker volume).
4. Разверните n8n на новом сервере тем же методом (Docker, npm и т.д.).
5. Импортируйте базу данных и замените содержимое директории .n8n на скопированное.
6. Убедитесь, что переменные окружения (особенно N8N_ENCRYPTION_KEY) идентичны на обоих серверах.
7. Запустите n8n на новом сервере.
Добавить комментарий