Обзор развертывания n8n на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры и настройки системы:
-
Операционная система: Ubuntu.
-
Права доступа: Права
rootдля установки системных пакетов и управления Docker. -
Порты:
-
80/tcp— для HTTP (используется для проверки SSL). -
443/tcp— для HTTPS (основной доступ к приложению). -
5678/tcp— внутренний порт приложения.
FQDN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | n8n |
| Домен | hostkey.in |
| Полный шаблон | n8n{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Все основные данные и конфигурации сосредоточены в следующих директориях:
-
/data/n8n— основная рабочая директория приложения (данные пользователя). -
/data/n8n/files— директория для загружаемых файлов. -
/data/nginx— конфигурационные файлы Nginx и настройки Certbot. -
/data/nginx/user_conf.d— пользовательские конфигурации веб-сервера. -
/data/nginx/letsencrypt/.well-known/acme-challenge— директория для прохождения проверки SSL. -
/root/n8n-compose-file— файлы Docker Compose.
Процесс установки приложения¶
Процесс развертывания включает в себя несколько этапов подготовки системы и запуска контейнеров:
-
Подготовка ОС: Исправление возможных ошибок состояний пакетов
dpkgиapt, обновление кэша репозиториев и установка необходимых системных утилит (curl,dnsutils). -
Установка среды выполнения: Установка Docker и настройка конфигурации реестра (включая зеркала для обеспечения доступности образов).
-
Подготовка файловой структуры: Создание необходимых директорий с соответствующими правами доступа (владелец
rootдля системных папок и пользователь1000для данных приложения). -
Настройка веб-сервера: Генерация конфигурационного файла Nginx для автоматического перенаправления трафика с HTTP на HTTPS и настройки проксирования.
-
Развертывание контейнеров: Запуск инфраструктуры через Docker Compose.
Приложение использует образ n8nio/n8n:latest.
Права доступа и безопасность¶
-
Брандмауэр (UFW): В системе настроены правила, разрешающие входящий трафик по портам
80и443. -
Права на данные: Директории с данными приложения (
/data/n8n) принадлежат пользователю и группе с идентификатором1000, что необходимо для корректной работы процесса внутри контейнера. -
Безопасность Docker: Для обеспечения стабильности работы используется политика перезапуска
unless-stopped.
Контейнеры Docker и их запуск¶
Приложение разворачивается в составе двух основных компонентов через Docker Compose:
n8n¶
| Параметр | Значение |
|---|---|
| Образ | n8nio/n8n:latest |
| Порты | 127.0.0.1:5678 -> 5678 (доступ только локально) |
| Тома (volumes) | /data/n8n:/home/node/.n8n/data/n8n/files:/files |
| Переменные окружения | N8N_HOST, N8N_PORT, N8N_PROTOCOL=https, NODE_ENV=production, TZ (часовой пояс) |
| Политика перезапуска | unless-stopped |
nginx¶
| Параметр | Значение |
|---|---|
| Образ | jonasal/nginx-certbot:latest |
| Сеть | host (использует сетевой стек хоста) |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt/data/nginx/user_conf.d:/etc/nginx/user_conf.d/data/nginx/letsencrypt:/var/www/letsencrypt |
| Политика перезапуска | unless-stopped |
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия в директории /root/n8n-compose-file:
Расположение конфигурационных файлов и данных¶
| Тип данных | Путь на хосте |
|---|---|
| Данные приложения (n8n) | /data/n8n |
| Конфигурация Nginx | /data/nginx/user_conf.d/{domain}.conf |
| Сертификаты SSL | Внутри Docker volume nginx_secrets |
Доступные порты для подключения¶
-
HTTPS:
443(через внешний домен). -
HTTP:
80(перенаправляет на HTTPS).
Запуск, остановка приложения¶
Управление приложением осуществляется с помощью команд Docker Compose из директории /root/n8n-compose-file:
-
Запуск:
docker compose up -d -
Остановка:
docker compose down -
Просмотр логов:
docker compose logs -f