opened image

Базовая установка n8n через Docker Compose

 

n8n — это self-hosted-платформа low-code-автоматизации, ставшая «швейцарским ножом» для интеграций. Она позволяет без программирования объединять десятки SaaS-сервисов, запускать триггеры по расписанию или webhook-событиям и формировать полноценные цепочки обработки данных.

Для личных проектов и тестовых стендов чаще всего выбирают развёртывание в Docker Compose: один YAML-файл, минимальные ресурсы, запускается за пару минут и остаётся управляемым стандартными командами docker compose — идеальный сценарий для быстрого старта системного администратора.

 

По состоянию на 30 июня 2025 г. актуальной стабильной версией считается n8n 1.101.0.github.com

 

1. Почему именно Docker Compose?

  • Изоляция: n8n, база данных (если понадобится) и обратный прокси работают в собственных контейнерах, не загрязняя хостовую ОС.

  • Повторяемость: одинаковый docker-compose.yml запускается на ноутбуке, VPS или Kubernetes-нодулях.

  • Обновления одной командой: docker compose pull && docker compose up -d.

 

 

2. Минимальные системные требования

 

РесурсМинимум для стенда
CPU1 vCPU
RAM1 ГиБ
Диск5 ГиБ SSD
Порты5678/tcp

 

Эти показатели подходят для десятка лёгких воркфлоу на SQLite. Продакшн-настройки рассматриваются во второй статье.

 

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


 

 

sudo mkdir -p /opt/n8n && sudo chown $USER /opt/n8n
cd /opt/n8n

# Устанавливаем 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" | \
  sudo 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 && sudo chmod +x /usr/local/bin/docker-compose

 

 

4. Файл .env


 
N8N_VERSION=1.101.0
WEBHOOK_URL=http://<IP-или-домен>:5678/
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=<СЛУЧАЙНЫЙ_ПАРОЛЬ>

 

 

Совет: храните .env вне VCS и добавляйте его в .gitignore, чтобы не «засветить» пароли.

 

 

 

Так же:

 

mkdir -p ./n8n_data
chown -R 1000:1000 ./n8n_data

 

 

 

5. Базовый docker-compose.yml


 
services:
  n8n:
    image: n8nio/n8n:${N8N_VERSION}
    restart: unless-stopped
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
      - N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
      - WEBHOOK_URL=https://your.website/
      - N8N_SECURE_COOKIE=true
    volumes:
      - ./n8n_data:/home/node/.n8n
    networks:
      - n8nnet

  caddy:
    image: caddy:alpine
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
    networks:
      - n8nnet

networks:
  n8nnet:

 

 

 

 

где WEBHOOK_URL=https://your.website/  - ваш домен.

 

Создайте файл Caddyfile:


 
your.website {
  reverse_proxy n8n:5678
}

 

где your.website - ваш домен A-запись которого уже указывает на ваш сервер.

 


 

Запуск:

 

docker compose up -d
docker compose logs -f n8n        # ждём строку "Editor is now accessible"

 

 

 После этого n8n будет доступен по адресу:
 

https://your.website


С авторизацией по логину admin и паролю который вы указали в файле  .env

 

Теперь интерфейс доступен на http://<IP-хоста>:5678/.

 

 

 

 

6. Ежедневные задачи администратора

 

ОперацияКоманда
Проверить статусdocker compose ps
Посмотреть логиdocker compose logs --tail 100 -f n8n
Обновить до новой версииdocker compose pull && docker compose up -d
Создать резервную копиюtar -czf n8n_home.tgz ./n8n_data
Откатиться на предыдущий tagизменить N8N_VERSION + docker compose up -d

 

 

7. Минимальная безопасность

 

  1. Включите базовую авторизацию (N8N_BASIC_AUTH_ACTIVE=true).

  2. Ограничьте внешний доступ к порту 5678 файрволом или прокси.

  3. Меняйте пароли при первом запуске и храните их в менеджере секретов.

 

 

Заключение

 

  • Быстрый выигрыш времени.
    Для одиночных проектов установка из одного docker-compose.yml — самый короткий путь от идеи до рабочего прототипа. Вы экономите часы ручной настройки и сразу видите результат.

  • Небольшая инфраструктурная «цена».
    Один vCPU, гигабайт RAM и пять гигабайт SSD-пространства достаточно, чтобы познакомиться с платформой, опробовать десятки нод и понять, подходит ли n8n именно под ваш сценарий.

  • Обратная сторона минимализма.
    SQLite не любит параллельных записей. При росте количества воркфлоу возможны блокировки БД и замедления UI. Базовую схему следует рассматривать как лабораторную.

  • Лёгкость обслуживания.
    Обновления, бэкапы и откаты реализуются всего одной-двумя командами Docker Compose, что снижает риск человеческой ошибки при рутинных операциях.

  • Безопасность не «по остаточному принципу».
    Даже в песочнице включайте базовую авторизацию и закрывайте порт 5678 файрволом. Чем раньше вы привьёте эти привычки, тем легче будет масштабироваться без внезапных «дыру в брандмауэре».

  • Плавный путь к production.
    Все переменные окружения и тома уже вынесены наружу; значит, переход на Postgres + Redis + Queue Mode сведётся к редактированию YAML, а не к полной миграции.

  • Следующий шаг — автоматизация CI/CD.
    Добавьте docker compose pull и docker compose up -d в GitHub Actions или GitLab CI — и вы получите повторяемые деплой-пайплайны даже для персональных проектов.

 

 

Такой стенд подходит для прототипирования, обучения и домашних автоматизаций. Однако SQLite ограничивает параллелизм изполнения и масштабирование. Если вы планируете продакшн или коллективную работу, переходите к следующей статье, где мы соберём Production Stack с Postgres, Redis и очередями, оптимизированный для высокой нагрузки и надёжного горизонтального масштабирования.