N8n: Бесплатная установка и развертывание
N8n — это мощный инструмент для автоматизации рабочих процессов с открытым исходным кодом, использующий парадигму workflow-as-code. Его отличительная черта — справедливая модель лицензирования, где код доступен по лицензии Apache 2.0 с Commons Clause, что позволяет бесплатно использовать, модифицировать и самостоятельно размещать продукт. Установка собственного экземпляра n8n предоставляет полный контроль над данными, неограниченное количество исполнений workflow и отсутствие каких-либо абонентских плат.
Выбор метода установки
Существует несколько основных методов установки n8n, каждый из которых подходит для разных сценариев использования и уровней технической подготовки пользователя.
- Docker (рекомендуемый способ): Наиболее универсальный и изолированный метод, обеспечивающий простоту обновления и конфигурации.
- npm (Node.js Package Manager): Прямая установка с помощью npm, подходит для разработчиков и быстрого тестирования.
- Развертывание на облачных платформах: Использование готовых образов в облачных сервисах, таких как DigitalOcean, AWS, Google Cloud, Hetzner.
- Установка на локальный компьютер: Для персонального использования или тестирования на Windows, macOS или Linux.
- Оперативная память (RAM): Не менее 1 ГБ, рекомендуется 2+ ГБ для стабильной работы.
- Процессор: 1 ядро, 2+ ядра рекомендуется.
- Дисковое пространство: Не менее 1 ГБ, плюс место для хранения данных и логов.
- Операционная система: Любой дистрибутив Linux, macOS, Windows (WSL2 рекомендуется для Windows).
- Установленный Docker и Docker Compose (для Docker-метода) или Node.js версии 16+ (для npm-метода).
- Для Ubuntu/Debian:
sudo apt-get update && sudo apt-get install docker.io docker-compose - Для CentOS/RHEL:
sudo yum install docker && sudo systemctl start docker - Для Windows/macOS: Загрузите и установите Docker Desktop с официального сайта.
Предварительные требования
Перед началом установки убедитесь, что ваша система соответствует минимальным требованиям:
Установка n8n с помощью Docker и Docker Compose
Этот метод обеспечивает изоляцию сервисов, простоту управления и является стандартом де-факто для production-развертываний.
Шаг 1: Установка Docker и Docker Compose
Если Docker не установлен, следуйте официальной инструкции для вашей ОС:
Шаг 2: Создание директории и файла конфигурации
Создайте отдельную директорию для n8n и перейдите в нее:
mkdir ~/n8n-docker && cd ~/n8n-docker
Создайте файл docker-compose.yml с помощью любого текстового редактора (nano, vim).
Шаг 3: Настройка docker-compose.yml
Приведенная ниже конфигурация запускает n8n вместе с базой данных PostgreSQL для надежного хранения workflow и данных исполнения.
version: '3.8'
services:
n8n:
image: n8nio/n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_PROTOCOL=https
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_EDITOR_BASE_URL=https://ваш-домен-или-ip
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=сложный_пароль
- N8N_ENCRYPTION_KEY=уникальный_ключ_шифрования_32_символа
- GENERIC_TIMEZONE=Europe/Moscow
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:15-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=сложный_пароль
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
Шаг 4: Запуск n8n
В директории с файлом docker-compose.yml выполните команду:
docker-compose up -d
После завершения загрузки образов и запуска контейнеров, n8n будет доступен по адресу http://ваш-сервер:5678.
Установка n8n с помощью npm
Этот метод подходит для быстрого старта на локальной машине для разработки или тестирования.
Шаг 1: Установка Node.js
Загрузите и установите Node.js версии 16 или выше с официального сайта nodejs.org. Проверьте установку:
node --version
npm --version
Шаг 2: Глобальная установка n8n
Выполните команду в терминале или командной строке:
npm install n8n -g
Шаг 3: Запуск n8n
После завершения установки запустите n8n командой:
n8n start
По умолчанию веб-интерфейс будет доступен по адресу http://localhost:5678. Для настройки порта, протокола и других параметров используйте флаги командной строки, например: n8n start --port=8080.
Настройка n8n для production-использования
Базовая установка требует дополнительной конфигурации для безопасной и стабильной работы в интернете.
1. Настройка обратного прокси (Nginx)
Для использования HTTPS и раздачи статики рекомендуется настроить Nginx как обратный прокси. Пример конфигурации виртуального хоста:
server {
listen 80;
server_name ваш-домен.ru;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name ваш-домен.ru;
ssl_certificate /путь/к/ssl/cert.pem;
ssl_certificate_key /путь/к/ssl/privkey.pem;
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;
}
}
2. Настройка переменных окружения
Ключевые переменные окружения для файла docker-compose.yml или системного окружения:
| Переменная | Описание | Пример значения |
|---|---|---|
| N8N_ENCRYPTION_KEY | Обязательный ключ для шифрования учетных данных. Должен быть длиной 32 символа и оставаться неизменным. | my-secret-key-32-chars-long-1234 |
| N8N_PROTOCOL, N8N_HOST, N8N_PORT | Публичный URL вашего экземпляра n8n. Используются для генерации корректных ссылок в уведомлениях. | https, ваш-домен.ru, 443 |
| N8N_SECURITY_EXCLUDE_ENDPOINTS | Эндпоинты, исключенные из проверки аутентификации (например, для webhook). | webhook, webhook-test |
| EXECUTIONS_DATA_PRUNE | Включить автоматическую очистку старых данных исполнений. | true |
| EXECUTIONS_DATA_MAX_AGE | Максимальный возраст данных исполнений в часах перед удалением. | 168 (7 дней) |
3. Настройка аутентификации
Для ограничения доступа к интерфейсу n8n настройте базовую аутентификацию. Добавьте в сервис n8n в docker-compose.yml следующие переменные:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=ваш_логин
- N8N_BASIC_AUTH_PASSWORD=ваш_пароль
Обновление n8n
Процесс обновления зависит от метода установки.
Обновление в Docker
Остановите контейнеры, обновите образ и перезапустите:
cd ~/n8n-docker
docker-compose down
docker-compose pull
docker-compose up -d
Обновление при установке через npm
npm update n8n -g
Резервное копирование и восстановление данных
Критически важные данные n8n хранятся в двух местах: workflow и настройки в базе данных PostgreSQL, а файлы и учетные данные — в volume n8n_data.
Резервное копирование базы данных PostgreSQL:
docker exec -t ваш_контейнер_postgres pg_dump -U n8n n8n > n8n_backup_$(date +%Y-%m-%d).sql
Резервное копирование volume с данными:
docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n_data_backup_$(date +%Y-%m-%d).tar.gz -C /data .
Восстановление из резервной копии:
Для базы данных
cat n8n_backup.sql | docker exec -i ваш_контейнер_postgres psql -U n8n n8n
Для volume
docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/n8n_data_backup.tar.gz"
Ответы на часто задаваемые вопросы (FAQ)
Вопрос 1: В чем разница между облачной версией n8n и самостоятельной установкой?
Облачная версия (n8n.cloud) — это управляемый сервис с ежемесячной подпиской, который избавляет от необходимости администрировать инфраструктуру. Самостоятельная установка (self-hosted) полностью бесплатна, предоставляет полный контроль над данными, неограниченные executions и может быть развернута в любой среде, но требует затрат времени на настройку и обслуживание сервера.
Вопрос 2: Нужно ли платить за self-hosted версию n8n?
Нет. Самостоятельная установка n8n является полностью бесплатной. Платить необходимо только за инфраструктуру (аренду сервера/VPS, доменное имя, SSL-сертификат), на которой он работает.
Вопрос 3: Какие минимальные требования к серверу для небольшой нагрузки?
Для автоматизации с несколькими десятками workflow и умеренной частотой запусков (несколько сотен executions в день) достаточно виртуального сервера (VPS) с такими характеристиками: 1-2 ядра CPU, 2 ГБ оперативной памяти, 20 ГБ SSD-диск. Оптимальный выбор — тарифные планы типа «Micro» или «Small» у облачных провайдеров (DigitalOcean, Linode, Hetzner).
Вопрос 4: Как обеспечить безопасность self-hosted n8n?
- Всегда используйте HTTPS через обратный прокси (Nginx/Caddy) с валидным SSL-сертификатом (можно бесплатно от Let’s Encrypt).
- Включите базовую аутентификацию (N8N_BASIC_AUTH_ACTIVE).
- Настройте файрвол, открыв только порты 80 и 443 для входящего трафика.
- Регулярно обновляйте образы Docker и сам n8n до последних версий.
- Используйте сложный и уникальный ключ шифрования (N8N_ENCRYPTION_KEY).
Вопрос 5: Как настроить отправку email-уведомлений?
N8n поддерживает встроенный узел Email (SMTP). Для его работы необходимо задать глобальные переменные SMTP в файле конфигурации или через интерфейс Settings -> Variables. Требуемые параметры: SMTP host, port, user, password, sender address. Можно использовать сервисы вроде SendGrid, Mailgun, Gmail SMTP или корпоративный почтовый сервер.
Вопрос 6: Что делать, если workflow перестали запускаться после обновления?
В первую очередь, проверьте логи контейнера n8n: docker-compose logs n8n. Частой причиной является изменение API сторонних сервисов или устаревшая структура узлов. Воспользуйтесь функцией «Duplicate workflow» для создания копии проблемного workflow и попробуйте пересоздать узлы заново. Всегда рекомендуется тестировать обновления на staging-окружении и иметь актуальные резервные копии.
Вопрос 7: Как увеличить производительность n8n при высокой нагрузке?
- Выделите больше ресурсов CPU и RAM для контейнера n8n в
docker-compose.yml(директиваdeploy.resources.limits). - Настройте отдельную, более мощную базу данных (например, облачный PostgreSQL).
- Включите режим очереди исполнений, используя Redis как message broker (переменные
EXECUTIONS_MODE=queueи настройкиQUEUE_BULL_REDIS). - Рассмотрите горизонтальное масштабирование с запуском нескольких воркеров n8n.
Вопрос 8: Где хранятся сохраненные учетные данные (credentials)?
Учетные данные по умолчанию хранятся в зашифрованном виде в базе данных PostgreSQL (в таблице credentials_entity). Ключом для шифрования служит значение переменной окружения N8N_ENCRYPTION_KEY. Важно никогда не терять и не изменять этот ключ после начала использования, так как это сделает все сохраненные учетные данные нечитаемыми.
Комментарии