Вступ
n8n — це один із найпотужніших інструментів для автоматизації робочих процесів із відкритим кодом, доступних на сьогодні. На відміну від SaaS-альтернатив, таких як Zapier або Make, n8n надає вам повний контроль над вашими даними та автоматиза цією — але лише в тому випадку, якщо ви самостійно забезпечуєте хостинг. VPS на базі Linux є ідеальним середовищем для цього: він завжди доступний, недорогий і повністю під вашим контролем.
Цей посібник проведе вас крізь весь процес налаштування готового до експлуатації, самостійно розміщеного екземпляра n8n на VPS під Linux. Ви пройдете шлях від порожнього сервера до повністю захищеного розгортання n8n із підтримкою SSL, що включає Docker, Nginx, PostgreSQL, автоматичне резервне копіювання та посилену конфігурацію безпеки.
Основні висновки
- n8n на VPS надає вам необмежену кількість робочих процесів, відсутність обмежень на використання та повне право власності на дані
- Docker — це рекомендований спосіб встановлення, що спрощує оновлення та ізоляцію
- PostgreSQL — рекомендована база даних для виробничих навантажень (а не SQLite)
- Для використання у виробничому середовищі необхідний зворотний проксі-сервер (Nginx) із SSL-сертифікатом Let’s Encrypt
- Ваш VPS повинен мати щонайменше 1 vCPU та 2 ГБ оперативної пам’яті для безперебійної роботи n8n із PostgreSQL
- Регулярні автоматичні резервні копії захищають дані ваших робочи х процесів та облікові дані
Що таке n8n?
n8n (вимовляється як «n-eight-n») — це платформа для автоматизації робочих процесів з відкритим кодом, яка дозволяє підключати додатки, API та сервіси за допомогою візуального редактора на основі вузлів. Вона підтримує понад 400 інтеграцій «з коробки» та дозволяє запускати власний код на JavaScript або Python у робочих процесах.
Ключова відмінність n8n від конкурентів зводиться до трьох речей: власності, вартості та гнучкості.
**Право власності: **Коли ви самостійно хостуєте n8n, ваші дані робочих процесів, облікові дані та журнали виконання ніколи не залишають ваш сервер. Для команд, що працюють із конфіденційними даними клієнтів, фінансовими записами або власною бізнес-логікою, це має величезне значення. Хмарні платформи зберігають вашу логіку автоматизації на своїй інфраструктурі, що підпадає під їхні політики зберігання даних та рівень безпеки.
**Вартість: **У хмарному тарифі n8n оплата здійснюється за кожне виконання робочого процесу, що швидко накопичується при великому обсязі автоматизації. Середня команда, яка виконує тисячі операцій щодня, може витрачати сотні доларів щомісяця. На власному VPS, після оплати сервера, кількість виконань є необмеженою без додаткових витрат.
**Гнучкість: **Самохостинговий n8n дозволяє встановлювати вузли спільноти, виконувати довільний код у робочих процесах, підключатися до внутрішніх сервісів, недоступних із публічного Інтернету, та налаштовувати кожен аспект розгортання на свій розсуд. Хмарні тарифи обмежують багато з цих можливостей.
Необхідні умови
Перш ніж почати, переконайтеся, що у вас є:
- VPS на базі Linux з Ubuntu 22.04 або 24.04 (рекомендується). Перевірте, чи пропонує ваш провайдер Ubuntu у обраному вами тарифному плані, оскільки деякі базові тарифи передбачають лише інші дистрибутиви
- Користувач без прав root із правами sudo
- Доменне ім’я, на яке вказує IP-адреса вашого VPS (наприклад, n8n.yourdomain.com)
- Доступ до вашого сервера через SSH
- Базові знання командного рядка Linux
Вибір відповідного VPS
Сервер, який ви оберете, безпосередньо впливає на продуктивність n8n. Як мінімум, вам знадобиться 1 vCPU, 2 ГБ оперативної пам’яті та 20 ГБ SSD-сховища. Додаткова оперативна пам’ять порівняно з мінімальною інсталяцією на базі SQLite потрібна тому, що PostgreSQL, Nginx та n8n працюють одночасно.
Універсальна платформа для ефективного SEO
За кожним успішним бізнесом стоїть потужна SEO-кампанія. Але з незліченною кількістю інструментів і методів оптимізації на вибір може бути важко зрозуміти, з чого почати. Що ж, не бійтеся, адже у мене є те, що вам допоможе. Представляємо вам універсальну платформу Ranktracker для ефективного SEO
Ми нарешті зробили реєстрацію на Ranktracker абсолютно безкоштовною!
Створіть безкоштовний обліковий записАбо Увійдіть, використовуючи свої облікові дані
Для команд із великою кількістю користувачів, складними багатоетапними робочими процесами або високою пропускною здатністю вебхуків рекомендується перейти на 2 vCPU та 4 ГБ оперативної пам’яті. Об’єм сховища повинен становити щонайменше 40 ГБ, якщо ви плануєте зберігати довгі журнали виконання.
PetroSky пропонує тарифні плани VPS з NVMe у Парижі та Монреалі, де n8n доступний як додаток, що встановлюється одним кліком під час оформлення замовлення: скрипт інсталяції з відкритим кодом розгортає n8n за допомогою Docker Compose та автоматично налаштовує HTTPS через Caddy та Let’s Encrypt. Цей посібник описує ручний спосіб, який працює з будь-яким провайдером.
Вибираючи провайдера VPS, також враховуйте географічне розташування. Розміщуйте свій екземпляр n8n у регіоні, найближчому до сервісів, до яких він найчастіше підключатиметься — це зменшить затримку API під час виконання ваших робочих процесів.
Крок 1: Оновлення сервера
Підключіться до вашого VPS через SSH і виконайте повне оновлення системи перед будь-якою інсталяцією:
sudo apt update && sudo apt upgrade -y
Це гарантує, що ви маєте найновіші виправлення безпеки та що всі системні бібліотеки є актуальними перед додаванням Docker та іншого програмного забезпечення.
Перезавантажте систему, якщо було застосовано оновлення ядра:
sudo reboot
Після повторного підключення через SSH створіть окремого системного користувача для запуску n8n. Запуск служб під правами root становить ризик для безпеки:
sudo adduser n8nuser
sudo usermod -aG sudo n8nuser
su - n8nuser
Крок 2: Встановіть Docker та Docker Compose
Офіційно рекомендований n8n спосіб встановлення — це Docker. Docker ізолює n8n та його залежності від решти вашої системи, що спрощує оновлення та відкат до попередніх версій.
Встановіть Docker за допомогою офіційного зручного скрипта:
curl -fsSL https://get.docker.com | sudo sh
У документації Docker зазначено, що цей зручний скрипт не рекомендується використовувати в виробничих середовищах, оскільки він встановлює найновішу версію, не даючи можливості вибрати версію. Якщо ви хочете зафіксувати версії Docker, скористайтеся методом репозиторію apt із посібника з інсталяції Docker для Ubuntu (docs.docker.com/engine/install/ubuntu/).
Додайте свого користувача до групи Docker, щоб мати змогу виконувати команди Docker без sudo:
sudo usermod -aG docker $USER
newgrp docker
Перевірте, чи Docker працює правильно:
docker --version
docker compose version
Обидві команди повинні повернути рядки з версіями без помилок. Якщо Docker Compose не знайдено, встановіть його вручну:
sudo apt install docker-compose-plugin -y
Крок 3: Налаштування PostgreSQL для виробничого середовища
За замовчуванням n8n використовує SQLite як базу даних. SQLite підходить для особистого використання та невеликих робочих процесів, але погано обробляє одночасні записи, що проявляється у сповільненні роботи та помилках «база даних заблокована», коли одночасно виконується багато робочих процесів. Для розгортання у виробничому середовищі правильним вибором є PostgreSQL.
Універсальна платформа для ефективного SEO
За кожним успішним бізнесом стоїть потужна SEO-кампанія. Але з незліченною кількістю інструментів і методів оптимізації на вибір може бути важко зрозуміти, з чого почати. Що ж, не бійтеся, адже у мене є те, що вам допоможе. Представляємо вам універсальну платформу Ranktracker для ефективного SEO
Ми нарешті зробили реєстрацію на Ranktracker абсолютно безкоштовною!
Створіть безкоштовний обліковий записАбо У війдіть, використовуючи свої облікові дані
Запустіть PostgreSQL у Docker разом із n8n:
mkdir ~/n8n && cd ~/n8n
Створіть файл середовища для безпечного зберігання ваших секретних даних. Ніколи не вказуйте паролі безпосередньо у файлі compose:
nano ~/n8n/.env
Додайте наступне, замінивши значення-заповнювачі на надійні унікальні паролі:
POSTGRES_USER=n8n
POSTGRES_PASSWORD=ваш_надійний_пароль_для_бази_даних_тут
POSTGRES_DB=n8n
N8N_ENCRYPTION_KEY=ваш_випадковий_рядок_з_32_символів_тут
Створіть безпечний ключ шифрування за допомогою команди:
openssl rand -hex 16
Використовуйте отриманий результат як ваш N8N_ENCRYPTION_KEY. Цей ключ шифрує облікові дані, що зберігаються в n8n — якщо ви його втратите, усі збережені облікові дані стануть невідновними.
Крок 4: Створіть файл Docker Compose для n8n
Створіть файл docker-compose.yml у вашому каталозі n8n:
nano ~/n8n/docker-compose.yml
Вставте таку конфігурацію:
services:
postgres:
image: postgres:16-alpine
restart: always
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Europe/London
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- EXECUTIONS_MODE=regular
- N8N_LOG_LEVEL=info
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:
n8n_data:
Примітки щодо конфігурації:
- Прив'язка порту 127.0.0.1:5678:5678 гарантує, що доступ до n8n можливий лише локально. Nginx оброблятиме весь зовнішній трафік — ніколи не відкривайте порт 5678 безпосередньо в Інтернеті.
- Використання `depends_on` з умовою `service_healthy` гарантує, що n8n чекатиме, поки PostgreSQL повністю підготується, перш ніж запуститися. Без цього n8n дасть збій під час першого запуску, якщо база даних ще не приймає з’єднання.
- N8N_LOG_LEVEL=info надає корисні операційні журнали, не переповнюючи дисковий простір, як це робив би параметр debug.
Крок 5: Встановлення та налаштування Nginx
Nginx буде виконувати роль зворотного проксі-сервера, перенаправляючи HTTPS-трафік з порту 443 до вашого контейнера n8n на порту 5678. Він також обробляє завершення SSL-з’єднання, що означає, що n8n самому не потрібно керувати сертифікатами.
sudo apt install nginx -y
Видаліть сайт за замовчуванням і створіть новий блок сервера для n8n:
sudo rm /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/sites-available/n8n
Вставте наступне:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name n8n.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
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;
chunked_transfer_encoding on;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 90s;
client_max_body_size 50m;
}
}
Блок map у верхній частині коректно обробляє заголовки оновлення WebSocket. n8n використовує WebSockets для оновлень у реальному часі в редакторі, тому ця конфігурація є важливою — без неї візуальний редактор не працюватиме належним чином.
Директива client_max_body_size 50m дозволяє робочим процесам отримувати великі корисні навантаження вебхуків. За замовчуванням обмеження Nginx становить 1 МБ, що замало для робочих процесів, які обробляють завантаження файлів або великі відповіді у форматі JSON.
Увімкніть цю конфігурацію та протестуйте її:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Крок 6: Оформіть SSL-сертифікат за допомогою Let’s Encrypt
Встановіть Certbot та плагін для Nginx:
sudo apt install certbot python3-certbot-nginx -y
Замовт е сертифікат для вашого домену:
sudo certbot --nginx -d n8n.yourdomain.com
Дотримуйтесь вказівок. Коли з’явиться запит щодо перенаправлення HTTP-трафіку на HTTPS, виберіть «Так» (варіант 2). Certbot автоматично оновить конфігурацію Nginx для обробки цього перенаправлення та встановить повний ланцюжок сертифікатів.
Перевірте, чи правильно налаштовано автоматичне поновлення:
sudo certbot renew --dry-run
Certbot встановлює таймер systemd, який автоматично поновлює сертифікати кожні 12 годин. Сертифікати поновлюються, коли до закінчення їхнього терміну дії залишається менше 30 днів. Вам ніколи не доведеться поновлювати їх вручну.
Крок 7: Запустіть n8n
Поверніться до каталогу n8n і запустіть усі служби:
cd ~/n8n
docker compose up -d
Docker завантажить образи PostgreSQL та n8n, створить томи, спочатку запустить PostgreSQL, дочекається успішного завершення перевірки працездатності, а потім запустить n8n. Під час першого запуску цей процес займає 1–3 хвилини.
Перевірте, чи працюють обидва контейнери:
docker compose ps
Ви повинні побачити, що і postgres, і n8n вказані зі статусом Up. Якщо n8n показує Restarting, перевір те журнали:
docker compose logs n8n --tail=50
Як тільки обидва контейнери працюватимуть нормально, відкрийте браузер і перейдіть на https://n8n.yourdomain.com. Вам буде запропоновано створити обліковий запис власника, вказавши адресу електронної пошти та пароль. Цей обліковий запис матиме повний адміністративний доступ до вашого екземпляра n8n.
Крок 8: Налаштування n8n на запуск під час завантаження
Директива restart: always у файлі docker-compose.yml гарантує, що всі контейнери автоматично перезапускатимуться у разі збою або перезавантаження сервера.
Перевірте це, перезавантаживши сервер:
sudo reboot
Після повторного підключення через SSH переконайтеся, що n8n запустився автоматично:
docker compose -f ~/n8n/docker-compose.yml ps
Обидва контейнери мають відображатися як такі, що працюють, без будь-якого ручного втручання.
Крок 9: Налаштування автоматичного резервного копіювання
Ваші дані n8n — робочі процеси, облікові дані та історія виконання — зберігаються у двох місцях: у базі даних PostgreSQL та у томі Docker n8n_data (де зберігаються ключі шифрування та деякі параметри конфігурації). Регулярно створю йте резервні копії обох.
Створіть скрипт резервного копіювання:
nano ~/n8n/backup.sh
Вставте наступний текст:
#!/bin/bash
BACKUP_DIR="/home/n8nuser/backups"
DATE=$(date +%Y-%m-%d_%H-%M)
LOG_FILE="$BACKUP_DIR/backup.log"
# Переконайтеся, що каталог резервного копіювання існує, перш ніж робити що-небудь інше
mkdir -p "$BACKUP_DIR"
# Створити дамп PostgreSQL
DUMP_FILE="$BACKUP_DIR/n8n_db_$DATE.sql"
docker compose -f /home/n8nuser/n8n/docker-compose.yml exec -T postgres \
pg_dump -U n8n n8n > "$DUMP_FILE"
# Перевірка, чи вивантаження пройшло успішно і чи файл не порожній
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
echo "ПОМИЛКА: Створення резервної копії бази даних не вдалося $DATE" >> "$LOG_FILE"
rm -f "$DUMP_FILE"
exit 1
fi
# Створити резервну копію ключа шифрування та змінних середовища
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Створити резервну копію тома n8n_data (конфігурація екземпляра та встановлені вузли спільноти)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
tar czf /backup/n8n_data_$DATE.tar.gz -C /data .
# Стиснення дампа бази даних
gzip "$DUMP_FILE"
# Зберегти лише резервні копії за останні 7 днів
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +7 -delete
find "$BACKUP_DIR" -name "*.bak" -mtime +7 -delete
find "$BACKUP_DIR" -name "n8n_data_*.tar.gz" -mtime +7 -delete
echo "Резервне копіювання завершено: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"
Назва тома n8n_n8n_data походить від того, що Docker Compose додає до назви тома префікс із назвою папки проєкту (n8n). Перевірте свою назву за допомогою команди docker volume ls.
Надайте скрипту права на виконання та заплануйте його за допомогою cron:
chmod +x ~/n8n/backup.sh
crontab -e
Додайте цей рядок, щоб резервне копіювання виконувалося щодня о 2:00:
0 2 * * * /home/n8nuser/n8n/backup.sh >> /home/n8nuser/backups/backup.log 2>&1
Для забезпечення резервного копіювання поза межами локальної мережі розгляньте можливість синхронізації каталогу резервних копій із постачальником об’єктного сховища, сумісного з S3, за допомогою rclone або aws s3 sync.
Крок 10: Увімкніть базові заходи безпеки
Налаштування брандмауера
Встановіть UFW і дозвольте лише ті порти, які потрібні вашому серверу:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
Перевірте, чи правила активні:
sudo ufw status verbose
Ви повинні побачити, що порти 22 (SSH), 80 (HTTP) та 443 (HTTPS) дозволені. Одне застереження: Docker записує власні правила брандмауера та обходить UFW для опублікованих портів контейнерів. Порт 5678 залишається приватним, оскільки файл compose прив’язує його до 127.0.0.1, а не через UFW, тому ніколи не змінюйте цю прив’язку на 0.0.0.0.
Вимкніть аутентифікацію за паролем для SSH
Якщо ви використовуєте SSH-ключі (а вам слід це робити), повністю вимкніть вхід у SSH за допомогою пароля. Спочатку переконайтеся, що обліковий запис n8nuser може увійти за допомогою вашого ключа. З вашого локального комп’ютера виконайте:
ssh-copy-id n8nuser@your_server_ip
Потім відредагуйте конфігурацію SSH-сервера:
sudo nano /etc/ssh/sshd_config
Встановіть такі значення:
PasswordAuthentication no
PermitRootLogin no
sudo systemctl restart ssh
На багатьох хмарних образах Ubuntu файл у каталозі /etc/ssh/sshd_config.d/ (часто 50-cloud-init.conf) встановлює значення PasswordAuthentication yes, і саме воно має пріоритет, оскільки sshd використовує перше значення, яке зчитує. Перевірте, яке значення насправді діє:
sudo sshd -T | grep -i passwordauthentication
Повинно з’явитися повідомлення passwordauthentication no. Якщо цього не сталося, змініть значення у файлі перевизначення та перезапустіть SSH ще раз.
Не закривайте поточну сесію SSH, доки не переконаєтеся, що вхід за допомогою ключа працює в новому вікні терміналу.
Обмеження швидкості на сторінці входу в n8n
Додайте обмеження швидкості, щоб уповільнити атаки методом грубої сили на точку входу n8n.
Універсальна платформа для ефективного SEO
За кожним успішним бізнесом стоїть потужна SEO-кампанія. Але з незліченною кількістю інструментів і методів оптимізації на вибір може бути важко зрозуміти, з чого почати. Що ж, не бійтеся, адже у мене є те, що вам допоможе. Представляємо вам універсальну платформу Ranktracker для ефективного SEO
Ми нарешті зробили реєстрацію на Ranktracker абсолютно безкоштовною!
Створіть безкоштовний обліковий записАбо Увійдіть, використовуючи свої облікові дані
**Важливо: **Директива limit_req_zone має бути розміщена всередині блоку http {} у вашому головному файлі конфігурації Nginx — а не всередині блоку server. Відкрийте головний файл конфігурації:
sudo nano /etc/nginx/nginx.conf
Додайте цей р ядок у існуючий блок http {}:
http {
...
limit_req_zone $binary_remote_addr zone=n8n_login:10m rate=5r/m;
...
}
Потім у конфігурації вашого сайту n8n (/etc/nginx/sites-available/n8n) додайте цей блок location всередині блоку server, який слухає порт 443 (Certbot створив його на кроці 6), поруч з існуючим блоком location /. Nginx не передає проксі-заголовки з блоку location /, тому їх повторюють тут:
location /rest/login {
limit_req zone=n8n_login burst=5 nodelay;
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
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;
}
Перезавантажте Nginx, щоб застосувати зміни:
sudo nginx -t && sudo systemctl reload nginx
Це обмежує кількість спроб входу з кожної IP-адреси приблизно до 5 на хвилину, з невеликим допуском на короткочасні сплески активності.
Оновлюйте n8n та PostgreSQL
Регулярно завантажуйте та перезапускайте систему з використанням найновіших образів:
cd ~/n8n
docker compose pull
docker compose up -d
Docker завантажить найновіші образи n8nio/n8n та postgres і перезапустить лише ті контейнери, для яких доступна новіша версія.
Для виробничого середовища рекоменду ється зафіксувати образ n8n на певний тег версії (docker.n8n.io/n8nio/n8n:<version>, взятий із нотаток до випуску n8n) та оновлювати його обережно, щоб під час рутинного завантаження образ ніколи не переходив на наступну основну версію, доки ви не ознайомитеся зі списком змін.
Усунення типових проблем
Контейнер n8n постійно перезапускається
Перевірте журнали контейнера одразу після початку циклу перезапусків:
docker compose logs n8n --tail=100
Поширені причини:
- Помилка підключення до бази даних: Переконайтеся, що PostgreSQL працює коректно, за допомогою команди `docker compose ps`. Перевірте, чи значення POSTGRES_PASSWORD у вашому файлі .env збігається з тим, що було вказано під час ініціалізації бази даних.
- Відсутній або змінений ключ шифрування: Якщо N8N_ENCRYPTION_KEY не встановлено або було змінено після першого запуску, n8n не зможе розшифрувати збережені облікові дані та вийде з ладу.
- Недостатньо оперативної пам’яті: PostgreSQL та n8n разом можуть використовувати 1–1,5 ГБ оперативної пам’яті. Перевірте доступний обсяг пам’яті за допомогою команди `free -h`.
Веб-хуки не працюють
Для роботи веб-хуків n8n має бут и доступним з Інтернету на вашому домені. Перевірте:
- Запис DNS типу A вашого домену вказує на IP-адресу вашого VPS: dig n8n.yourdomain.com
- Nginx працює: sudo systemctl status nginx
- Порт 443 відкритий: sudo ufw status
- Змінна середовища WEBHOOK_URL точно відповідає вашому публічному домену, включаючи кінцеву косу риску
Редактор n8n не завантажується належним чином
Якщо візуальний редактор завантажується, але відображає порожнє полотно робочого процесу або оновлення в реальному часі перестають працювати, це означає, що з’єднання WebSocket не працює. Перевірте, чи присутній блок map $http_upgrade у вашій конфігурації Nginx і чи використовуєте ви змінну $connection_upgrade — а не літеральний рядок «upgrade» — у рядку proxy_set_header Connection.
Помилки SSL-сертифіката
Якщо Certbot видає помилку перевірки домену, перевірте, чи порт 80 доступний з Інтернету:
curl -I http://n8n.yourdomain.com
Якщо запит завершується через перевищення часу очікування, можливо, брандмауер вашого провайдера VPS блокує порт 80. Окрім UFW, перевірте правила брандмауера в хмарній консолі.
Висновок
Самостійне розгортання n8n на VPS під Linux надає вам готову до використання платформу для автоматизації робочих процесів без обмежень на виконання, з повною конфіденційністю даних та гнучкістю для реалізації будь-якої необхідної інтеграції. Налаштування, описані в цьому посібнику — Docker, PostgreSQL, зворотний проксі Nginx, SSL-сертифікат Let’s Encrypt, автоматичне резервне копіювання та посилення безпеки — це той самий стек, що використовується в виробничих середовищах, і він забезпечує вам стабільну та безпечну основу для подальшого розвитку.
На відміну від мінімальної інсталяції за допомогою команди Docker run, ця конфігурація створена для того, щоб витримувати перезавантаження сервера, обробляти одночасне виконання робочих процесів та плавно відновлюватися після збоїв. Ваші облікові дані шифруються, щоночі створюються резервні копії ваших даних, а кінцева точка входу має обмеження частоти запитів для захисту від атак методом грубої сили.
Як тільки ваш екземпляр запрацює, ознайомтеся з вбудованими вузлами n8n для баз даних, API, веб-хуків та інтеграції з штучним інтелектом, щоб одразу почати автоматизацію своїх робочих процесів. Самостійно розміщений форум спільноти за адресою community.n8n.io також є чудовим джерелом ідей для робочих процесів, усунення несправностей вузлів та порад щодо розгортання.

