Полноценное развертывание n8n на собственном VPS-сервере

Оцените статью

В продолжении статьи «Установка n8n в Ubuntu Linux» сегодня доведем наш n8n до ума и сделаем ему полноценное доменное имя.

Сервис для авто-запуска n8n

По первой части статьи мы установили n8n и теперь нам необходимо создать сервисного пользователя и SystemD сервис для автоматического запуска n8n при старте сервера.

Создаем непривилегированного пользователя.

# adduser n8nuser
# mkdir /home/n8nuser/n8n/
# chown n8nuser:n8nuser /home/n8nuser/n8n/

Создаем сервис для автозапуска n8n при старте сервера (файл /etc/systemd/system/n8n.service).

[Unit]
Description=n8n Workflow Automation
After=network.target

[Service]
ExecStart=/usr/bin/n8n start --tunnel
Restart=always
RestartSec=10
User=n8nuser
Group=n8nuser

[Install]
WantedBy=multi-user.target

Настраиваем автозапуск и запускаем сервис.

# systemctl daemon-reload
# systemctl enable n8n
# systemctl start n8n
# systemctl status n8n

Если все прошло штатно, то мы увидим подобные сообщения.

Dec 08 11:25:19 srv-prod-cloud-01 n8n[15061]: Waiting for tunnel ...
Dec 08 11:25:20 srv-prod-cloud-01 n8n[15061]: Tunnel URL: https://b6z8tpdo8lok8makpasuwfrj.hooks.n8n.cloud/
Dec 08 11:25:20 srv-prod-cloud-01 n8n[15061]: IMPORTANT! Do not share with anybody as it would give people access to your n8n instance!
Dec 08 11:25:21 srv-prod-cloud-01 n8n[15061]: Version: 1.122.5
Dec 08 11:25:21 srv-prod-cloud-01 n8n[15061]: Editor is now accessible via:
Dec 08 11:25:21 srv-prod-cloud-01 n8n[15061]: https://b6z8tpdo8hefwbakpasuwfrj.hooks.n8n.cloud

Настройка домена и реверс-прокси Nginx

Устанавливаем необходимые пакеты.

# aptitude install nginx python3-certbot-nginx

Получаем сертификаты Let’s encrypt для нашего домена.

# certbot --nginx -d n8n.interlan.xyz

Конфигурация реверс-проxy Nginx (/etc/nginx/conf.d/n8n.conf).

server {
    listen 80;
    server_name n8n.interlan.xyz; # Replace with your actual domain
    return 301 https://$host$request_uri; # Redirect HTTP to HTTPS
}

server {
    listen 443 ssl;
    server_name n8n.interlan.xyz; # Replace with your actual domain

    ssl_certificate /etc/letsencrypt/live/n8n.interlan.xyz/fullchain.pem; # Path to your SSL certificate
    ssl_certificate_key /etc/letsencrypt/live/n8n.interlan.xyz/privkey.pem; # Path to your SSL key

    location / {
        proxy_pass http://localhost:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        client_max_body_size 50M;
    }
}

Обновляем конфигурацию Nginx и открываем в браузере мастер настройки.

# systemctl reload nginx

Первый зарегистрированный пользователь будет администратором.

n8n workspace

Похожие записи

Трассировка WordPress для определения узких мест

Я обратил внимание, что у меня в блоге стала ужасно долго открываться админка и значит пришло время разобраться как эти ваши PHP вообще трассировать и нормально отлаживать. Чтобы провести трассировку…

Как увеличить лимит на размер загружаемого файла для Ingress контроллера

После переноса Next Cloud в Kubernetes оказалось, что типовой настройки мне не хватило и файлы не пролезают через Ingress контроллер и чтобы увеличить лимит на размер загружаемого файла для Ingress‑контроллера,…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Трассировка WordPress для определения узких мест

Трассировка WordPress для определения узких мест

Как увеличить лимит на размер загружаемого файла для Ingress контроллера

Как увеличить лимит на размер загружаемого файла для Ingress контроллера

Менеджер баз данных Postgresql упакованных в Docker (Postgresql Docker Manager)

Менеджер баз данных Postgresql упакованных в Docker (Postgresql Docker Manager)

Автоматизированное получение Let’s encrypt сертификатов для Ingress Nginx при помощи cert‑manager

Автоматизированное получение Let’s encrypt сертификатов для Ingress Nginx при помощи cert‑manager

Тестовый кластер Kubernetes в Docker Desktop

Тестовый кластер Kubernetes в Docker Desktop

Хранилище артефактов (Docker) Cloud.ru

Хранилище артефактов (Docker) Cloud.ru