Обзор развертывания n8n на сервере¶
Предварительные требования и базовые условия¶
-
Операционная система: Ubuntu 22.04 (Jammy)
-
Права доступа: Требуется доступ с правами root для управления Docker и системными директориями.
-
Домен: Требуется полностью квалифицированное доменное имя (FQDN) для терминации SSL и маршрутизации.
-
Порты:
-
Порт
80(HTTP) для начального согласования SSL. -
Порт
443(HTTPS) для безопасного доступа к приложению. -
Порт
5678(Внутренний) для коммуникации сервиса n8n.
FQDN финальной панели¶
Приложение доступно через домен hostkey.in в следующем формате: n8n<Server ID>.hostkey.in
Сервис открыт для внешнего доступа на порту 443 через прокси Traefik.
Структура файлов и директорий¶
Развертывание использует следующую структуру директорий на сервере:
-
/root/n8n-compose-file/: Содержит файл конфигурации Docker Compose (compose.yml). -
/root/letsencrypt/: Хранит SSL-сертификаты и файл конфигурации ACME (acme.json). -
/root/.n8n/: Сохраняет данные приложения n8n, рабочие процессы (workflows) и учетные данные (credentials). -
/root/local-files/: Хранит локальные файлы, загруженные в рамках рабочих процессов n8n. -
/data/: Общая директория для данных, создаваемая во время настройки.
Процесс установки приложения¶
Приложение n8n развертывается с помощью Docker Compose. Процесс развертывания включает:
-
Установка Docker Engine (версия
5:28.5.2-1~ubuntu.22.04~jammyдля Ubuntu 22.04). -
Создание необходимой структуры директорий.
-
Генерация и запуск файла
compose.ymlдля запуска сервисов.
Специфический образ, используемый для сервиса n8n: docker.n8n.io/n8nio/n8n:latest
Docker-контейнеры и их развертывание¶
Через Docker Compose развертываются два основных контейнера:
-
Traefik:
-
Образ:
traefik -
Назначение: Обратный прокси (Reverse Proxy), терминация SSL и маршрутизация.
-
Конфигурация: Включен провайдер Docker для автоматического обнаружения n8n через метки (labels). Настроен на перенаправление всего HTTP-трафика на HTTPS.
-
-
n8n:
-
Образ:
docker.n8n.io/n8nio/n8n:latest -
Назначение: Выполнение движка автоматизации рабочих процессов n8n.
-
Пользователь: Запускается от имени
root. -
Сеть: Порт
5678открыт только на интерфейсе localhost (127.0.0.1), что требует использования прокси Traefik для внешнего доступа.
-
Развертывание управляется командой docker compose up -d, выполненной в директории /root/n8n-compose-file.
Прокси-серверы¶
Traefik действует как обратный прокси для приложения со следующей конфигурацией:
-
Точки входа (Entrypoints):
-
web: Слушает порт80и перенаправляет наwebsecure. -
websecure: Слушает порт443для HTTPS-трафика. -
SSL/TLS:
-
Автоматическое управление сертификатами через Let's Encrypt (ACME TLS Challenge).
-
Сертификаты хранятся в
/letsencrypt/acme.jsonвнутри тома контейнера Traefik. -
Email для уведомлений Let's Encrypt:
hkadm@hostkey.com. -
Посредники (Middleware):
-
Принудительное перенаправление на SSL.
-
Применение строгих заголовков безопасности (STS, XSS Filter, Content-Type Nosniff).
-
Установка заголовка
SSLHostи включение поддоменов/предварительной загрузки в заголовок STS. -
Правила маршрутизации:
-
Маршрутизация трафика к сервису n8n на основе заголовка
Host, соответствующего конечному домену. -
Маппинг внешнего запроса на внутренний порт n8n
5678.
Базы данных¶
-
Метод подключения: n8n использует SQLite в качестве базы данных по умолчанию, которая хранится в постоянном томе (persistent volume) приложения.
-
Место хранения: Файлы базы данных находятся внутри тома, смонтированного в
/root/.n8n.
Права доступа и безопасность¶
-
Права на файлы:
-
Директории
/root/n8n-compose-fileи/dataпринадлежатroot:rootс правами0750. -
Файл
compose.ymlимеет права0644. -
Межсетевой экран (Firewall) и порты:
-
Внешний доступ ограничен портами
80и443через Traefik. -
Порт
5678контейнера n8n жестко связан с127.0.0.1, что предотвращает прямой внешний доступ. -
Заголовки безопасности:
-
Включен HTTP Strict Transport Security (HSTS) со сроком действия (max-age) 10 лет.
-
Активна фильтрация межсайтовых скриптов (XSS).
-
Отключено определение типа контента (Content-Type sniffing).
Расположение файлов конфигурации и данных¶
-
Файл Docker Compose:
/root/n8n-compose-file/compose.yml -
Данные n8n:
/root/.n8n(монтируется в/root/.n8nвнутри контейнера). -
Локальные файлы:
/root/local-files(монтируется в/filesвнутри контейнера). -
SSL-сертификаты:
/root/letsencrypt(монтируется в/letsencryptвнутри контейнера Traefik).
Доступные порты для подключения¶
| Порт | Протокол | Описание | Видимость |
|---|---|---|---|
| 80 | HTTP | Начальное перенаправление на HTTPS | Внешний (через Traefik) |
| 443 | HTTPS | Безопасный доступ к UI и Webhooks n8n | Внешний (через Traefik) |
| 5678 | TCP | Порт сервиса n8n | Только внутренний (127.0.0.1) |
Запуск, остановка и обновление¶
Управление сервисами выполняется с помощью команд Docker Compose из директории конфигурации:
-
Запуск или перезапуск сервисов:
-
Остановка сервисов:
-
Обновление образа n8n: Для загрузки последнего тега
latestи перезапуска контейнера: -
Просмотр логов: