Представь, что тебе нужно автоматизировать рутинные задачи: синхронизацию данных между сервисами, обработку webhook'ов или создание сложных бизнес-процессов. n8n — это мощный инструмент с открытым исходным кодом для создания workflow'ов, который можно развернуть на собственном сервере. Давай разберем, как выполнить установку n8n на Ubuntu правильно и безопасно.
Подготовка сервера Ubuntu
Перед началом установки n8n убедимся, что система готова. Работаем на свежем Ubuntu 20.04 LTS или 22.04 LTS.
Обновление системы и установка зависимостей
# Обновляем пакеты системы
sudo apt update && sudo apt upgrade -y
# Устанавливаем необходимые утилиты
sudo apt install -y curl wget gnupg git build-essential
# Для работы с Docker (если будем использовать)
sudo apt install -y apt-transport-https ca-certificates software-properties-common
Важно: Все команды выполняем от обычного пользователя с sudo правами. Не работай от root напрямую!
Способ 1: Установка n8n через Node.js и PM2
Этот способ дает больше контроля и лучше подходит для production-окружения.
Установка Node.js и npm
# Устанавливаем Node.js 18.x (рекомендуемая версия для n8n)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
# Проверяем установку
node --version # Должно быть v18.x.x
npm --version # Должно быть 8.x.x или выше
Установка и настройка n8n
# Создаем директорию для n8n
mkdir ~/n8n && cd ~/n8n
# Инициализируем npm проект
npm init -y
# Устанавливаем n8n глобально или локально
npm install n8n -g
# ИЛИ локально (рекомендуется для изоляции)
npm install n8n
Настройка PM2 для управления процессом
# Устанавливаем PM2 глобально
sudo npm install pm2 -g
# Создаем конфигурационный файл для n8n
cat > ~/n8n/ecosystem.config.js << 'EOF'
module.exports = {
apps: [{
name: 'n8n',
script: 'n8n',
args: 'start',
env: {
N8N_PROTOCOL: 'https',
N8N_HOST: 'ваш-домен.ru',
N8N_PORT: 5678,
N8N_ENCRYPTION_KEY: 'ваш-секретный-ключ-минимум-32-символа',
WEBHOOK_URL: 'https://ваш-домен.ru',
N8N_METRICS: 'true',
DB_TYPE: 'postgresdb',
DB_POSTGRESDB_HOST: 'localhost',
DB_POSTGRESDB_PORT: 5432,
DB_POSTGRESDB_DATABASE: 'n8n',
DB_POSTGRESDB_USER: 'n8n_user',
DB_POSTGRESDB_PASSWORD: 'ваш-надежный-пароль'
}
}]
}
EOF
Внимание: Обязательно замени все значения в конфиге на свои! Генерация надежного ENCRYPTION_KEY: openssl rand -base64 32
Способ 2: Установка n8n через Docker
Docker-установка проще и обеспечивает лучшую изоляцию. Идеально для быстрого развертывания.
Установка Docker и Docker Compose
# Устанавливаем Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# Устанавливаем Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Перезагружаем сессию (или выходим/заходим)
newgrp docker
Docker Compose конфигурация для n8n
version: '3.8'
services:
postgres:
image: postgres:15-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=n8n_user
- POSTGRES_PASSWORD=ваш-надежный-пароль
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- n8n_network
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_PROTOCOL=https
- N8N_HOST=ваш-домен.ru
- WEBHOOK_URL=https://ваш-домен.ru
- N8N_ENCRYPTION_KEY=ваш-секретный-ключ-минимум-32-символа
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n_user
- DB_POSTGRESDB_PASSWORD=ваш-надежный-пароль
- N8N_METRICS=true
- GENERIC_TIMEZONE=Europe/Moscow
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
networks:
- n8n_network
volumes:
postgres_data:
n8n_data:
networks:
n8n_network:
driver: bridge
# Создаем директорию и конфиг
mkdir ~/n8n-docker && cd ~/n8n-docker
nano docker-compose.yml # Вставляем конфиг выше
# Запускаем n8n
docker-compose up -d
# Проверяем логи
docker-compose logs -f n8n
Настройка Nginx в качестве reverse proxy
Для production-окружения обязательно используем Nginx с SSL.
Установка и базовая настройка Nginx
# Устанавливаем Nginx
sudo apt install -y nginx
# Настраиваем firewall
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable
# Проверяем статус Nginx
sudo systemctl status nginx
Конфигурация виртуального хоста для n8n
server {
listen 80;
server_name ваш-домен.ru www.ваш-домен.ru;
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl http2;
server_name ваш-домен.ru www.ваш-домен.ru;
# SSL сертификаты (сгенерируйте через Certbot)
ssl_certificate /etc/letsencrypt/live/ваш-домен.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ваш-домен.ru/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
ssl_prefer_server_ciphers off;
# Проксирование на n8n
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";
# Таймауты
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
# Статика
location /static/ {
alias /home/user/n8n/static/;
expires 1y;
add_header Cache-Control "public, immutable";
}
}
Получение SSL сертификата через Certbot
# Устанавливаем Certbot
sudo apt install -y certbot python3-certbot-nginx
# Получаем сертификат
sudo certbot --nginx -d ваш-домен.ru -d www.ваш-домен.ru
# Настраиваем авто-обновление
sudo certbot renew --dry-run
Сравнение методов установки n8n
| Критерий | Node.js + PM2 | Docker |
|---|---|---|
| Сложность установки | Средняя | Низкая |
| Изоляция | Частичная | Полная |
| Обновление | npm update n8n |
docker-compose pull |
| Резервное копирование | Ручное копирование файлов | Docker volumes |
| Производительность | Выше (нативная) | Немного ниже |
Базовые команды управления n8n
Для PM2 установки:
pm2 start ecosystem.config.js— запускpm2 stop n8n— остановкаpm2 restart n8n— перезапускpm2 logs n8n— просмотр логовpm2 save && pm2 startup— автозагрузка
Для Docker установки:
docker-compose up -d— запускdocker-compose down— остановкаdocker-compose restart— перезапускdocker-compose logs -f— логиdocker-compose pull— обновление
Часто задаваемые вопросы (FAQ)
Какой порт использует n8n по умолчанию?
n8n по умолчанию использует порт 5678. Это можно изменить через переменную окружения N8N_PORT или флаг --port при запуске.
Нужна ли отдельная база данных для n8n?
Для production-окружения настоятельно рекомендуется использовать внешнюю БД (PostgreSQL). Встроенная SQLite подходит только для тестирования. PostgreSQL обеспечивает надежность и возможность масштабирования.
Как настроить бэкапы workflow'ов?
Используйте встроенную функцию экспорта или настройте регулярное копирование директории с данными:
# Для Docker
sudo cp -r /var/lib/docker/volumes/n8n-docker_n8n_data /backup/n8n-$(date +%Y%m%d)
# Для PM2
sudo cp -r ~/.n8n /backup/n8n-$(date +%Y%m%d)
Как обновить n8n до новой версии?
Для Docker: docker-compose pull && docker-compose up -d
Для PM2: npm update n8n -g && pm2 restart n8n
Всегда делайте бэкап перед обновлением!
Как настроить аутентификацию в n8n?
Добавьте переменные окружения:
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=ваш-пароль
Оптимизация производительности
После успешной установки n8n на Ubuntu, рассмотрим несколько советов по оптимизации:
- Настройка лимитов памяти: Для PM2 укажите
max_memory_restart: '1G'в ecosystem.config.js - Оптимизация PostgreSQL: Настройте shared_buffers и work_mem в postgresql.conf
- Кэширование: Используйте Redis для кэширования, если много workflow'ов
- Мониторинг: Настройте метрики через
N8N_METRICS=trueи подключите Prometheus - Логирование: Настройте ротацию логов через logrotate
Профессиональный совет: Для высоконагруженных инсталляций рассмотрите возможность запуска n8n в кластере с использованием нескольких worker'ов и балансировкой нагрузки.
Теперь у тебя есть полностью рабочая установка n8n на Ubuntu. Ты можешь начать создавать автоматизации, подключать сервисы и оптимизировать бизнес-процессы. Помни про безопасность: регулярно обновляй систему, настраивай бэкапы и мониторинг. Удачи в автоматизации!