Как запустить n8n на своей инфраструктуре
Self-hosted n8n

Как запустить n8n самостоятельно, на своей инфраструктуре

Практический лендинг для Tilda: как развернуть n8n в своём контуре через Docker, когда нужен PostgreSQL, зачем Redis в queue mode и как собрать базовую production-ready схему.

Docker Самый удобный и типовой способ self-hosted запуска
PostgreSQL Предпочтительная база для production-контуров
Redis Нужен для queue mode и горизонтального масштабирования

Базовый production-стек

Для большинства команд достаточно схемы: reverse proxy + n8n + PostgreSQL. При росте нагрузки добавляется Redis и workers.

Docker Compose PostgreSQL Nginx / Traefik Redis

Что важно не забыть

Для корректной работы webhooks за reverse proxy нужно правильно задать URL и proxy hops, иначе начнутся проблемы с callback-адресами.

Для кого это

Для компаний, которые хотят держать автоматизацию в собственном контуре: на своей VM, VPS, bare metal или private cloud.

Deployment options

Три базовых сценария запуска

Для теста можно стартовать просто. Для production лучше сразу закладывать домен, SSL, нормальную БД и понятную схему обновлений. Для роста нагрузки — queue mode и горизонтальное масштабирование.

01

Локально для теста

Подходит для знакомства, проверки workflow и локальной разработки на своём ПК или сервере.

  • Запуск через npx или npm
  • Минимум инфраструктуры
  • Не лучший выбор для production
02

Production single-instance

Лучший баланс между простотой и надёжностью для первых боевых сценариев.

  • Docker Compose
  • Reverse proxy + SSL
  • PostgreSQL, бэкапы и мониторинг
03

Production queue mode

Выбор для больших нагрузок, параллельных исполнений и масштабируемой архитектуры.

  • Main + workers
  • Redis как брокер очереди
  • PostgreSQL как основная база
Infographic

Базовая архитектура self-hosted n8n

В production-контуре n8n обычно работает не в одиночку, а как часть небольшого стека: входной прокси, приложение, база данных и слой хранения / резервного копирования.

1. Edge layer

Домен, HTTPS, reverse proxy, проброс реального хоста и протокола, ограничение доступа и базовая защита периметра.

Типовой слойNginx / Traefik
Что даётSSL + stable URL

2. n8n runtime

UI, webhooks, расписания, интеграции, workflow execution, креденшелы и логика автоматизаций.

РежимыMain / Single / Worker
Что важноENV + volume + updates

3. Data & scale

PostgreSQL для устойчивого хранения, Redis для очередей, бэкапы, мониторинг и опционально внешнее хранилище бинарных файлов.

ДанныеPostgreSQL
ОчередиRedis
Быстрый старт

Минимальный Docker Compose

version: "3.8"
services:
  postgres:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: n8nStrongPass_2026
      POSTGRES_DB: n8n
    volumes:
      - postgres_data:/var/lib/postgresql/data

  n8n:
    image: docker.n8n.io/n8nio/n8n:stable
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: n8nStrongPass_2026
      GENERIC_TIMEZONE: Asia/Jerusalem
      TZ: Asia/Jerusalem
      N8N_HOST: n8n.infra.local
      N8N_PROTOCOL: https
      N8N_PORT: 5678
      N8N_EDITOR_BASE_URL: https://n8n.infra.local/
      WEBHOOK_URL: https://n8n.infra.local/
      N8N_PROXY_HOPS: 1
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres

volumes:
  postgres_data:
  n8n_data:
docker compose up -d
Практика

Что нужно для боевого контура

VPS / VM / bare metal С Linux, доступом по SSH, стабильной сетью и понятной схемой резервного копирования.
Отдельная БД PostgreSQL надёжнее для production, особенно если нужны рост нагрузки, миграции и масштабирование.
SSL и домен Нужны для нормальной работы webhook URL, внешних интеграций и безопасного доступа пользователей.
Бэкапы и обновления Резервируйте базу, каталог .n8n и храните контролируемый план обновления версии.
Step-by-step

Как запускать без типовых ошибок

Больше всего проблем обычно не в самом n8n, а в сетевой схеме, домене, webhook URL, базе данных и отсутствии регламентов на обновление и резервное копирование.

1

Подготовить сервер

Поставить Docker и Docker Compose, открыть нужные порты только через прокси, подготовить каталог под compose-файлы и бэкапы.

2

Развернуть runtime

Поднять n8n и PostgreSQL, вынести данные в volume, проверить доступ по 5678 и затем спрятать сервис за HTTPS-прокси.

3

Настроить URL и SSL

Задать N8N_HOST, N8N_EDITOR_BASE_URL, WEBHOOK_URL и N8N_PROXY_HOPS, чтобы webhooks и editor работали корректно.

4

Усилить эксплуатацию

Подключить мониторинг, логирование, бэкапы, регламент обновлений, а при росте нагрузки перейти на queue mode с Redis и workers.

FAQ

Частые вопросы

Несколько решений, которые обычно принимают уже на старте проекта, чтобы потом не переделывать стенд на ходу.

Можно ли запускать n8n без Docker?

Да. Для локальной проверки подходит запуск через npx или глобальную установку через npm. Но для production обычно удобнее и безопаснее Docker / Docker Compose.

Нужен ли PostgreSQL с самого начала?

Для демо можно стартовать проще, но для реального продакшна PostgreSQL заметно снижает эксплуатационные риски и лучше подходит для роста инстанса.

Когда подключать Redis?

Redis нужен не для любого стенда, а прежде всего для queue mode, когда вы отделяете main-процесс от worker-процессов и масштабируете исполнения горизонтально.

Нужно ли выносить n8n за reverse proxy?

Да, это стандартный путь для HTTPS, стабильных URL, корректных вебхуков, проксирования заголовков и более безопасной публикации сервиса наружу.

Итог

Рациональная схема старта: Docker Compose + PostgreSQL + SSL

Для большинства команд этого достаточно, чтобы быстро поднять свой n8n в собственном контуре, безопасно подключить webhooks и затем масштабироваться до queue mode тогда, когда это действительно потребуется.

План запуска n8n
  • Запустите Linux / VM, подключите домен и установите Docker с Docker Compose
  • Запустите отдельный контейнер PostgreSQL и сразу сохраните данные в постоянный volume
  • Поднимите n8n через Docker Compose, подключите его к PostgreSQL и вынесите каталог .n8n в volume
  • Настройте HTTPS: поставьте Nginx или Traefik перед n8n, подключите SSL и задайте правильный внешний адрес сервисаНастройте HTTPS: поставьте Nginx или Traefik перед n8n, подключите SSL и задайте правильный внешний адрес сервиса
  • Откройте интерфейс, создайте тестовый workflow с webhook и убедитесь, что всё работает извне по HTTPS