---
title: 'n8n в продакшене: Повышаем надёжность и масштабируемость с Docker Swarm | Zomro'
description: ''
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2025/07/03/chatgpt-image-3-2025-18_39_19_q50.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/rus/)
  * [FAQ](https://zomro.com/rus/blog/faq/)
  * n8n в продакшене: Повышаем надёжность и масштабируемость с Docker Swarm 



# n8n в продакшене: Повышаем надёжность и масштабируемость с Docker Swarm

01-07-2025

## ![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2025/07/03/chatgpt-image-3-2025-18_39_19_q50.jpg)

n8n — мощная low-code-платформа автоматизации, построенная на Node.js. В режиме _queue mode_ n8n позволяет масштабировать воркеры горизонтально, разделяя нагрузку между узлами, при этом основной интерфейс (UI) остаётся стабильным.

Для обеспечения отказоустойчивости и высокой производительности мы развернём n8n в продакшн-среде с использованием Docker Swarm — встроенной системы оркестрации от Docker.

> ⚠️ **Обратите внимание:** для использования n8n в кластерном режиме (с поддержкой worker’ов, масштабирования и высокой доступности) требуется **лицензионный ключ**. Если вы запускаете n8n как один контейнер без кластеризации — **ключ не нужен** , и система полностью бесплатна в рамках Community Edition.

## Архитектура Production-стека

**Сервисы:**

  * **n8n-main** — интерфейс, API, вебхуки

  * **n8n-worker** — воркеры для выполнения задач

  * **PostgreSQL** — база данных

  * **Redis** — очередь задач

  * **Caddy** — HTTPS Reverse Proxy




## 

## Подготовка окружения

Если Docker и Docker Compose ещё не установлены, выполните:
    
    
    apt install -y ca-certificates curl gnupg lsb-release
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    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 \
      $(lsb_release -cs) stable" | \
      tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    apt update
    apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
    curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \
      -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

## 

## Шаг 1: Создание Docker Swarm кластера

На главной ноде:
    
    
    docker swarm init --advertise-addr <IP_MANAGER>

После выполнения появится команда подключения других узлов вида:
    
    
    docker swarm join --token <TOKEN> <IP_MANAGER>:2377

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2025/07/03/001_q50.jpg)

На каждой рабочей ноде:
    
    
    docker swarm join --token <TOKEN> <IP_MANAGER>:2377

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2025/07/03/003_q50.jpg)

Проверка:
    
    
    docker node ls

## 

Вы должны увидеть список всех подключенных узлов и их роли (`Leader`, `Worker`, `Reachable`, и т.д.).

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2025/07/03/004_q50.jpg)

## 

Для того что бы узнать токен, выполните команду на сервере main:
    
    
    docker swarm join-token worker

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2025/07/03/002_q50.jpg)

## Шаг 2: Создание overlay-сети

Выполняется один раз на manager-ноде:
    
    
    docker network create --driver overlay n8nnet

## 

## 

## Шаг 3: Подготовка конфигурационных файлов

### Генерация ключа шифрования для `N8N_ENCRYPTION_KEY` добавить в `docker-stack.yml`:
    
    
    openssl rand -base64 32

### 

### Файл `.env`
    
    
    WEBHOOK_URL=https://your.website/
    GENERIC_TIMEZONE=Europe/Kyiv

### 

### Файл `Caddyfile`
    
    
    your.website {
      reverse_proxy n8n-main:5678
    }

Замените `your.website` на ваш домен.

## Шаг 4: Конфигурация docker-stack.yml

Создаём проект:
    
    
    mkdir -p /opt/n8n && chown $USER /opt/n8n
    cd /opt/n8n

Создайте файл `docker-stack.yml`:
    
    
    services:
      postgres:
        image: postgres:15-alpine
        environment:
          POSTGRES_USER: n8n
          POSTGRES_PASSWORD: StrongDBPass123!
          POSTGRES_DB: n8n
        volumes:
          - pg_data:/var/lib/postgresql/data
        networks: [n8nnet]
        deploy:
          restart_policy: { condition: on-failure }
    
      redis:
        image: redis:7-alpine
        volumes:
          - redis_data:/data
        networks: [n8nnet]
        deploy:
          restart_policy: { condition: on-failure }
    
      n8n-main:
        image: n8nio/n8n:1.101.0 
        environment:
          DB_TYPE: postgresdb
          DB_POSTGRESDB_HOST: postgres
          DB_POSTGRESDB_PORT: 5432
          DB_POSTGRESDB_DATABASE: n8n
          DB_POSTGRESDB_USER: n8n
          DB_POSTGRESDB_PASSWORD: StrongDBPass123!
          QUEUE_BULL_REDIS_HOST: redis
          EXECUTIONS_MODE: queue
          EXECUTIONS_PROCESS: main
          N8N_BASIC_AUTH_ACTIVE: "true"
          N8N_BASIC_AUTH_USER: admin
          N8N_BASIC_AUTH_PASSWORD: StrongDBPass123!
          WEBHOOK_URL: https://your.website/
          GENERIC_TIMEZONE: Europe/Kyiv
          N8N_SECURE_COOKIE: "false"
          N8N_ENCRYPTION_KEY: 1/PGjvZVg599QtIXpXoR9kqnxiakhl4I8zRqBV9pnko=
          N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
        volumes:
          - n8n_data:/home/node/.n8n
        networks: [n8nnet]
        deploy:
          replicas: 1
          placement:
            constraints: [node.role == manager]
          restart_policy: { condition: on-failure }
    
      n8n-worker:
        image: n8nio/n8n:1.101.0         
        command: worker
        environment:
          DB_TYPE: postgresdb
          DB_POSTGRESDB_HOST: postgres
          DB_POSTGRESDB_PORT: 5432
          DB_POSTGRESDB_DATABASE: n8n
          DB_POSTGRESDB_USER: n8n
          DB_POSTGRESDB_PASSWORD: StrongDBPass123!
          QUEUE_BULL_REDIS_HOST: redis
          EXECUTIONS_MODE: queue
          GENERIC_TIMEZONE: Europe/Kyiv
          N8N_ENCRYPTION_KEY: 1/PGjvZVg599QtIXpXoR9kqnxiakhl4I8zRqBV9pnko=
          DB_MIGRATIONS_DISABLED: "true"
          N8N_RUNNERS_ENABLED: "true"
          N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
        networks: [n8nnet]
        deploy:
          replicas: 2           
          restart_policy: { condition: on-failure }
    
      caddy:
        image: caddy:alpine
        ports:
          - "80:80"
          - "443:443"
        volumes:
          - ./Caddyfile:/etc/caddy/Caddyfile
        networks: [n8nnet]
        deploy:
          replicas: 1
          placement:
            constraints: [node.role == manager]
          restart_policy: { condition: on-failure }
    
    volumes:
      n8n_data:
      pg_data:
      redis_data:
    
    networks:
      n8nnet:
        external: true

## Шаг 5: Развёртывание и проверка

Разворачиваем стек:
    
    
    docker stack deploy -c docker-stack.yml n8n

Проверка:
    
    
    docker stack services n8n
    docker service ps n8n_n8n-worker

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2025/07/03/005_q50.jpg)

Как видим развернулось 2 воркера как было указано в `deploy`.
    
    
      n8n-worker:
       ...
        networks: [n8nnet]
        deploy:
          replicas: 2   

Остановка:
    
    
    docker stack rm n8n

Проверка сети:
    
    
    docker network ls

## 

## Результат

  * n8n-main работает на manager-ноде

  * PostgreSQL и Redis также размещены на manager-ноде

  * n8n-worker масштабируемы по воркер-нодам

  * HTTPS настроен через Caddy




![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a48%40server-panel.net/2025/07/03/end_q50.jpg)

## Заключение

Вы получили надёжную production-среду для n8n с разделением на UI и worker-процессы, базой данных PostgreSQL, очередью Redis и автоматическим HTTPS. Docker Swarm обеспечивает масштабируемость, отказоустойчивость и простое управление всем стеком.

Похожие статьи

[RDP‑мониторинг: аудит событий, мгновенные алерты в Telegram или email](https://zomro.com/rus/blog/faq/650-rdp-monitoring-event-auditing-instant-alerts-via-telegram-or-email) [Как проверить на вирусы Linux сервер](https://zomro.com/rus/blog/faq/339-kak-proverit-na-virusy-linux-server) [known_hosts и host key в SSH](https://zomro.com/rus/blog/faq/683-known_hosts-i-host-key-in-ssh) [Сброс пароля администратора WordPress через консоль в Linux Ubuntu или CentOS 7](https://zomro.com/rus/blog/faq/335-resetting-wordpress-admin-password-via-console-in-linux-ubuntu-or-centos-7) [Как загружать файлы на сервер для Forex](https://zomro.com/rus/blog/faq/182-kak-zagruzhat-fajly-na-server-dlja-forex)

[ Виртуальный хостинг от €3.98/мес ](/rus/virtual)
