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

После создания сервера запишите:
- IP-адрес — по нему будем подключаться,
- root-пароль — используется для входа по SSH.
Подключиться можно через программу MobaXterm (Windows) или командой в терминале (Linux/macOS):
ssh root@<ваш_IP>

После успешного входа вы попадёте в консоль сервера — именно здесь будем выполнять все команды установки.
Настройка домена
N8N можно открыть просто по IP, но лучше сразу использовать собственный домен — так вы сможете подключить HTTPS и работать безопасно.
Домен можно купить у любого регистратора (например, reg.ru, Namecheap, GoDaddy).
В этом примере используется домен toni-wheel.ru.
В настройках DNS указываем:
A-запись: toni-wheel.ru → 90.156.211.183
CNAME: www → toni-wheel.ru

После сохранения подождите 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/

При первом запуске система попросит создать логин и пароль администратора.
После входа появится главный экран Portainer.
Нажимаем Get Started, выбираем окружение Local — это и будет управление Docker на нашем сервере.

Установка N8N
📢 Подписывайтесь на наш Telegram-канал.
Там вы найдете анонсы обучающих статей и видео, готовый код для ваших проектов и увлекательные курсы. Ничего лишнего — только практика, вдохновение и развитие.
Перед установкой проверим, свободен ли порт 5678:
netstat -tuln | grep 5678
Создание стека N8N
В Portainer переходим в раздел Stacks → Add stack.

Придумываем имя, например 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

Добавление переменных окружения
Внизу страницы включаем Advanced mode и добавляем переменные:
POSTGRES_USER=n8nuser
POSTGRES_PASSWORD=n8npass123
POSTGRES_DB=n8n
POSTGRES_NON_ROOT_USER=n8nuser
POSTGRES_NON_ROOT_PASSWORD=n8npass123

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

После запуска N8N будет доступен по адресу:
http://<IP_сервера>:5678
Подключение домена и HTTPS через Nginx Proxy Manager
Чтобы N8N открывался по доменному имени с HTTPS, установим Nginx Proxy Manager.
В Portainer снова идём в Stacks → Add 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

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


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

Теперь можно открыть:
https://toni-wheel.ru
Если всё прошло успешно — вы увидите страницу регистрации N8N.

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

Завершение и советы
Поздравляю, теперь у вас полностью рабочая установка N8N с базой PostgreSQL и HTTPS-доменом.
Что важно знать:
- При первом запуске создайте учётную запись администратора.
- Настройте автоматическое резервное копирование данных из каталога /home/node/.n8n.
- Обновления N8N можно выполнять прямо из Portainer — через кнопку Recreate или с помощью docker-compose pull.
- Для защиты можно установить Fail2Ban или UFW и закрыть ненужные порты.
03.11.2025
0
77
Комментарии
0