Перейти к содержанию

Обзор развертывания 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.

Процесс включает:

  1. Подготовку системных зависимостей (исправление ошибок dpkg, установка curl и dnsutils).

  2. Установку Docker.

  3. Создание необходимых директорий с соответствующими правами.

  4. Генерацию конфигурационных файлов Nginx и Docker Compose.

  5. Запуск контейнеров через docker compose up -d.

Права доступа и безопасность

  • Брандмауэр (UFW): В системе настроены правила, разрешающие входящий трафик на порты 80 и 443/tcp.

  • Пользователи:

    • Директории с данными n8n (/data/n8n) принадлежат пользователю с UID 1000 и GID 1000.

    • Конфигурационные файлы Nginx принадлежат пользователю root.

  • Ограничение доступа: Приложение n8n прослушивает порт 5678 только на интерфейсе 127.0.0.1, что исключает прямой доступ к нему из внешней сети в обход прокси-сервера.

Контейнеры Docker и их запуск

Система использует два основных контейнера:

  1. nginx:

    • Образ: jonasal/nginx-certbot:latest.

    • Режим сети: host.

    • Назначение: Проксирование трафика, управление SSL-сертификатами через Certbot.

  2. n8n:

    • Образ: docker.n8n.io/n8nio/n8n:latest.

    • Режим работы: Production.

Инструкция по обновлению приложения

Обновление выполняется_pull и перезапуск контейнеров. Для обновления необходимо выполнить команду в директории с файлом конфигурации:

docker compose pull && docker compose up -d

Настройки прав

Путь Владелец (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:

  • Запуск:

    docker compose up -d
    

  • Остановка:

    docker compose down
    

Прокси серверы

В качестве прокси-сервера используется nginx в связке с certbot.

  • SSL: Автоматическое получение и обновление сертификатов через Let's Encrypt. Интервал проверки обновления установлен на 8d.

  • Конфигурация: Nginx настроен на автоматический редирект с HTTP (порт 80) на HTTPS (порт 443). Настроен проброс заголовков для корректной работы вебхуков и WebSocket (Upgrade, Connection).

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×