Для развертывания n8n на VPS пошагово в 2026 году необходимо выбрать подходящий сервер, например с Ubuntu 22.04 LTS, установить Docker Engine 25.0+ и Docker Compose 2.20+, а затем настроить контейнеры n8n с помощью файла docker-compose.yml. После запуска контейнеров производится конфигурирование веб-сервера (Nginx 1.27 или Caddy 2.7) как обратного прокси и получение SSL-сертификата от Let's Encrypt для безопасного доступа через HTTPS. Это обеспечивает надежную и изолированную среду для автоматизации рабочих процессов, позволяя эффективно управлять потоками данных.
Установка n8n на виртуальный частный сервер (VPS) предоставляет полный контроль над средой выполнения, что критически важно для гибкой настройки и обеспечения безопасности ваших автоматизаций. Вы получаете выделенные ресурсы, что исключает «шумных соседей» и гарантирует стабильную производительность. В отличие от облачных сервисов, самохостинг n8n на VPS часто оказывается более экономичным решением в долгосрочной перспективе, особенно для проектов с умеренными или высокими нагрузками. Например, базовый VPS с 2 ГБ ОЗУ и 2 ядрами ЦП можно арендовать за 5-15 долларов США в месяц по состоянию на апрель 2026 года.
Что такое n8n и почему VPS?
n8n – это мощный инструмент автоматизации рабочих процессов с открытым исходным кодом, который позволяет соединять различные онлайн-сервисы и приложения без написания большого количества кода. Он относится к категории low-code/no-code платформ, что делает его доступным для широкого круга пользователей, от разработчиков до бизнес-аналитиков. n8n предлагает обширную библиотеку интеграций с сотнями сервисов, включая CRM-системы, мессенджеры, базы данных и облачные хранилища.
Выбор VPS для размещения n8n обусловлен несколькими ключевыми преимуществами. Во-первых, VPS обеспечивает полную изоляцию ресурсов. Это означает, что n8n будет работать на выделенных CPU, RAM и дисковом пространстве, что гарантирует стабильность и предсказуемость производительности, независимо от активности других пользователей на физическом сервере. Во-вторых, вы получаете полный root-доступ к операционной системе, что позволяет устанавливать любое необходимое программное обеспечение, настраивать параметры безопасности и оптимизировать производительность под свои нужды. Для гибкого самохостинга с выделенными ресурсами многие выбирают VPS-хостинг, где можно полностью контролировать окружение.
Кроме того, размещение n8n на собственном VPS позволяет соблюдать строгие требования к конфиденциальности данных. Все данные, обрабатываемые n8n, остаются под вашим контролем, не проходя через сторонние облачные инфраструктуры. Это особенно важно для компаний, работающих с чувствительной информацией или регулируемых строгими нормативными актами, такими как GDPR или HIPAA. Самостоятельное управление сервером также дает возможность тонкой настройки сети и безопасности, что повышает общую устойчивость системы к внешним угрозам.
Подготовка VPS к установке n8n
Перед тем как приступить к установке n8n, необходимо правильно подготовить ваш виртуальный частный сервер. Этот этап включает выбор операционной системы и базовую настройку безопасности, что заложит фундамент для стабильной и защищенной работы автоматизаций.
Выбор операционной системы
Для развертывания n8n с использованием Docker наиболее подходящими операционными системами являются дистрибутивы на базе Linux. Ubuntu Server 22.04 LTS (Long Term Support) является отличным выбором, так как она поддерживается до апреля 2027 года и имеет обширное сообщество, что упрощает поиск решений при возникновении проблем. Альтернативой может быть Debian 12, который предлагает стабильность и поддерживается до июня 2028 года. Однако Ubuntu часто предпочитают из-за более свежих пакетов и простоты использования. Более подробное сравнение вы можете найти в нашей статье: Debian или Ubuntu для VPS: Детальное сравнение 2026 года.
Начальная настройка безопасности
После развертывания VPS первым шагом всегда должна быть настройка базовой безопасности. Это включает обновление всех системных пакетов, создание нового пользователя с ограниченными правами и настройку доступа по SSH-ключам вместо паролей, что значительно повышает устойчивость к брутфорс-атакам. Отключите вход для пользователя root по SSH и измените стандартный порт SSH (22) на другой, менее распространенный, чтобы уменьшить количество автоматических атак. Подробный гайд по настройке безопасности можно найти здесь: Как настроить VPS на Ubuntu 24.04 пошагово: Полное руководство 2026.
Обязательно настройте брандмауэр Uncomplicated Firewall (UFW) для ограничения входящих соединений. По умолчанию он должен разрешать только SSH, HTTP (порт 80) и HTTPS (порт 443). Все остальные порты должны быть закрыты. Это минимизирует поверхность атаки и защищает ваш сервер от несанкционированного доступа. Дополнительные сведения о настройке UFW доступны в официальной документации Ubuntu по UFW.
sudo apt update && sudo apt upgrade -y
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo ufw statusЭти команды обновят систему, разрешат доступ по SSH, HTTP и HTTPS, затем активируют брандмауэр UFW и покажут его текущий статус. Убедитесь, что после активации UFW вы все еще можете подключиться по SSH.
Установка Docker и Docker Compose
Для развертывания n8n рекомендуется использовать Docker и Docker Compose. Это позволяет изолировать приложение со всеми его зависимостями в контейнерах, упрощает управление, обновление и масштабирование. Docker Engine – это платформа для запуска контейнеров, а Docker Compose – инструмент для определения и запуска многоконтейнерных Docker-приложений.
Установка Docker Engine
Установка Docker Engine на Ubuntu 22.04 LTS относительно проста и лучше всего выполняется с использованием официального репозитория Docker. Это гарантирует получение самых свежих и стабильных версий. По состоянию на апрель 2026 года, актуальная версия Docker Engine – 25.0+. Следующие команды установят все необходимые компоненты:
sudo apt update && sudo apt upgrade -y
sudo apt install ca-certificates curl gnupg -y
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
sudo usermod -aG docker $USER
newgrp docker
docker run hello-worldЭти команды сначала добавляют официальный GPG-ключ Docker и репозиторий в вашу систему, затем устанавливают Docker Engine, CLI, containerd и плагины Docker Buildx и Docker Compose. Последние две команды добавляют текущего пользователя в группу docker, чтобы вы могли запускать команды Docker без sudo, и проверяют установку. Подробные инструкции можно найти в официальной документации Docker.
Установка Docker Compose
Начиная с Docker Engine версии 20.10, Docker Compose интегрирован как плагин docker compose (с пробелом). Он устанавливается автоматически вместе с Docker Engine, как показано в предыдущем шаге, через пакет docker-compose-plugin. Это упрощает процесс, поскольку больше не требуется отдельная установка Docker Compose как автономного исполняемого файла. Убедитесь, что установлены актуальные версии:
docker --version
docker compose versionВывод должен показать установленные версии Docker Engine (например, Docker version 25.0.3, build 4de4348) и Docker Compose (например, Docker Compose version v2.24.5). Если docker compose version выдает ошибку, перепроверьте шаг установки docker-compose-plugin.
Развертывание n8n с использованием Docker Compose
После установки Docker и Docker Compose можно перейти к развертыванию n8n. Мы будем использовать файл docker-compose.yml для определения сервисов n8n и PostgreSQL, а также для управления их взаимодействием.
Создание конфигурации Docker Compose
Создайте новую директорию для вашего проекта n8n и внутри нее два файла: docker-compose.yml и .env. Файл docker-compose.yml будет содержать описание сервисов, а .env – переменные окружения, включая конфиденциальные данные.
mkdir n8n-docker
cd n8n-docker
nano docker-compose.ymlВставьте следующее содержимое в docker-compose.yml. Эта конфигурация запускает n8n вместе с базой данных PostgreSQL, что является рекомендуемым подходом для продакшн-среды, поскольку SQLite (используемая по умолчанию) не предназначена для высоконагруженных систем и может приводить к проблемам с производительностью и стабильностью.
version: '3.8'
services:
n8n:
image: n8n.io/n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- VUE_APP_URL_BASE_API=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=${N8N_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
- GENERIC_TIMEZONE=Europe/Moscow # Или ваш часовой пояс
- DB_TYPE=postgresdb # Используем PostgreSQL для стабильности
- DB_POSTGRES_HOST=postgres
- DB_POSTGRES_PORT=5432
- DB_POSTGRES_DATABASE=n8n
- DB_POSTGRES_USER=n8n
- DB_POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:14
restart: unless-stopped
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:Затем создайте файл .env в той же директории и добавьте следующие переменные. Обязательно замените значения-заполнители на свои собственные, надежные пароли и доменное имя. Эти переменные будут подставлены в docker-compose.yml при запуске.
nano .envDOMAIN_NAME=yourdomain.com
SUBDOMAIN=n8n
N8N_USER=admin
N8N_PASSWORD=YourStrongN8nPassword
POSTGRES_PASSWORD=YourStrongPostgresPasswordЗапуск n8n
После создания файлов docker-compose.yml и .env можно запустить n8n и PostgreSQL в фоновом режиме. Перейдите в директорию, где находятся эти файлы, и выполните команду:
docker compose up -dЭта команда создаст и запустит два Docker-контейнера – один для n8n и один для PostgreSQL, а также соответствующие тома Docker для хранения данных. Флаг -d означает запуск в “detached” режиме, то есть в фоновом режиме, позволяя вам выйти из терминала без остановки контейнеров.
Проверить статус запущенных контейнеров можно командой docker compose ps. Убедитесь, что оба контейнера находятся в состоянии “Up”. На этом этапе n8n будет доступен на порту 5678 вашего VPS, но напрямую из интернета он пока не доступен, так как UFW блокирует этот порт для внешних соединений.
Настройка внешнего доступа и HTTPS
Для безопасного доступа к n8n из браузера мы настроим Nginx (или Caddy) как обратный прокси-сервер и получим SSL-сертификат от Let's Encrypt. Это обеспечит шифрование трафика через HTTPS и позволит использовать доменное имя вместо IP-адреса и порта. Nginx 1.27, выпущенный в августе 2024 года, предлагает отличную производительность и безопасность. Сравнение Nginx и Caddy можно найти здесь: Nginx или Caddy для малого VPS: Сравнение и бенчмарк 2026.
- Установите Nginx:
sudo apt install nginx -y - Создайте конфигурационный файл Nginx:
Создайте новый файл для n8n в директории/etc/nginx/sites-available/, напримерn8n.conf. Заменитеn8n.yourdomain.comна ваш поддомен и домен.sudo nano /etc/nginx/sites-available/n8n.confserver {
listen 80;
listen [::]:80;
server_name n8n.yourdomain.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name n8n.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/n8n.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.yourdomain.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/n8n.yourdomain.com/chain.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256";
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "no-referrer-when-downgrade";
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_buffering off;
proxy_request_buffering off;
proxy_read_timeout 900s; # Увеличьте по необходимости
client_max_body_size 50M; # Увеличьте по необходимости
}
} - Активируйте конфигурацию и проверьте синтаксис:
sudo ln -s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx - Получите SSL-сертификат с помощью Certbot:
Убедитесь, что ваш DNS-запись дляn8n.yourdomain.comуказывает на IP-адрес вашего VPS. Затем установите Certbot и получите сертификат. Более подробную информацию о конфигурации Nginx можно найти в документации Nginx, а о Certbot в документации Let's Encrypt.sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d n8n.yourdomain.com
sudo systemctl reload nginx
Certbot автоматически изменит конфигурацию Nginx для использования нового SSL-сертификата и настроит автоматическое обновление. Теперь n8n должен быть доступен по адресу https://n8n.yourdomain.com.
Настройка n8n и первые шаги
После успешного развертывания n8n на вашем VPS, пришло время войти в веб-интерфейс и выполнить первоначальную настройку. Это позволит вам создать первого пользователя и начать работу с автоматизациями.
Доступ к веб-интерфейсу
Откройте ваш веб-браузер и перейдите по адресу https://n8n.yourdomain.com (замените на свой домен). Вы должны увидеть страницу входа n8n. Используйте логин (N8N_USER) и пароль (N8N_PASSWORD), которые вы указали в файле .env. После успешного входа вы попадете в главное рабочее пространство n8n, где сможете начать создавать свои первые рабочие процессы.
При первом входе n8n может попросить вас пройти краткий процесс настройки, который включает принятие условий использования и, возможно, выбор предпочтений. Этот процесс занимает всего несколько минут. Убедитесь, что вы сохранили свои учетные данные в безопасном месте, так как они будут использоваться для доступа к вашей инсталляции n8n.
Создание первого рабочего процесса
После входа в систему вы увидите пустой холст, готовый к созданию рабочих процессов. Чтобы ознакомиться с основами, попробуйте создать простой тестовый рабочий процесс: например, который отправляет уведомление в Slack или Telegram при срабатывании вебхука. Это поможет вам понять, как соединять узлы (nodes), настраивать их параметры и тестировать выполнение потоков.
n8n предлагает интуитивно понятный интерфейс перетаскивания (drag-and-drop) для создания рабочих процессов. Вы можете начать с узла «Webhook» для запуска рабочего процесса по внешнему запросу, затем добавить узел «HTTP Request» для взаимодействия с API другого сервиса, и завершить узлом «Respond to Webhook» для отправки ответа. Каждый узел имеет свои настройки, которые позволяют тонко контролировать его поведение. Экспериментируйте с различными узлами и их конфигурациями, чтобы понять возможности платформы.
Обеспечение безопасности и обслуживание n8n
Развертывание n8n – это только начало. Для долгосрочной и надежной работы необходимо регулярно уделять внимание безопасности и обслуживанию системы. Это включает правильную настройку брандмауэра, регулярное резервное копирование данных и своевременное обновление n8n.
Настройка брандмауэра для n8n
Хотя мы уже настроили UFW на начальном этапе, важно убедиться, что он правильно защищает вашу установку n8n. Убедитесь, что разрешен только входящий трафик на порты 80 (HTTP) и 443 (HTTPS), которые используются Nginx. Порт 5678, на котором работает сам контейнер n8n, должен быть доступен только с localhost (то есть, только для Nginx на том же сервере). Это предотвращает прямой доступ к n8n, минуя обратный прокси и SSL-шифрование.
Проверить текущие правила UFW можно командой sudo ufw status verbose. Если вы обнаружите, что порт 5678 открыт для внешних IP-адресов, немедленно закройте его, используя sudo ufw deny 5678/tcp, а затем разрешите доступ только для Nginx через localhost. Это критически важный шаг для предотвращения несанкционированного доступа к вашему экземпляру n8n.
Резервное копирование данных n8n
Регулярное резервное копирование данных — это не опция, а необходимость. Ваши рабочие процессы n8n и учетные данные хранятся в томах Docker, поэтому их сохранность критически важна.
Данные n8n (рабочие процессы, учетные данные) и PostgreSQL (база данных) хранятся в томах Docker, определенных в docker-compose.yml (n8n_data и postgres_data). Для резервного копирования рекомендуется временно остановить контейнеры, чтобы избежать повреждения данных, а затем скопировать содержимое этих томов.
cd ~/n8n-docker # Перейдите в директорию с docker-compose.yml
docker compose down # Остановить контейнеры
sudo tar -czvf n8n_backup_$(date +%Y%m%d%H%M%S).tar.gz n8n_data postgres_data
docker compose up -d # Запустить контейнеры сноваЭта последовательность команд сначала останавливает сервисы n8n и PostgreSQL, затем создает сжатый архив с содержимым томов данных и, наконец, перезапускает сервисы. Рекомендуется хранить резервные копии на отдельном сервере или в облачном хранилище. Рассмотрите использование инструментов, таких как rsync или специализированных решений для резервного копирования Docker-томов.
Обновление n8n
Регулярное обновление n8n до последней версии обеспечивает доступ к новым функциям, исправлениям ошибок и улучшениям безопасности. Процесс обновления при использовании Docker Compose очень прост:
cd ~/n8n-docker # Перейдите в директорию с docker-compose.yml
docker compose pull # Загрузить последнюю версию образа n8n
docker compose up -d # Пересоздать контейнер n8n с новым образомКоманда docker compose pull загружает последнюю версию образа n8n из Docker Hub. Затем docker compose up -d остановит старый контейнер n8n, удалит его и запустит новый контейнер с обновленным образом, при этом сохраняя все данные в томе n8n_data. Перед обновлением всегда рекомендуется сделать резервную копию. Более подробные инструкции по обновлению можно найти в инструкциях по обновлению n8n в Docker.





