How to Install n8n on Ubuntu Server (Step-by-Step Guide)
1. Updating Modules and Installation Process
sudo apt update & sudo apt upgrade -y
sudo apt install -y curl gnupg
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node -v
npm install -g npm@latest
npm -v
npm install n8n -g
n8n start
http://server-ip-adress:5678
Ctrl + C
2. Automatic Startup Settings with PM2 Module
sudo npm install -g pm2
pm2 start n8n
pm2 startup
pm2 save
3. Installing Nginx and SSL Certificate
sudo apt install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo apt install certbot python3-certbot-nginx
DNS Record
Type A your-domain or sub domain server-ip-addres Proxy status > Only DNS no Proxy
sudo certbot --nginx -d your-domain
4. Redirection File Setup
sudo nano /etc/nginx/sites-available/n8n
server {
listen 443 ssl;
server_name asd.bymsa.org;
ssl_certificate /etc/letsencrypt/live/asd.bymsa.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/asd.bymsa.org/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header 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;
}
}
server {
listen 80;
server_name asd.bymsa.org;
return 301 https://$host$request_uri;
}
Ctrl + O Enter Ctrl + X
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
systemctl reload nginx
reboot