n8n 是那種您一開始只是輕輕用一下、然後悄悄把一半營運都路由過去的工具。到那時,「它跑在別人雲上的一個席位、按次執行計費、我的 API 金鑰待在他們的伺服器上」就開始讓人覺得沒那麼美好了。自託管把這三樣都修好——固定成本、無執行上限,您的金鑰留在您自己的機器上。用 Docker,這是個十五分鐘的活。
它實際需要多大的伺服器
先給誠實的數字,好讓您不超買也不少買:
- 約 2 GB RAM 是甜點——n8n 加它的 Postgres 資料庫加正常工作流在這裡都很舒服。
- 1 GB 在您工作流輕時可用,但大一點的執行您會注意到。
- 4 GB 如果您做重度並行執行、或推大負載過去。
n8n 靜息時不吃 CPU;它在執行時飆升。一台 2 核機器對多數設定都行。(把規格配到負載的更多內容見設定指南。)
Docker 搭建
在一台全新的 Ubuntu/Debian 機器上,裝 Docker:
curl -fsSL https://get.docker.com | sudo sh
建一個資料夾和一個 docker-compose.yml——帶持久卷的 n8n 加 Postgres:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_PASSWORD=change-me
volumes:
- ./n8n-data:/home/node/.n8n
depends_on: [db]
db:
image: postgres:16
restart: always
environment:
- POSTGRES_PASSWORD=change-me
- POSTGRES_DB=n8n
volumes:
- ./db-data:/var/lib/postgresql/data
sudo docker compose up -d
兩點值得指出:那些卷(n8n-data、db-data)就是讓您的工作流跨重新啟動和升級存活下來的東西——別跳過它們。還有 n8n 綁在 127.0.0.1 上,而不是 0.0.0.0——它沒有直接暴露到公用。這是故意的;下一步安全地處理存取。
存取:HTTPS 還是通道
- 公用 URL(OAuth 整合和 webhook 需要): 把一個子網域指向伺服器,在
127.0.0.1:5678前面跑一個反向代理(Caddy 最省事——自動 HTTPS)。這裡適合一個獨立IP方案,因為您掌控埠和 DNS。 - 只給自己用、沒有網域: 跳過代理,透過 SSH 通道存取它——
ssh -L 5678:127.0.0.1:5678 user@server,然後開啟localhost:5678。在 NAT VPS 上也沒問題。
鎖死它、讓它保活
n8n 持有您的 API 金鑰和憑據,所以機器必須嚴實:在您放進真實憑據之前,先做安全清單(SSH 金鑰、防火牆、停用密碼登入)。compose 檔案裡的 restart: always 已經意味著 Docker 會在崩潰或重新啟動後把 n8n 拉回來——您的正常執行時間已經搞定。
值得嗎?
對量誠實一點。如果您不停地跑自動化,自託管在成本上贏(固定 vs 按次執行),並去掉任何工作流/執行上限。如果您一個月觸發幾個流,託管席位更省心。但掌控這個論點無論如何都成立:您的工作流、您的資料、您的金鑰——在您自己的伺服器上,不是租的。 對多數認真用起 n8n 的人來說,那就是決定性因素。
一台 2 GB 的機器、一個 compose 檔案、一個網域(或一條通道),您就在跑自己的自動化中樞了——可用加密貨幣、免 KYC 付款,幾分鐘內上線。
開箱即用的設定: 見 面向 n8n 的 VPS——推薦方案加一分鐘的加密部署。
評論
目前還沒有評論。歡迎成為第一位。