EQVPS

Self-host n8n на VPS через Docker

Jun 15, 2026 · 2 min read · EQVPS Team

n8n — из тех инструментов, что начинаешь использовать слегка, а потом тихо пропускаешь через него половину своих операций. И тут «оно крутится на чужом облачном месте, с оплатой за каждое выполнение, а мои API-ключи живут на их серверах» начинает нравиться меньше. Self-host чинит все три пункта — фиксированная цена, нет лимита запусков, ключи остаются на вашем сервере. С Docker это работа на пятнадцать минут.

Сколько сервера реально нужно

Сначала честные цифры, чтобы не взять лишнего или мало:

В покое n8n не прожорлив к CPU; всплески — во время прогонов. 2 ядра хватает большинству. (Подробнее про подбор под нагрузку — в гайде по sizing.)

Установка через Docker

На свежем Ubuntu/Debian ставим Docker:

curl -fsSL https://get.docker.com | sudo sh

Папка и docker-compose.yml — n8n с постоянным томом и Postgres:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.yourdomain.com
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.yourdomain.com/
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=db
      - DB_POSTGRESDB_PASSWORD=change-me
    volumes:
      - ./n8n-data:/home/node/.n8n
    depends_on: [db]
  db:
    image: postgres:16
    restart: always
    environment:
      - POSTGRES_PASSWORD=change-me
      - POSTGRES_DB=n8n
    volumes:
      - ./db-data:/var/lib/postgresql/data
sudo docker compose up -d

Два момента стоит подчеркнуть: тома (n8n-data, db-data) — то, что сохраняет ваши сценарии при перезапусках и апгрейдах, не пропускайте их. И n8n привязан к 127.0.0.1, а не 0.0.0.0 — он не торчит в интернет напрямую. Это нарочно; доступ безопасно решает следующий шаг.

Доступ: HTTPS или туннель

Закройте сервер и держите аптайм

n8n хранит ваши API-ключи и креды, так что машина должна быть закрыта: пройдите чек-лист безопасности (SSH-ключи, файрвол, без пароля) до того, как класть реальные креды. restart: always в compose уже означает, что Docker поднимает n8n после падения или перезагрузки — аптайм закрыт.

Стоит ли?

Будьте честны с собой насчёт объёма. Гоняете автоматизации постоянно — self-host выигрывает по цене (фикс vs за выполнение) и снимает лимиты. Пара флоу в месяц — облачное место меньше мороки. Но аргумент контроля стоит в любом случае: ваши сценарии, ваши данные, ваши ключи — на вашем сервере, не в аренде. Для большинства, кто всерьёз взялся за n8n, это и есть решающий фактор.

Сервер на 2 ГБ, compose-файл, домен (или туннель) — и у вас свой хаб автоматизаций, оплачиваемый криптой без KYC, живой за минуты.

FAQ

Сколько RAM нужно self-hosted n8n?

Около 2 ГБ — комфортный sweet spot для n8n плюс его база Postgres плюс обычные сценарии. Запустится и в 1 ГБ при лёгких сценариях, но на больших прогонах это почувствуется. Тяжёлые параллельные запуски или крупные данные — берите 4 ГБ.

Нужен ли Docker для self-host n8n?

Это самый простой путь — один compose-файл даёт n8n, базу и постоянное хранилище, а апгрейд — это один pull. Можно поставить и через npm, но Docker избавляет от головной боли с зависимостями и обновлениями.

Self-host n8n дешевле, чем n8n cloud?

Если гоняете автоматизации постоянно — да: фиксированный VPS в месяц бьёт оплату за выполнение, и нет лимита на сценарии/запуски. Для пары прогонов в месяц облачное место проще. Вторая причина self-host — контроль: данные и API-ключи не покидают ваш сервер.

Нужен ли домен для n8n?

Для нод с OAuth (Google и т.п.) и чистого HTTPS — да: направьте домен на сервер и поставьте n8n за реверс-прокси с сертификатом. Для чисто внутреннего использования можно ходить через SSH-туннель без домена.

n8n пойдёт на NAT-VPS или нужен выделенный IP?

Внутреннее/через SSH-туннель работает на NAT. Если нужен публичный URL со своим доменом и HTTPS (для некоторых OAuth-колбэков и вебхуков) — тариф с выделенным IP подходит лучше, так как у вас все порты.

← Back to blogSee plans & pricing →