Как установить n8n на VPS
Как установить n8n на VPS: Пошаговая инструкция для самостоятельной настройки

Публикуем гайд на установку n8n на виртуальных серверах XorekCloud.
Мы детально разберем процесс установки n8n на сервер под управлением Linux. Воспользуемся самым надежным и удобным методом — Docker Compose.
Шаг 1: Выбор и подготовка сервера
Если вы планируете n8n использовать вместе с ИИ, то рекомендуем взять локации в Германии, Финляндии или Нидерландах: развернуть нейронки будет проще. Вы можете начать с минимальной конфигурации: 1 vCPU / 2 ГБ ОЗУ. Этого точно хватит для тестирования и первого пользования. По необходимости можно увеличивать мощность сервера.
Требования:
- Операционная система: Ubuntu 22.04 / 24.04 LTS или Debian 11/12.
- Доступ по SSH (логин
rootили пользователь с правамиsudo).
Подключитесь к вашему серверу через любой SSH-клиент, у нас есть статьи на эту тему.
Шаг 2: Установка Docker и Docker Compose
Сначала необходимо установить среду контейнеризации. Вводим следующие команды в терминале:
Загружаем и выполняем официальный скрипт установки Docker
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh ./get-docker.sh
После завершения установки Docker, система автоматически настроит автозапуск службы. Проверим, что все работает корректно и добавим текущего пользователя в группу docker, чтобы избежать постоянного использования sudo:
Добавляем пользователя в группу
sudo usermod -aG docker $USER
Важно: Чтобы изменения вступили в силу, нужно перезайти в сессию SSH (выйти и зайти заново) или выполнить команду
newgrp docker.
Шаг 3: Создание структуры проекта
Создаем отдельную папку. Здесь мы будем хранить все настройки и данные n8n.
Создаем директорию и сразу переходим в нее
mkdir \~/n8n-app && cd \~/n8n-app
Шаг 4: Создание конфигурационного файла docker-compose.yml
Здесь будет храниться конфигурация запуска контейнеров. Создайте файл с помощью редактора nano:
nano docker-compose.yml
Скопируйте в открывшееся окно следующий код. Это конфигурация, включающая сам n8n и веб-сервер Traefik для автоматической обработки SSL-сертификатов (HTTPS).
services:   traefik:   image: "traefik"   restart: always   command:   \- "--api=true"   \- "--api.insecure=true"   \- "--providers.docker=true"   \- "--providers.docker.exposedbydefault=false"   \- "--entrypoints.web.address=:80"   \- "--entrypoints.web.http.redirections.entryPoint.to=websecure"   \- "--entrypoints.web.http.redirections.entrypoint.scheme=https"   \- "--entrypoints.websecure.address=:443"   \- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"   \- "--certificatesresolvers.mytlschallenge.acme.email=${SSL\_EMAIL}"   \- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"   ports:   \- "80:80"   \- "443:443"   volumes:   \- traefik\_data:/letsencrypt   \- /var/run/docker.sock:/var/run/docker.sock:ro
  n8n:   image: docker.n8n.io/n8nio/n8n   restart: always   ports:   \- "127.0.0.1:5678:5678"   labels:   \- traefik.enable=true   \- traefik.http.routers.n8n.rule=Host(\${SUBDOMAIN}.${DOMAIN_NAME}`) - traefik.http.routers.n8n.tls=true
  \- traefik.http.routers.n8n.entrypoints=web,websecure   \- traefik.http.routers.n8n.tls.certresolver=mytlschallenge   \- traefik.http.middlewares.n8n.headers.SSLRedirect=true   \- traefik.http.middlewares.n8n.headers.STSSeconds=315360000   \- traefik.http.middlewares.n8n.headers.browserXSSFilter=true   \- traefik.http.middlewares.n8n.headers.contentTypeNosniff=true   \- traefik.http.middlewares.n8n.headers.forceSTSHeader=true   \- traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN\_NAME}   \- traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true   \- traefik.http.middlewares.n8n.headers.STSPreload=true   \- traefik.http.routers.n8n.middlewares=n8n@docker   environment:   \- N8N\_HOST=${SUBDOMAIN}.${DOMAIN\_NAME}   \- N8N\_PORT=5678   \- N8N\_PROTOCOL=https   \- NODE\_ENV=production   \- WEBHOOK\_URL=https://${SUBDOMAIN}.${DOMAIN\_NAME}/   \- GENERIC\_TIMEZONE=${GENERIC\_TIMEZONE}   volumes:   \- n8n\_data:/home/node/.n8n   \- ./local-files:/files \
volumes:   n8n\_data:   traefik\_data:
Нажмите Ctrl+O для сохранения и Ctrl+X` для выхода из редактора.
Шаг 5: Настройка переменных окружения (.env)
Чтобы запустить систему с вашими личными данными (домен, почта), создадим файл .env:
nano .env
Вставьте следующий шаблон, заменив данные на свои собственные:
# Основной домен (например, my-site.ru)
DOMAIN\_NAME=ваш-домен.ru
# Поддомен для n8n (например, n8n)
# Если у вас нет поддомена, а только основной домен, раскомментируйте строку ниже и закомментируйте предыдущую
# SUBDOMAIN=
SUBDOMAIN=n8n
# Часовой пояс
GENERIC\_TIMEZONE=Europe/Moscow
# Ваш Email для уведомлений от Let's Encrypt (важно указать реальный!)
SSL\_EMAIL=your-email@example.com
Важные замечания по домену:
- Перед запуском убедитесь, что A-запись вашего домена (или поддомена
n8n.ваш-домен.ru) уже указывает на IP-адрес созданного VPS сервера. Это можно сделать в панели управления DNS вашего регистратора доменов. - Если вы планируете использовать домен второго уровня (просто
ваш-домен.ru), оставьте переменнуюSUBDOMAINпустой (удалите значениеn8n), а в файлеdocker-compose.ymlнайдите строки${SUBDOMAIN}.${DOMAIN_NAME}и удалите из них${SUBDOMAIN}., оставив только${DOMAIN_NAME}.
Шаг 6: Первый запуск системы
Теперь, когда все настройки выполнены, запускаем контейнеры в фоновом режиме:
docker compose up -d
Процесс скачивания образов и выпуска SSL-сертификата займет от 1 до 3 минут. Вы можете следить за процессом, выполнив команду (выйти из просмотра логов можно по Ctrl+C):
docker compose logs -f
Шаг 7: Доступ к интерфейсу и регистрация владельца
- Откройте браузер и перейдите по адресу
https://n8n.ваш-домен.ru(или вашему кастомному URL). - Соединение будет установлено по защищенному протоколу HTTPS (значок замка должен быть активен).
- При первом посещении откроется форма создания первого пользователя.Заполните поля: Email, Имя и Пароль. Этот аккаунт станет администратором инсталляции.
Поздравляем! Вы успешно настроили n8n на вашем VPS-сервере.
Нужна помощь? Обратитесь в поддержку XorekCloud. Здесь вам быстро помогут, решать вопросы и даже перенесут сервер с другого хостинга, если вы до сих пор не стали нашим клиентом.