Обзор развертывания n8n на сервере¶
Предварительные требования¶
Для корректной работы приложения необходимы следующие параметры системы:
-
Операционная система: Ubuntu (рекомендуется).
-
Права доступа: Права суперпользователя (
root) для установки системных пакетов и управления Docker. -
Домен: Настроенный доменное имя, соответствующее шаблону панели.
-
Порты:
-
80/tcp— HTTP (для перенаправления на HTTPS и проверки Certbot). -
443/tcp— HTTPS (основной доступ к приложению). -
5678/tcp— внутренний порт приложения (доступен только локально через127.0.0.1).
-
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/— директория для проверки SSL-сертификатов. -
/root/n8n-compose-file/— рабочая директория с файломcompose.yml. -
/data/n8n— основные данные приложения n8n. -
/data/n8n/files— пользовательские файлы, загружаемые в n8n.
Процесс установки приложения¶
Приложение развертывается с использованием Docker и Docker Compose. Используется официальный образ docker.n8n.io/n8nio/n8n:latest.
Процесс включает:
-
Подготовку системных зависимостей (исправление ошибок
dpkg, установкаcurlиdnsutils). -
Установку Docker.
-
Создание необходимых директорий с соответствующими правами.
-
Генерацию конфигурационных файлов Nginx и Docker Compose.
-
Запуск контейнеров через
docker compose up -d.
Права доступа и безопасность¶
-
Брандмауэр (UFW): В системе настроены правила, разрешающие входящий трафик на порты
80и443/tcp. -
Пользователи:
-
Директории с данными n8n (
/data/n8n) принадлежат пользователю с UID1000и GID1000. -
Конфигурационные файлы Nginx принадлежат пользователю
root.
-
-
Ограничение доступа: Приложение n8n прослушивает порт
5678только на интерфейсе127.0.0.1, что исключает прямой доступ к нему из внешней сети в обход прокси-сервера.
Контейнеры Docker и их запуск¶
Система использует два основных контейнера:
-
nginx:
-
Образ:
jonasal/nginx-certbot:latest. -
Режим сети:
host. -
Назначение: Проксирование трафика, управление SSL-сертификатами через Certbot.
-
-
n8n:
-
Образ:
docker.n8n.io/n8nio/n8n:latest. -
Режим работы: Production.
-
Инструкция по обновлению приложения¶
Обновление выполняется_pull и перезапуск контейнеров. Для обновления необходимо выполнить команду в директории с файлом конфигурации:
Настройки прав¶
| Путь | Владелец (UID/GID) | Права доступа |
|---|---|---|
/data | root:root | 0755 |
/data/n8n | 1000:1000 | 0755 |
/data/n8n/files | 1000:1000 | 0755 |
Расположение конфигурационных файлов и данных¶
-
Конфигурация Docker Compose:
/root/n8n-compose-file/compose.yml. -
Переменные окружения Nginx Certbot:
/data/nginx/nginx-certbot.env. -
Сертификаты SSL: Хранятся в Docker Volume
nginx_secrets(внутри контейнера по пути/etc/letsencrypt).
Доступные порты для подключения¶
| Порт | Протокол | Назначение | Доступность |
|---|---|---|---|
80 | TCP | HTTP | Публично |
443 | TCP | HTTPS | Публично |
5678 | TCP | n8n Internal | Только локально (127.0.0.1) |
Запуск, остановка приложения¶
Управление контейнерами осуществляется через docker compose в директории /root/n8n-compose-file:
-
Запуск:
-
Остановка:
Прокси серверы¶
В качестве прокси-сервера используется nginx в связке с certbot.
-
SSL: Автоматическое получение и обновление сертификатов через Let's Encrypt. Интервал проверки обновления установлен на
8d. -
Конфигурация: Nginx настроен на автоматический редирект с HTTP (порт 80) на HTTPS (порт 443). Настроен проброс заголовков для корректной работы вебхуков и WebSocket (
Upgrade,Connection).