網頁

n8n 零成本部署實戰:在 Hugging Face Spaces 架設並串接 Supabase 雲端資料庫


簡要概述:

本文旨在教您如何在 Hugging Face Spaces零成本部署 n8n 自動化平台。我們將採用社群優化的 Docker 映像檔,並強制透過環境變數,將 n8n 的核心資料(如 Workflow 與 Credentials)寫入 Supabase (PostgreSQL)

此架構巧妙地實現了「運算」與「儲存」分離的高效免費輕量化方案。它徹底解決了 Hugging Face Spaces 免費層容器重啟後資料遺失的痛點,確保您的自動化流程能夠透過 Supabase 資料庫獲得永久且可靠的儲存

✅ 優點 (Pros)

  1. 公網存取 (Public URL):

    • 這是最大的優勢。你立刻擁有一個 https://... 的網址。

    • Webhook 友善: 外部服務(如 Line, Telegram, Stripe, GitHub)可以直接把資料推送到你的 n8n,不需要繁瑣的穿透設定 (Tunneling)。

    • 隨處編輯: 你可以在公司、家裡或手機上登入 n8n 進行編輯。

  2. 免硬體維護:

    • 不需要擔心電腦關機、斷電或網路中斷的問題。Hugging Face 的基礎設施相對穩定。

  3. 零成本入門:

    • Hugging Face 的免費層級 (Free Tier) 提供基本的 CPU (2 vCPU) 和 RAM (16GB),對個人自動化來說相當大方。




詳細步驟 :


1. 準備 Supabase 資料庫 (作為永久記憶體)


  1. 操作目的: n8n 預設使用 SQLite,容器重啟後資料會消失。我們需要一個雲端 PostgreSQL 資料庫來保存您的自動化流程與憑證。

  2. 步驟描述:

    1. 登入(or 註冊) Supabase ,會需要建立 Organization,Name可以自己取,其餘設定則維持預設,最後按下 Create organization 見下圖紅框處,以下皆同。

  1. 建立一個新專案 (Create a new project )。

    1. Project name 可以自己取。

    2. 設定資料庫密碼 (Database Password) 並妥善保存,稍後無法再次查看

    3. 選擇 Region。

    4. Create new project。

 

  1. 等待資料庫建立完成後,點擊 Connect 按鈕 (中上方)。

  1. 會進入Connect to your project 頁面

    1. 選 Connection String 分頁

    2. Method 選擇 Transaction pooler

    3. 點擊中間的 View parameters 來查看詳細的連線參數

  1. 關鍵資訊擷取: 請記下以下資訊(稍後需填入 Hugging Face):

    1. Host: xxxxxxxxx.pooler.supabase.com

    2. Port: 6543

    3. Database: postgres

    4. User: postgres.Project ID

    5. Password: (您剛設定的密碼)

2. 複製 Hugging Face Space (運算核心)


  1. 操作目的: 使用 baoyin2024/n8n-free 這個專為 Hugging Face 優化的 Docker 映像檔,它解決了權限與 Port 對應的問題。

  2. 方法:

    1. 前往來源 Space:https://huggingface.co/spaces/baoyin2024/n8n-free

    2. 點擊右上角的 三點選單 -> Duplicate this Space,接著會出現參數設置頁。

  1. Owner: 選擇您的帳號。

  2. Space Name: 取個您喜歡的名字 (例如 my-n8n-engine)。

  3. Visibility: 可以選擇設為 private (私有),因為 n8n 包含敏感憑證。但只有設為 public (公開) 時,Webhook 才能正常運作

  4. 繼續往下設定環境變數 (核心連接設定)。依下表設置,其餘使用預設值。

變數名稱 (Name)

值 (Value) 範例

說明

Space secrets



DB_POSTGRESDB_PASSWORD

(您的 Supabase 密碼)

機密! 資料庫連線密碼。

DB_POSTGRESDB_USER



N8N_ENCRYPTION_KEY

(隨機長字串 or 自行設置)

極重要! 用來加密您存在 n8n 裡的 API Key。一旦設定請勿更改,否則所有憑證會失效。

Space variables



GENERIC_TIMEZONE

Asia/Taipei

時區設置

TZ

Asia/Taipei

時區設置

DB_TYPE

postgresdb

指定資料庫類型為 PostgreSQL。

DB_POSTGRESDB_HOST

xxx.pooler.supabase.com

Supabase 的連線主機位址 (Host)。

DB_POSTGRESDB_PORT

6543

Supabase 的預設連線埠。

DB_POSTGRESDB_DATABASE

postgres

預設資料庫名稱。

N8N_EDITOR_BASE_URL

https://Owner-space name.hf.space

Owner 要改成最上面自己選擇的帳號名稱

space name 要改成最上面自己命名的名稱

WEBHOOK_URL

https://Owner-space name.hf.space

同上

N8N_HOST

https://Owner-space name.hf.space

同上


  1. 滑到最底部,點擊 Duplicate Space

3. 部署與初始化


  1. 操作目的: 讓設定生效並啟動 n8n。

  2. 方法:

    1. 設定完所有變數後,Hugging Face 通常會自動開始部署。觀察啟動過程。

    2. 如果沒有看到啟動過程,可以點擊上方的 Logs 標籤。

    3. 關鍵訊號: 當您在 Container 中看到 Editor is now accessible via : https://Owner-space name.hf.space 時,代表成功連線到 Supabase 並啟動。

  1. 連到 https://Owner-space name.hf.space

    1. Set up owner account : 設定帳號、姓名與密碼。

  1. Customize n8n to you (自行填寫,最後按下 Get started )

  1. Get paid features for free (forever) : 這裡是可以得到一些進階功能,只要按下右下方 Send me a free license key 按鈕,再到 E-mail 中按下 Activate Llicense Key 按鈕即可。


  1. 可以開始 Create your first workflow




注意事項與疑難排解


  1. Hugging Face 的休眠機制:

    • 免費版的 Spaces 在 48 小時無活動後會進入「休眠 (Sleep)」。

    • 影響: Webhook 觸發可能會延遲(因為需要冷啟動時間,約 30-60 秒)。

    • 解法: 由於資料在 Supabase,休眠重啟不會遺失資料。若需要 24/7 即時響應,建議升級 HF Pro 方案。

  2. Encryption Key 的重要性:

    • N8N_ENCRYPTION_KEY 千萬不能遺失。如果您重建 Space 但想保留 Supabase 裡的資料,必須使用完全相同的 Key,否則 n8n 無法解密資料庫中儲存的 API Keys (Credentials)。

  3. 升級與備份:

    • 雖然使用外部資料庫,但仍建議定期在 n8n 介面中使用 "Export Workflows" 功能下載備份,以防萬一。

參考資源





沒有留言:

張貼留言