<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация
На главную
61c46507-12c7-4300-a301-bd8bc30c7c19
Инструкции для серверов

Установка n8n

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

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

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

На этапе создания сервера перейдите во вкладку «Маркетплейс».

В разделе «Сайт» выберите пункт n8n.

Selection 287

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

Остальные параметры можно оставить без изменений. Завершите создание сервера, нажав на кнопку «Заказать».

После запуска сервер будет доступен в панели управления. Перейдите во вкладку «Дашборд», чтобы увидеть технический домен, по которому открывается интерфейс n8n.

Selection 290

Настройка 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_NAME, SUBDOMAIN и SSL_EMAIL на ваши данные.

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

docker compose up -d

Через несколько минут n8n будет доступен по адресу, который вы указали в .env.

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев