N8N — это платформа для автоматизации процессов. Она позволяет соединять различные приложения, сервисы и базы данных, создавая автоматические сценарии — от отправки сообщений в Telegram до интеграции с CRM и Google Sheets.

Главное преимущество N8N — открытый исходный код и возможность установки на свой сервер.
В отличие от облачной версии, локальная установка даёт:

  • полный контроль над данными,
  • гибкость в настройке и интеграциях,
  • отсутствие ограничений по числу процессов,
  • возможность использовать собственные плагины и API.

В этом руководстве подробно разберём, как установить N8N на VPS при помощи Docker и Portainer, а также как подключить домен и SSL через Nginx Proxy Manager.

Подготовка VPS

Для начала создаём виртуальный сервер. В качестве примера будем использовать облачный сервер от Timeweb Cloud.

Для работы с N8N выберу конфигурацию:

  • 2 CPU
  • 4 ГБ RAM
  • 50 ГБ SSD
  • ОС: Ubuntu 22.04

Screenshot 1

После создания сервера запишите:

  • IP-адрес — по нему будем подключаться,
  • root-пароль — используется для входа по SSH.

Подключиться можно через программу MobaXterm (Windows) или командой в терминале (Linux/macOS):

ssh root@<ваш_IP>

Screenshot 2

После успешного входа вы попадёте в консоль сервера — именно здесь будем выполнять все команды установки.

Настройка домена

N8N можно открыть просто по IP, но лучше сразу использовать собственный домен — так вы сможете подключить HTTPS и работать безопасно.

Домен можно купить у любого регистратора (например, reg.ru, Namecheap, GoDaddy).
В этом примере используется домен toni-wheel.ru.

В настройках DNS указываем:

A-запись: toni-wheel.ru → 90.156.211.183
CNAME: www → toni-wheel.ru

Screenshot 3

После сохранения подождите 5–15 минут, чтобы DNS обновился. Проверить можно с помощью команды:

ping toni-wheel.ru

Если в ответе отображается IP вашего сервера — значит всё работает.

Установка Docker и Portainer

Docker нужен для разворачивания N8N и сопутствующих сервисов в изолированных контейнерах.
Portainer — это панель управления Docker через веб-интерфейс, где можно запускать и контролировать контейнеры без командной строки.

Установка Docker

apt update
apt upgrade -y
apt install docker.io -y

Проверяем, что всё установлено:

docker -v

Установка Docker Compose

apt install curl -y
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
curl -L "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker compose -v

Установка Portainer

mkdir /opt/portainer
cd /opt/portainer

Создаём файл portainer-compose.yaml:

services:
  portainer:
    container_name: portainer
    image: portainer/portainer-ce:lts
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    ports:
      - 9443:9443
      - 8000:8000

volumes:
  portainer_data:
    name: portainer_data

networks:
  default:
    name: portainer_network

Запускаем Portainer:

docker-compose -f portainer-compose.yaml up -d
docker ps -a

Открываем в браузере:

https://<IP_сервера>:9443/

Screenshot 4

При первом запуске система попросит создать логин и пароль администратора.
После входа появится главный экран Portainer.

Нажимаем Get Started, выбираем окружение Local — это и будет управление Docker на нашем сервере.

Screenshot 6

Установка N8N

📢 Подписывайтесь на наш Telegram-канал.

Там вы найдете анонсы обучающих статей и видео, готовый код для ваших проектов и увлекательные курсы. Ничего лишнего — только практика, вдохновение и развитие.

👉 https://t.me/codelab_channel

Перед установкой проверим, свободен ли порт 5678:

netstat -tuln | grep 5678

Создание стека N8N

В Portainer переходим в раздел StacksAdd stack.

Screenshot 7

Придумываем имя, например n8n, и вставляем в редактор следующую конфигурацию:

version: "3.8"

volumes:
  db_storage:
  n8n_storage:

services:
  postgres:
    image: postgres:16
    restart: always
    environment:
      - POSTGRES_USER
      - POSTGRES_PASSWORD
      - POSTGRES_DB
      - POSTGRES_NON_ROOT_USER
      - POSTGRES_NON_ROOT_PASSWORD
    volumes:
      - db_storage:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      retries: 10

  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
    ports:
      - "5678:5678"
    links:
      - postgres
    volumes:
      - n8n_storage:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy

Screenshot 8

Добавление переменных окружения

Внизу страницы включаем Advanced mode и добавляем переменные:

POSTGRES_USER=n8nuser
POSTGRES_PASSWORD=n8npass123
POSTGRES_DB=n8n
POSTGRES_NON_ROOT_USER=n8nuser
POSTGRES_NON_ROOT_PASSWORD=n8npass123

Screenshot 9

Нажимаем Deploy the stack и ждём, пока контейнеры запустятся.

Screenshot 10

После запуска N8N будет доступен по адресу:

http://<IP_сервера>:5678

Подключение домена и HTTPS через Nginx Proxy Manager

Чтобы N8N открывался по доменному имени с HTTPS, установим Nginx Proxy Manager.

В Portainer снова идём в StacksAdd stack и вставляем:

version: "3.8"

services:
  nginx:
    image: jc21/nginx-proxy-manager:latest
    container_name: nginx_proxy_manager
    restart: unless-stopped
    ports:
      - "80:80"
      - "81:81"
      - "443:443"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

После запуска панель Nginx Proxy Manager будет доступна по адресу:

http://<IP_сервера>:81

Логин по умолчанию:

Email: admin@example.com
Password: changeme

Screenshot 13

Добавление прокси-хоста

  1. В панели Nginx Proxy Manager откройте Proxy HostsAdd Proxy Host.
  2. Укажите: Domain Names: toni-wheel.ru; Forward Hostname/IP: IP вашего сервера; Forward Port: 5678
  3. Включите Websockets Support и Block Common Exploits.

Screenshot 14

Screenshot 15

Во вкладке SSL выберите Request a new SSL Certificate и поставьте галочку Force SSL.

Screenshot 16

Теперь можно открыть:

https://toni-wheel.ru

Если всё прошло успешно — вы увидите страницу регистрации N8N.

Screenshot 11

Активация лицензии

После регистрации на почту придёт письмо с лицензионным ключом.
Откройте N8N, перейдите в настройки и активируйте ключ.

Screenshot 12

Завершение и советы

Поздравляю, теперь у вас полностью рабочая установка N8N с базой PostgreSQL и HTTPS-доменом.

Что важно знать:

  1. При первом запуске создайте учётную запись администратора.
  2. Настройте автоматическое резервное копирование данных из каталога /home/node/.n8n.
  3. Обновления N8N можно выполнять прямо из Portainer — через кнопку Recreate или с помощью docker-compose pull.
  4. Для защиты можно установить Fail2Ban или UFW и закрыть ненужные порты.

Комментарии

0

Без регистрации и смс