Обзор развертывания n8n на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы:
-
Операционная система: Ubuntu (рекомендуется).
-
Права доступа: Права суперпользователя (
root) для установки системных пакетов и управления Docker. -
Домен: Настроенное доменное имя, соответствующее шаблону панели.
-
Порты:
-
80/tcp(HTTP) — для проверки SSL и перенаправления на HTTPS. -
443/tcp(HTTPS) — основной порт доступа к приложению. -
5678/tcp— внутренний порт приложения (доступен только локально).
-
FDQN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | n8n |
| Домен | hostkey.in |
| Полный шаблон | n8n{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Все основные данные и конфигурации распределены по следующим путям:
-
/data/nginx/user_conf.d/— пользовательские конфигурационные файлы Nginx. -
/data/nginx/letsencrypt/.well-known/acme-challenge/— директория для прохождения проверки Certbot. -
/root/n8n-compose-file/— рабочая директория с файломcompose.yml. -
/data/n8n— основная директория данных приложения n8n. -
/data/n8n/files— директория для пользовательских файлов внутри контейнера.
Процесс установки приложения¶
Приложение развертывается с использованием Docker и Docker Compose. Используется официальный образ: docker.n8n.io/n8nio/n8n:latest.
Процесс включает в себя:
-
Подготовку системных зависимостей (curl, dnsutils).
-
Установку Docker.
-
Создание необходимых директорий и Docker-томов.
-
Генерацию конфигурации Nginx с поддержкой SSL.
-
Запуск контейнеров через
docker compose.
Права доступа и безопасность¶
Безопасность системы обеспечивается следующими механизмами:
-
Брандмауэр (UFW): Разрешены входящие соединения на порты
80и443/tcp. -
Ограничение доступа: Приложение n8n прослушивает порт
5678только на интерфейсе127.0.0.1, что предотвращает прямой доступ извне, минуя прокси-сервер. -
Права на директории:
-
Директория
/data/nginxи подкаталоги принадлежат пользователюroot. -
Директории данных n8n (
/data/n8nи/data/n8n/files) имеют владельца с UID/GID1000.
-
Контейнеры Docker и их запуск¶
Система состоит из двух основных сервисов, управляемых через docker compose:
-
nginx:
-
Образ:
jonasal/nginx-certbot:latest -
Режим сети:
host -
Назначение: Проксирование трафика и управление SSL-сертификатами.
-
-
n8n:
-
Образ:
docker.n8n.io/n8nio/n8n:latest -
Назначение: Основное приложение автоматизации.
-
Инструкция по обновлению приложения¶
Обновление выполняется_pull и перезапуск контейнеров. Для обновления необходимо выполнить команды в директории /root/n8n-compose-file:
Настройки прав¶
Настройка прав доступа для файлов и папок:
| Путь | Владелец (UID/GID) | Права |
|---|---|---|
/data | root | 0755 |
/data/n8n | 1000 | 0755 |
/data/n8n/files | 1000 | 0755 |
/root/n8n-compose-file | root | 0755 |
Расположение конфигурационных файлов и данных¶
Конфигурация приложения включает:
-
Файл окружения для SSL:
/data/nginx/nginx-certbot.env. -
Конфигурация Nginx:
/data/nginx/user_conf.d/{domain}.conf. -
Docker Compose:
/root/n8n-compose-file/compose.yml.
Доступные порты для подключения¶
| Порт | Протокол | Описание | Доступность |
|---|---|---|---|
443 | HTTPS | Основной интерфейс приложения | Публично |
80 | HTTP | Перенаправление на HTTPS / проверка SSL | Публично |
5678 | TCP | Внутренний порт n8n | Только локально (localhost) |
Запуск, остановка приложения¶
Управление сервисами осуществляется через docker compose в директории /root/n8n-compose-file:
-
Запуск всех сервисов:
-
Остановка сервисов:
Прокси серверы¶
В качестве прокси-сервера используется контейнер nginx-certbot.
Настройки SSL и доменов:
-
Автоматическое получение сертификатов через Certbot.
-
Перенаправление (Redirect) с HTTP на HTTPS.
-
Поддержка заголовков для корректной работы Webhook и WebSocket (
Upgrade,Connection). -
Настройка максимального размера тела запроса:
64m.