昨天我們透過 Docker Compose 快速啟動 n8n,今天挑戰更貼近「傳統伺服器」的方式:直接在 VM 或 Bare Metal 上安裝 n8n。這種方式適合不想額外學習 Docker,或需要更細緻控制系統環境的人。但因為實體機器本身跟 OS 都會影響部署,所以以下為我強者朋友的單純分享。
官方文件建議:
在 Ubuntu 例子:
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential curl python3 git
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
node -v
npm -v
n8n 可以直接透過 npm 安裝:
sudo npm install n8n -g
安裝完成後,就能直接啟動:
n8n start
預設會在 http://localhost:5678
提供 Web UI。
在生產環境,我們通常不會直接用 n8n start
,而是用 systemd 管理:
建立檔案 /etc/systemd/system/n8n.service
:
[Unit]
Description=n8n Automation
After=network.target
[Service]
ExecStart=/usr/bin/n8n
Restart=always
User=ubuntu
Environment=DB_TYPE=postgresdb
Environment=DB_POSTGRESDB_HOST=127.0.0.1
Environment=DB_POSTGRESDB_DATABASE=n8n
Environment=DB_POSTGRESDB_USER=n8n
Environment=DB_POSTGRESDB_PASSWORD=n8npass
[Install]
WantedBy=multi-user.target
啟動並設為開機自動執行:
sudo systemctl enable n8n
sudo systemctl start n8n
這樣 n8n 就能穩定跑在 VM 上,適合長期使用。
sudo ufw allow 5678
pg_hba.conf
有允許本地連線,並檢查 DB 使用者密碼是否正確。到這裡,我們已經能在 VM 上穩定部署 n8n。下一步,Day 16 將挑戰「Cloud Run 部署」,讓 n8n 可以隨需啟動、與 GCP 原生服務結合。