Установка и настройка n8n
Это подробное руководство по развертыванию n8n на собственном сервере. В нем описаны все шаги от подготовки сервера до настройки и запуска.
Предварительные требования
Для следования этому руководству вам понадобится:
- Сервер с Ubuntu 20.04+ / Debian 11+ (или другой Linux-дистрибутив)
- SSH доступ к серверу с правами sudo
- Доменное имя, указывающее на IP-адрес вашего сервера (для HTTPS)
- Базовые знания работы с командной строкой Linux
Способ установки
Мы будем использовать Docker для развертывания n8n. Это рекомендуемый подход для production-окружений.
Шаг 1: Подключение к серверу
Подключитесь к вашему серверу по SSH:
ssh your_username@your_server_ipЗамените your_username на ваше имя пользователя и your_server_ip на IP-адрес вашего сервера.
Шаг 2: Установка Docker
Если Docker еще не установлен, выполните следующие команды:
# Обновление системы
sudo apt update && sudo apt upgrade -y
# Установка зависимостей
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# Добавление официального GPG ключа Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Добавление репозитория Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Установка Docker
sudo apt install -y docker-ce docker-ce-cli containerd.io
# Установка 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
# Добавление текущего пользователя в группу docker
sudo usermod -aG docker $USER
# Проверка установки
docker --version
docker-compose --versionПерезайдите в систему для применения изменений группы.
Шаг 3: Создание директории для n8n
# Создание директории для данных n8n
mkdir -p ~/n8n-data
cd ~/n8n-dataШаг 4: Создание docker-compose.yml
Создайте файл docker-compose.yml:
nano docker-compose.ymlВставьте следующую конфигурацию:
version: '3.8'
services:
postgres:
image: postgres:15
restart: unless-stopped
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=CHANGE_THIS_TO_SECURE_PASSWORD
- POSTGRES_DB=n8n
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U n8n']
interval: 5s
timeout: 5s
retries: 10
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=CHANGE_THIS_TO_SECURE_PASSWORD
- N8N_HOST=your-domain.com
- N8N_PROTOCOL=https
- N8N_PORT=5678
- WEBHOOK_URL=https://your-domain.com/
- GENERIC_TIMEZONE=UTC
- TZ=UTC
volumes:
- n8n-data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
volumes:
postgres-data:
n8n-data:Важно: Обязательно замените следующие значения:
CHANGE_THIS_TO_SECURE_PASSWORD- на пароль для базы данныхyour-domain.com- на ваш доменный адресUTC- на ваш часовой пояс (например,Europe/Moscow)
Сохраните файл (Ctrl+O, Enter, Ctrl+X).
Шаг 5: Запуск n8n
# Запуск контейнеров
docker-compose up -d
# Проверка статуса
docker-compose ps
# Просмотр логов
docker-compose logs -f n8nn8n теперь запущен и доступен на порту 5678.
Настройка Nginx как обратного прокси
Для доступа к n8n через HTTPS необходимо настроить Nginx.
Шаг 1: Установка Nginx
sudo apt install -y nginxШаг 2: Создание конфигурации Nginx
sudo nano /etc/nginx/sites-available/n8nВставьте следующую конфигурацию:
server {
listen 80;
server_name your-domain.com;
# Редирект на HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name your-domain.com;
# SSL сертификаты (будут созданы через Certbot)
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
# SSL настройки
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Логи
access_log /var/log/nginx/n8n-access.log;
error_log /var/log/nginx/n8n-error.log;
# Максимальный размер загружаемых файлов
client_max_body_size 50M;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
# Заголовки
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 support
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Таймауты
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
}Важно: Замените your-domain.com на ваш реальный доменный адрес.
Сохраните файл.
Шаг 3: Активация конфигурации
# Создание символической ссылки
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
# Проверка конфигурации
sudo nginx -t
# Перезапуск Nginx
sudo systemctl restart nginxШаг 4: Настройка SSL с Let's Encrypt
# Установка Certbot
sudo apt install -y certbot python3-certbot-nginx
# Получение сертификата (замените your-domain.com на ваш домен)
sudo certbot --nginx -d your-domain.com
# Автоматическое обновление сертификата
sudo certbot renew --dry-runCertbot запросит ваш email и попросит согласиться с условиями использования.
Certbot автоматически настроит SSL и создаст задание для автоматического обновления сертификатов.
Настройка файрвола
Откройте необходимые порты:
# Установка UFW (если не установлен)
sudo apt install -y ufw
# Разрешение SSH
sudo ufw allow OpenSSH
# Разрешение HTTP и HTTPS
sudo ufw allow 'Nginx Full'
# Включение файрвола
sudo ufw enable
# Проверка статуса
sudo ufw statusПервоначальная настройка n8n
Шаг 1: Доступ к веб-интерфейсу
Откройте браузер и перейдите по адресу:
https://your-domain.comШаг 2: Создание первого пользователя
При первом запуске n8n предложит создать учетную запись владельца:
- Введите email
- Придумайте надежный пароль
- Укажите имя и фамилию
- Нажмите "Создать аккаунт"
Шаг 3: Базовые настройки
После входа в систему рекомендуется:
- Настроить переменные окружения - Settings → Environment Variables
- Настроить SMTP для отправки email (если требуется)
- Создать дополнительных пользователей - Settings → Users
Важные переменные окружения
Вот полный список важных переменных окружения для n8n:
Базовые настройки
# URL и протокол
N8N_HOST=your-domain.com
N8N_PROTOCOL=https
N8N_PORT=5678
# Webhook URL
WEBHOOK_URL=https://your-domain.com/База данных
# PostgreSQL
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=localhost
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8n_user
DB_POSTGRESDB_PASSWORD=your_password
# Или SQLite (не рекомендуется для продакшена)
DB_TYPE=sqlite
DB_SQLITE_DATABASE=/home/node/.n8n/database.sqliteЧасовой пояс
# Установите ваш часовой пояс
GENERIC_TIMEZONE=UTC
TZ=UTC
# Можно установить, например, Europe/MoscowБезопасность
# Отключение базовой аутентификации (если используется RBAC)
N8N_BASIC_AUTH_ACTIVE=false
# Или включение базовой аутентификации
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=secure_passwordВыполнение воркфлоу
# Таймаут выполнения (в секундах)
EXECUTIONS_TIMEOUT=3600
# Максимальное время выполнения
EXECUTIONS_TIMEOUT_MAX=7200
# Режим выполнения (main или queue)
EXECUTIONS_MODE=mainЛогирование
# Уровень логирования
N8N_LOG_LEVEL=info
# Формат логов
N8N_LOG_OUTPUT=consoleОбновление n8n
cd ~/n8n-data
# Остановка контейнеров
docker-compose down
# Обновление образов
docker-compose pull
# Запуск обновленных контейнеров
docker-compose up -d
# Проверка логов
docker-compose logs -f n8nРезервное копирование
Регулярное создание резервных копий критически важно для защиты ваших данных.
Что нужно бэкапить
- База данных PostgreSQL - содержит все воркфлоу, учетные данные и настройки
- Docker volumes - содержит все данные n8n
Автоматический бэкап базы данных
Создайте скрипт для автоматического бэкапа:
nano ~/backup-n8n.shВставьте следующий скрипт:
#!/bin/bash
# Настройки - ИЗМЕНИТЕ ЭТИ ЗНАЧЕНИЯ
BACKUP_DIR="$HOME/n8n-backups"
DB_NAME="n8n"
DB_USER="n8n"
N8N_DATA_DIR="$HOME/n8n-data"
DATE=$(date +%Y%m%d_%H%M%S)
# Создание директории для бэкапов
mkdir -p $BACKUP_DIR
# Переход в директорию с docker-compose.yml
cd $N8N_DATA_DIR
# Бэкап базы данных PostgreSQL из Docker контейнера
docker-compose exec -T postgres pg_dump -U $DB_USER $DB_NAME > $BACKUP_DIR/n8n_db_$DATE.sql
# Бэкап Docker volumes
docker run --rm -v n8n-data:/data -v $BACKUP_DIR:/backup alpine tar -czf /backup/n8n_docker_data_$DATE.tar.gz -C /data .
# Удаление старых бэкапов (старше 30 дней)
find $BACKUP_DIR -name "*.sql" -mtime +30 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
echo "Backup completed: $DATE"Сделайте скрипт исполняемым:
chmod +x ~/backup-n8n.shНастройка автоматического бэкапа через cron
# Открытие crontab
crontab -e
# Добавьте следующую строку для ежедневного бэкапа в 2 часа ночи
# Замените /home/username на ваш домашний каталог
0 2 * * * $HOME/backup-n8n.sh >> $HOME/backup-n8n.log 2>&1Восстановление из бэкапа
Для восстановления базы данных:
# Остановка n8n
cd ~/n8n-data
docker-compose down
# Восстановление базы данных
docker-compose up -d postgres
sleep 10
cat /path/to/backup/n8n_db_YYYYMMDD_HHMMSS.sql | docker-compose exec -T postgres psql -U n8n n8n
# Запуск n8n
docker-compose up -dМониторинг и логи
Просмотр логов
# Просмотр логов n8n
docker-compose logs -f n8n
# Просмотр логов PostgreSQL
docker-compose logs -f postgres
# Просмотр всех логов
docker-compose logs -fМониторинг ресурсов
# Использование ресурсов Docker контейнерами
docker stats
# Общее использование системных ресурсов
htop
# или
topРешение частых проблем
n8n не запускается
- Проверьте логи:
cd ~/n8n-data
docker-compose logs n8n- Убедитесь, что база данных запущена:
docker-compose ps- Проверьте порт 5678:
sudo netstat -tulpn | grep 5678Ошибка подключения к базе данных
- Проверьте переменные окружения
- Убедитесь, что PostgreSQL запущен
- Проверьте пароль и права доступа
Проблемы с SSL сертификатом
# Проверка сертификата
sudo certbot certificates
# Принудительное обновление
sudo certbot renew --force-renewalВысокая нагрузка на систему
- Проверьте количество активных воркфлоу
- Оптимизируйте воркфлоу (добавьте задержки, используйте очереди)
- Увеличьте ресурсы сервера
Оптимизация производительности
Для Docker установки
Отредактируйте docker-compose.yml и добавьте лимиты ресурсов:
n8n:
# ... остальная конфигурация
deploy:
resources:
limits:
cpus: '2'
memory: 2G
reservations:
cpus: '1'
memory: 1GНастройка PostgreSQL (опционально)
Если вы используете внешний PostgreSQL (не в Docker), можете оптимизировать его настройки.
Отредактируйте /etc/postgresql/*/main/postgresql.conf:
# Увеличение лимитов для n8n
shared_buffers = 256MB
effective_cache_size = 1GB
work_mem = 16MB
maintenance_work_mem = 128MB
max_connections = 100Перезапустите PostgreSQL:
sudo systemctl restart postgresqlПримечание: Для PostgreSQL в Docker эти настройки не требуются.
Включение режима очереди (Queue Mode)
Для обработки большого количества воркфлоу используйте Queue Mode с Redis:
Добавьте в docker-compose.yml:
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- redis-data:/data
n8n:
# ... остальная конфигурация
environment:
# ... остальные переменные
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
volumes:
redis-data:Безопасность
Рекомендации по безопасности
- Используйте сильные пароли для всех учетных записей
- Регулярно обновляйте n8n и систему
- Настройте файрвол (UFW)
- Используйте HTTPS (Let's Encrypt)
- Ограничьте доступ по IP (если возможно)
- Регулярно делайте бэкапы
- Включите двухфакторную аутентификацию (если доступно)
Ограничение доступа по IP в Nginx
Отредактируйте /etc/nginx/sites-available/n8n:
location / {
# Разрешить доступ только с определенных IP
allow 192.168.1.0/24;
allow 10.0.0.0/8;
deny all;
proxy_pass http://localhost:5678;
# ... остальная конфигурация
}Дополнительные ресурсы
Контрольный чеклист установки
- [ ] Сервер подготовлен и обновлен
- [ ] Docker и Docker Compose установлены
- [ ] Директория
~/n8n-dataсоздана - [ ] Файл
docker-compose.ymlнастроен с вашими данными - [ ] Пароль базы данных изменен
- [ ] Доменное имя указывает на IP сервера
- [ ] n8n запущен и доступен на порту 5678
- [ ] Nginx установлен и настроен с вашим доменом
- [ ] SSL сертификат получен через Certbot
- [ ] Файрвол настроен (UFW)
- [ ] n8n доступен по HTTPS через ваш домен
- [ ] Первый пользователь создан
- [ ] Скрипт автоматического бэкапа настроен
- [ ] Cron задание для бэкапа добавлено
- [ ] Логи проверены на наличие ошибок
Поздравляем! Ваш n8n сервер готов к работе.
Следующие шаги
После успешной установки рекомендуется:
- Изучить базовые концепции - ознакомьтесь с руководством для начинающих
- Создать первый workflow - следуйте первым шагам
- Настроить подключения - узнайте как работать с credentials
- Изучить доступные nodes - посмотрите список доступных интеграций
Нужна помощь?
- Официальная документация: docs.n8n.io
- Форум сообщества: community.n8n.io
- GitHub Issues: github.com/n8n-io/n8n
- Discord сервер: Присоединяйтесь к сообществу