Установка n8n: полная инструкция

Пошаговое руководство по установке n8n через Docker, локально и на VPS. Настройка PostgreSQL, SSL-сертификатов и резервного копирования.

20 минут чтения Обновлено: 06.12.2025

Системные требования

Перед установкой n8n убедитесь, что ваш сервер соответствует минимальным требованиям:

Минимальные

  • 1 vCPU
  • 2 GB RAM
  • 20 GB диск
  • Ubuntu 20.04+ / Debian 11+

Для AI-проектов

  • 4+ vCPU
  • 8+ GB RAM
  • 100+ GB NVMe SSD
  • GPU (опционально)

Какой VPS выбрать?

Для России рекомендуем: Timeweb Cloud, Selectel, REG.RU. Для международных проектов: Hetzner, DigitalOcean, Vultr. Минимальный тариф от 500₽/мес подойдёт для начала.

Установка через Docker (быстрый старт)

Самый простой способ попробовать n8n — запустить его в Docker одной командой:

Bash
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: Создайте структуру директорий

Bash
mkdir -p ~/n8n && cd ~/n8n
mkdir -p data postgres-data

Шаг 2: Создайте docker-compose.yml

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

.env
# Замените на свои значения
N8N_HOST=n8n.yourdomain.com
POSTGRES_PASSWORD=your_secure_password_here
N8N_BASIC_AUTH_PASSWORD=your_admin_password_here

Шаг 4: Запустите n8n

Bash
docker-compose up -d

# Проверьте статус
docker-compose ps

# Посмотрите логи
docker-compose logs -f n8n

Локальная установка через npm

Если Docker вам не подходит, можно установить n8n глобально через npm:

Предварительные требования

  • Node.js 18+ (рекомендуется LTS версия)
  • npm или pnpm

Установка

Bash
# Установка n8n глобально
npm install -g n8n

# Запуск
n8n start

# Или с туннелем для тестирования webhooks
n8n start --tunnel

Установка на Windows

PowerShell
# Установите Node.js с https://nodejs.org/
# Откройте PowerShell от администратора

npm install -g n8n
n8n start

Установка на macOS

Bash
# Через 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: Подготовка сервера

Bash
# Обновление системы
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: Настройка файрволла

Bash
# Базовая настройка 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

docker-compose.yml
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. Создайте скрипт автоматического бэкапа:

backup.sh
#!/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

Bash
# Откройте 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 и создать первые автоматизации. Полная поддержка и документация.

0 просмотров