Приведены инструкции по самостоятельному размещению n8n
Установка на Ubuntu 24.04
Тестировалось на машине: 1vCPU, 1024Mb RAM (занято 512 Mb), 20Gb SSD (занято 5 Gb), 100Mb Eth
Настройка производится для сервера nero-n8n.duckdns.org с адресом 45.130.151.102
Задействованные порты:
46 - SSH - работа с сервером
80 - HHTP - веб-интерфейс (витрина). Постоянное перенаправление на HTTPs
443 - HTTPs - веб-интерфейс (витрина). Расшифровываеет и перенаправляет соединение на порт 5678
5678 - HTTP - внутренний веб-интерфейс (витрина). Закрыт от внешнего подключения
- Убедитесь, что запись DNS A вашего домена указывает на IP-адрес вашего сервера
Работаем от root
-
ssh-keygen
-
cd .ssh
-
ls -l
-
nano id_ed25519
Скопируем содержимое закрытого ключа из консоли и сохраним его в текстовом формате на ПК. Имя файла не критично. Важно: приватный ключ должен содержать:
-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
На ПК загрузим PuTTYgen. В меню: Conversions->Import key, найдем сохраненный файл закрытого ключа. Он загрузится в программу. Нажмем «Сохранить закрытый ключ» в формате PuTTY .ppk в D:\Program Files\PuTTY\KEYs. Загрузим файл .ppk в свой профиль SSH в программе PuTTY: Connection->SSH->Auth->Credentials. А также connection - keepAlive 15 sec. Порт для соединения 46 (вместо 22)! Сохраним свой профиль в PuTTY
-
mv id_ed25519.pub authorized_keys
-
chmod 644 authorized_keys
-
nano /etc/ssh/sshd_config:
Port 46
PubkeyAuthentication yes
PasswordAuthentication no
-
service ssh restart
-
reboot
-
apt update
-
apt install docker.io
2.5 docker --version
-
systemctl start docker
-
systemctl enable docker
-
systemctl status docker
-
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
chmod +x /usr/local/bin/docker-compose
-
docker-compose --version
docker run -d --restart unless-stopped -it \
--name n8n \
-p 5678:5678 \
-e N8N_HOST="nero-n8n.duckdns.org" \
-e WEBHOOK_TUNNEL_URL="https://nero-n8n.duckdns.org/" \
-e WEBHOOK_URL="https://nero-n8n.duckdns.org/" \
-v n8n_data:/home/node/.n8n
n8nio/n8n
- apt install nginx
- Правим файл /etc/nginx/sites-available/nero-n8n
server_names_hash_bucket_size 64;
server {
listen 80;
server_name nero-n8n.duckdns.org;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
-
ln -s /etc/nginx/sites-available/nero-n8n /etc/nginx/sites-enabled/
-
nginx -t
-
systemctl restart nginx
-
apt install certbot python3-certbot-nginx
-
certbot --nginx -d nero-n8n.duckdns.org
-
apt install ufw
-
ufw enable
-
ufw status
-
ufw allow 46/tcp (!)
-
ufw allow 80/tcp
-
ufw allow 443/tcp
-
ufw reload
-
ufw status
-
reboot
Если возникают проблемы с Nginx, нобходимо смотреть логи по адресу /var/log/nginx/error.log
Если возникают проблемы с Docker, необходимо проверить что служба Docker запущена: systemctl status docker
Если возникают проблемы с контейнером, его необходимо проверить командой: docker ps -a
-
Сделать резервную копию /var/lib/docker/volumes/n8n_data
-
docker stop n8n
-
docker rm n8n
-
docker images
-
docker rmi [имя образа n8n]
-
[заново запустить контейнер командой, описанной выше]