Установка n8n

Данная статья содержит следующие разделы:

  1. Установка через маркетплейс
  2. Настройка SSL-сертификата
  3. Изменение домена
  4. Установка вручную с помощью Docker Compose

n8n — инструмент для автоматизации рабочих процессов с открытым исходным кодом. Он позволяет создавать интеграции между различными сервисами, используя GUI.

Установка через маркетплейс

Самый простой способ развернуть n8n — использовать готовый образ из нашего маркетплейса. Для этого необходимо:

  1. Выбрать сервер. Для запуска n8n подойдет минимальная конфигурация сервера. Ее будет достаточно для тестирования. В будущем, если нагрузка на сервис возрастет, вы сможете изменить параметры сервера и увеличить ресурсы сервера.
  2. Выбираем в маркетплейсе предустановленный n8n

Настройка SSL-сертификата 

При первом обращении к n8n через браузер вы можете столкнуться с предупреждением о небезопасном соединении. Это связано с отсутствием SSL-сертификата.

Для выпуска сертификата необходимо указать ваш email в настройках docker-compose.yml. Для этого подключитесь к серверу по SSH.

Перейдите в рабочую директорию n8n:

cd /home/n8n

Отредактируйте файл .env:

nano .env

Найдите строку с переменной SSL_EMAIL и укажите ваш email:

SSL_EMAIL=user@example.com

Email будет использоваться сервисом Let's Encrypt для выпуска сертификата.

Сохраните изменения и перезапустите контейнеры:

docker compose down docker compose up -d

Процесс выпуска сертификата может занять несколько минут. После этого доступ к n8n будет выполняться по HTTPS.

Изменение домена

Если вы хотите использовать собственный домен, вы можете изменить настройки в файле .env.

Перед внесением изменений убедитесь, что домен и поддомен указывают на IP-адрес вашего сервера через A-записи в DNS.

Перейдите в директорию n8n:

cd /home/n8n

Откройте файл .env:

nano .env

Найдите и измените строки:

DOMAIN_NAME= SUBDOMAIN=

Например, если вы хотите использовать домен n8n.example.com, значения должны быть следующими:

DOMAIN_NAME=example.com SUBDOMAIN=n8n

Если вы хотите использовать домен второго уровня (без поддомена), укажите только DOMAIN_NAME, а все упоминания ${SUBDOMAIN} в файле docker-compose.yml удалите.

Сохраните файл и перезапустите контейнеры:

docker compose down docker compose up -d

После этого n8n будет доступен по вашему домену.

Установка вручную с помощью Docker Compose

Вы также можете установить n8n вручную на любой сервер при помощи Docker Compose. 

Перед настройкой установим Docker и Docker Compose. Для этого выполните следующие команды:

curl -fsSL https://get.docker.com -o get-docker.sh 
sudo sh ./get-docker.sh

Создайте отдельную директорию для проекта:

mkdir n8n-compose

И перейдите в нее

cd n8n-compose

Создайте файл docker-compose.yml со следующим содержимым:

  services:
traefik: image: "traefik" restart: always command: - "--api=true" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.web.http.redirections.entryPoint.to=websecure" - "--entrypoints.web.http.redirections.entrypoint.scheme=https" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true" - "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}" - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json" ports: - "80:80" - "443:443" volumes: - traefik_data:/letsencrypt - /var/run/docker.sock:/var/run/docker.sock:ro n8n: image: docker.n8n.io/n8nio/n8n restart: always ports: - "127.0.0.1:5678:5678" labels: - traefik.enable=true - traefik.http.routers.n8n.rule=Host(${SUBDOMAIN}.${DOMAIN_NAME}) - traefik.http.routers.n8n.tls=true - traefik.http.routers.n8n.entrypoints=web,websecure - traefik.http.routers.n8n.tls.certresolver=mytlschallenge - traefik.http.middlewares.n8n.headers.SSLRedirect=true - traefik.http.middlewares.n8n.headers.STSSeconds=315360000 - traefik.http.middlewares.n8n.headers.browserXSSFilter=true - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true - traefik.http.middlewares.n8n.headers.forceSTSHeader=true - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME} - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true - traefik.http.middlewares.n8n.headers.STSPreload=true - traefik.http.routers.n8n.middlewares=n8n@docker environment: - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME} - N8N_PORT=5678 - N8N_PROTOCOL=https - NODE_ENV=production - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/ - GENERIC_TIMEZONE=${GENERIC_TIMEZONE} volumes: - n8n_data:/home/node/.n8n - ./local-files:/files volumes: n8n_data: traefik_data:

Создайте файл .env и добавьте следующее:

# The top level domain to serve from
DOMAIN_NAME=example.com
# The subdomain to serve from
SUBDOMAIN=n8n
# The timezone to use inside the container
GENERIC_TIMEZONE=Europe/Moscow
# The email address used for certificate issuance
SSL_EMAIL=user@example.com


Измените значения DOMAIN_NAMESUBDOMAIN и SSL_EMAIL на ваши данные.

После настройки всех файлов, запустите контейнеры:

docker compose up -d
  • 0 Пользователи считают это полезным
Помог ли вам данный ответ?

Powered by WHMCompleteSolution