iT邦幫忙

2025 iThome 鐵人賽

DAY 2
1

前一篇淺談了Flutter、LLM與n8n結合無限可能性,激發了滿滿的靈感。今天將動手親自搭建屬於自己的n8n環境,創建第一個自動化工作流,感受「讓機器為你工作」的快樂感。

步驟一:用Docker快速搭建 n8n

自建n8n讓我們擁有100%的數據掌控權與無限制的客製化空間,而Docker是實現這個想法最安全和快速的途徑。

為什麼選擇 Docker?

  • 環境隔離:n8n 及其所有依賴項被打包在一個獨立的「容器」中,不污染你的主機系統。
  • 一鍵啟動:只需一個docker-compose.yml檔案和一行指令,就能啟動或關閉整個服務。
  • 輕鬆遷移:未來想更換伺服器?只需複製貼上設定檔,就能在新家完美重現。

快速搭建步驟:

Step1. 安裝Docker與Docker Compose:如果你的電腦還沒有這兩樣神器,請先參考官方文件進行安裝。
https://www.docker.com/get-started/ (若你的電腦為Mac M1以上的晶片,就選擇Apple Silicon來下載安裝喔。)

https://ithelp.ithome.com.tw/upload/images/20250920/20177971nod3mpqgBE.png

Step2. 建立docker-compose.yml檔案:
建立一個名為docker-compose.yml的檔案,貼上以下內容:

version: '3.7'
https://ithelp.ithome.com.tw/markdown
services:
  n8n:
    image: n8nio/n8n
    restart: always
    ports:
      - "5678:5678"
    volumes:
      - ./n8n_data:/home/node/.n8n
    environment:
      - GENERIC_TIMEZONE=Asia/Taipei
  • ports:將你電腦的5678連接埠映射到n8n容器的5678連接埠。
  • volumes:將n8n的數據(你的工作流、憑證等)保存在本機的n8n_data資料夾,確保容器重啟後資料不遺失。
  • environment:設定時區,讓你的工作流時間正確無誤。

Step3. 啟動n8n:
在該資料夾下打開終端機,執行指令:
docker-compose up -d

幾分鐘後,打開瀏覽器訪問 http://localhost:5678, n8n的歡迎畫面就代表成功了!恭喜你擁有了一個隨時待命的自動化引擎。

步驟二:第一個工作流:每日一句名言

搭建好環境後,來實際感受一下n8n的魅力。它的介面非常直觀,右邊是節點(Nodes)庫,中間是畫布(Canvas),我們要做的就是從庫中拖出節點,像組裝樂高一樣,將它們連接起來。

先來嘗試打造一個簡單又實用的工作流:「每天早上九點,自動從API獲取一句勵志名言,並發送到你的 Slack/Discord頻道。」

https://ithelp.ithome.com.tw/upload/images/20250920/20177971jXJfxGXh6z.png

工作流拆解:

Node1. 觸發器 (Trigger) - Cron Job:

  • 點擊「+」號,搜尋並新增「On a Schedule」節點。
  • 設定Mode為每天早上9點執行一次。

Node2. 核心動作 (Action) - 獲取名言:

  • 點擊 Cron 節點後的「+」號,新增「HTTP Request」節點。
  • 我們需要一個提供名言的 API。這裡先使用一個免費的API,將URL欄位設置為 https://api.quotable.io/random
  • 點擊「Execute Node」測試一下,你應該能在右側的 Output 看到成功抓取到的 JSON 資料,裡面包含了 content (名言內容) 和 author (作者)。

Node3. 輸出 (Output) - 發送到 Slack/Discord:

  • 再次點擊「+」號,搜尋並新增你使用的通訊軟體節點,例如「Slack」。
  • 第一次使用需要授權(Authentication)。點擊「Create New Credential」,按照指示完成n8n與Slack的連接。
  • 在Channel欄位選擇你想發送的頻道。
  • 在Text欄位,組合從上一步獲取的資料。點擊旁邊的「</>」圖示,選擇 Nodes > HTTP Request > Output Data > JSON > content,這樣就能動態插入名言內容。你可以這樣組合訊息:
    今日份勵志名言:{{ $json.content }} — {{ $json.author }}
最後一步:

將三個節點連接起來(Cron -> HTTP Request -> Slack),點擊右上角的Activate開關。
你的第一個自動化工作流已經正式上線。從明天早上九點開始,它將風雨無阻地為你送上心靈雞湯。(注意:Docker必須一直開著,他才會發送,所以我先暫時使用手動發送來完成專案)

步驟三:從「複製貼上」到「API 連接」的思維轉變

過去,當我們需要將A網站的資料發到B應用時,我們做的是「手動複製 -> 手動切換視窗 -> 手動貼上」。這個過程枯燥、重複且容易出錯。

n8n帶給我最大啟發,是將世界看作一個由無數API組成的巨大網絡。每個應用、每個服務都是一個數據節點,而工作流就是連接這些節點的管道。

  • 你發送的每一封Email,是一次SMTP API調用。
  • 你上傳到雲端硬碟的每一張圖片,是一次Google Drive API調用。
  • 你從天氣網站看到的溫度,是一次天氣資訊API的數據回傳。

當你開始用「API 連接」的思維去審視日常工作時,會發現無數可以被自動化的環節。報表整理、客戶通知、社群貼文、數據監控... 這些重複性勞動,都可以交給n8n這位不知疲倦的數位員工來完成。

明日預告:從RSS白名單中篩選與解析

今天成功地用Docker擁有了自己的n8n伺服器,並像玩樂高一樣,親手搭建了一個從API獲取數據並發送到Slack 的自動化流程。更重要的是,開始培養用API思維看待數位世界的習慣。

明天,我們將探索更複雜的邏輯判斷與數據處理,讓工作流變得更加「智慧」,明天見~


【哈囉你好:)感謝你的閱讀!其他我會常出沒的地方:Threads


上一篇
【30 天做一個極簡App】技術選型與系統設計(Flutter × LLM × n8n)
下一篇
30 天做一個極簡App:篩選與解析,從 RSS 白名單中淘金
系列文
Mobile Dev|日更靈感來源 App:Flutter × LLM × n8n,每天只推 3 則!22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言