Запустить n8n локально легко, но для полноценной работы — вебхуков, внешних интеграций, командного доступа — нужен домен и HTTPS. В этом гайде настроим n8n HTTPS через Nginx reverse proxy и бесплатный SSL от Let's Encrypt. n8n установка на VPS + настройка домена — пошаговый процесс.
Что нам понадобится
- VPS с Ubuntu 22.04 или 24.04 (минимум 2 ГБ RAM)
- Домен, направленный A-записью на IP сервера
- Docker и Docker Compose (установим)
Шаг 1: Установка n8n через Docker
Установка n8n на Ubuntu начинается с Docker. Установка n8n через Docker — самый надёжный способ для продакшена:
# Установить Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Проверить
docker compose version
Создайте директорию: mkdir -p ~/n8n && cd ~/n8n
Создайте docker-compose.yml. Установка n8n Docker — через Compose-файл:
version: "3.8"
services:
postgres:
image: postgres:15-alpine
restart: always
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- pg_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
retries: 5
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
WEBHOOK_URL: https://${DOMAIN}/
GENERIC_TIMEZONE: Europe/Moscow
N8N_HOST: ${DOMAIN}
N8N_PROTOCOL: https
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
volumes:
pg_data:
n8n_data:
Создайте .env:
POSTGRES_PASSWORD=ваш_пароль
N8N_ENCRYPTION_KEY=ваш_ключ_32_символа
DOMAIN=n8n.ваш-домен.ru
Запустите: docker compose up -d
Шаг 2: Nginx как настройка веб сервера Linux
Настройка веб сервера Linux через Nginx reverse proxy:
sudo apt update && sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/n8n
Конфиг (HTTP, без SSL на этом шаге):
server {
listen 80;
server_name n8n.ваш-домен.ru;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_read_timeout 3600s;
}
}
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Шаг 3: SSL через Let's Encrypt
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d n8n.ваш-домен.ru
sudo certbot renew --dry-run
Подключить n8n к домену: финальная проверка
Чтобы полностью подключить n8n к домену с HTTPS, перезапустите контейнеры: docker compose up -d --force-recreate
curl -I https://n8n.ваш-домен.ru
# HTTP/2 200 — работает!
Установка n8n на свой сервер: чеклист
При установке n8n на свой сервер:
- ✅ Docker установлен, порт 5678 закрыт снаружи (только 127.0.0.1)
- ✅ Nginx проксирует на 5678, слушает 80/443
- ✅ SSL-сертификат получен через Certbot
- ✅ WEBHOOK_URL = https://ваш-домен
- ✅ Автообновление сертификата работает
Частые ошибки
502 Bad Gateway
n8n не запустился. Проверьте: docker compose logs n8n.
Вебхуки не работают
WEBHOOK_URL указан неверно. Должен быть публичный HTTPS URL.
Детальная установка — в статье Установка n8n на Ubuntu 24.04.