Системные требования
Перед установкой n8n убедитесь, что ваш сервер соответствует минимальным требованиям:
Минимальные
- 1 vCPU
- 2 GB RAM
- 20 GB диск
- Ubuntu 20.04+ / Debian 11+
Рекомендуемые
- 2+ vCPU
- 4+ GB RAM
- 40+ GB SSD
- Ubuntu 22.04 LTS
Для AI-проектов
- 4+ vCPU
- 8+ GB RAM
- 100+ GB NVMe SSD
- GPU (опционально)
Какой VPS выбрать?
Для России рекомендуем: Timeweb Cloud, Selectel, REG.RU. Для международных проектов: Hetzner, DigitalOcean, Vultr. Минимальный тариф от 500₽/мес подойдёт для начала.
Установка через Docker (быстрый старт)
Самый простой способ попробовать n8n — запустить его в Docker одной командой:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
После запуска откройте в браузере: http://localhost:5678
Только для тестирования!
Этот способ не подходит для production. Данные хранятся в SQLite, нет SSL, при перезапуске контейнера могут возникнуть проблемы. Для production используйте Docker Compose.
Docker Compose (рекомендуется)
Для production-установки используйте Docker Compose с PostgreSQL:
Шаг 1: Создайте структуру директорий
mkdir -p ~/n8n && cd ~/n8n
mkdir -p data postgres-data
Шаг 2: Создайте docker-compose.yml
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Europe/Moscow
- TZ=Europe/Moscow
# PostgreSQL
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=your_secure_password
# Безопасность
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=your_admin_password
volumes:
- ./data:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:15-alpine
restart: always
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=your_secure_password
- POSTGRES_DB=n8n
volumes:
- ./postgres-data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
Шаг 3: Создайте файл .env
# Замените на свои значения
N8N_HOST=n8n.yourdomain.com
POSTGRES_PASSWORD=your_secure_password_here
N8N_BASIC_AUTH_PASSWORD=your_admin_password_here
Шаг 4: Запустите n8n
docker-compose up -d
# Проверьте статус
docker-compose ps
# Посмотрите логи
docker-compose logs -f n8n
Локальная установка через npm
Если Docker вам не подходит, можно установить n8n глобально через npm:
Предварительные требования
- Node.js 18+ (рекомендуется LTS версия)
- npm или pnpm
Установка
# Установка n8n глобально
npm install -g n8n
# Запуск
n8n start
# Или с туннелем для тестирования webhooks
n8n start --tunnel
Установка на Windows
# Установите Node.js с https://nodejs.org/
# Откройте PowerShell от администратора
npm install -g n8n
n8n start
Установка на macOS
# Через Homebrew
brew install node
npm install -g n8n
n8n start
# Или через nvm (рекомендуется)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install --lts
npm install -g n8n
n8n start
Полная настройка на VPS
Пошаговая инструкция для чистого Ubuntu 22.04 сервера:
Шаг 1: Подготовка сервера
# Обновление системы
sudo apt update && sudo apt upgrade -y
# Установка необходимых пакетов
sudo apt install -y curl git wget
# Установка Docker
curl -fsSL https://get.docker.com | sh
# Добавление пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker
# Установка 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
Шаг 2: Настройка файрволла
# Базовая настройка UFW
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Шаг 3: Настройка DNS
Направьте домен (например, n8n.yourdomain.com) на IP-адрес вашего сервера через A-запись в DNS.
Шаг 4: Разверните n8n
Используйте docker-compose.yml из раздела выше, затем настройте SSL.
Настройка SSL-сертификата
Для production обязательно нужен HTTPS. Используем Traefik как reverse proxy с автоматическим получением Let's Encrypt сертификатов.
docker-compose.yml с Traefik
version: '3.8'
services:
traefik:
image: traefik:v2.10
restart: always
command:
- "--api.dashboard=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencrypt.acme.email=your@email.com"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
n8n:
image: n8nio/n8n:latest
restart: always
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Europe/Moscow
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- ./n8n-data:/home/node/.n8n
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(`n8n.yourdomain.com`)"
- "traefik.http.routers.n8n.entrypoints=websecure"
- "traefik.http.routers.n8n.tls.certresolver=letsencrypt"
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
depends_on:
- postgres
postgres:
image: postgres:15-alpine
restart: always
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=n8n
volumes:
- ./postgres-data:/var/lib/postgresql/data
Не забудьте
Замените n8n.yourdomain.com на ваш домен и your@email.com на вашу почту для уведомлений от Let's Encrypt.
Настройка PostgreSQL
PostgreSQL — рекомендуемая база данных для production. Основные переменные окружения:
# Тип базы данных
DB_TYPE=postgresdb
# Подключение
DB_POSTGRESDB_HOST=postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=your_secure_password
# Опционально: SSL для подключения к внешней БД
DB_POSTGRESDB_SSL_ENABLED=true
DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED=false
Резервное копирование
Регулярный backup критически важен для production. Создайте скрипт автоматического бэкапа:
#!/bin/bash
# Настройки
BACKUP_DIR="/backups/n8n"
DATE=$(date +%Y-%m-%d_%H-%M)
N8N_DIR="/home/user/n8n"
# Создание директории для бэкапов
mkdir -p $BACKUP_DIR
# Бэкап PostgreSQL
docker exec n8n-postgres-1 pg_dump -U n8n n8n > $BACKUP_DIR/db_$DATE.sql
# Бэкап файлов n8n (credentials, workflows export)
tar -czf $BACKUP_DIR/n8n_data_$DATE.tar.gz $N8N_DIR/n8n-data
# Удаление старых бэкапов (старше 30 дней)
find $BACKUP_DIR -type f -mtime +30 -delete
echo "Backup completed: $DATE"
Автоматизация через cron
# Откройте crontab
crontab -e
# Добавьте строку (бэкап каждый день в 3:00)
0 3 * * * /home/user/n8n/backup.sh >> /var/log/n8n-backup.log 2>&1
Часто задаваемые вопросы
Минимально: 1 CPU, 2 GB RAM, 20 GB диск. Рекомендуется: 2+ CPU, 4+ GB RAM, SSD. Для production с множеством workflow и AI-интеграциями лучше иметь 4+ GB RAM и быстрый SSD.
Docker — рекомендуемый способ установки. Он обеспечивает изоляцию, простое обновление, легкое резервное копирование и переносимость. npm-установка подходит только для локальной разработки.
При использовании Docker: docker pull n8nio/n8n:latest && docker-compose down && docker-compose up -d. При npm: npm update -g n8n. Перед обновлением сделайте backup базы данных.
Да, для production обязательно. Без HTTPS webhooks не будут работать корректно, а данные будут передаваться в открытом виде. Используйте Let's Encrypt (бесплатно) через Traefik или Nginx.
Для production рекомендуется PostgreSQL. SQLite (по умолчанию) подходит только для тестирования. PostgreSQL обеспечивает надёжность, производительность и возможность масштабирования.
Нужна помощь с установкой n8n?
Мы поможем развернуть n8n на вашем сервере, настроить SSL, подключить PostgreSQL и создать первые автоматизации. Полная поддержка и документация.