n8n 本地部署及實踐應用,實現零成本自動化運營 Telegram 頻道(保證好使)
簡介
n8n 介紹
一、高度可定制性
二、豐富的連接器生態
三、自托管部署(本地部署)
四、社區驅動
n8n 的部署
一、前期準備
二、部署步驟
1、檢查系統的網絡環境
2、下載 n8n 源碼
3、n8n 容器的啟動(docker run)
4、n8n 容器的啟動(docker compose)
n8n 的使用
一、工作流的創建
二、觸發器節點
自動化運營 Telegram 頻道
備份與加載 n8n 的鏡像
一、備份?n8n 的鏡像
二、加載 n8n 的鏡像
簡介
????????在數字化辦公與自動化流程日益普及的今天,高效地整合各種工具和服務,實現工作流的自動化,已成為提升生產力的關鍵。n8n 作為一款強大的開源工作流自動化平臺,為我們提供了一種靈活且強大的方式,來連接不同的應用程序,自動化復雜的任務流程。本文將詳細介紹 n8n 的特性,并一步步引導你完成 n8n 的本地部署,最后探索如何使用它創建實用的工作流。
n8n 介紹
????????n8n 是一個功能豐富的開源工作流自動化工具,旨在幫助用戶輕松連接各種應用和服務,構建自動化工作流程。
一、高度可定制性
????????n8n 提供了可視化的工作流編輯器,通過簡單的拖放操作,就能創建復雜的工作流程。同時,它還支持在節點中編寫自定義 JavaScript 代碼,滿足高級用戶對功能定制的需求。這意味著,無論是簡單的數據處理任務,還是涉及多個系統交互的復雜業務流程,n8n 都能靈活應對。
二、豐富的連接器生態
????????n8n 擁有超過 600 個預構建的連接器,涵蓋了常見的辦公軟件(如 Google Workspace、Microsoft 365)、社交媒體平臺(如 Facebook、Twitter)、數據庫(如 MySQL、PostgreSQL)、云存儲服務(如 Dropbox、Google Drive)等。借助這些連接器,用戶可以輕松實現不同應用之間的數據傳輸、操作和協同,極大地擴展了工作流的應用場景。
三、自托管部署(本地部署)
????????對于注重數據隱私和安全性的企業或個人用戶,n8n 支持自托管部署。你可以將 n8n 部署在自己的服務器或本地環境中,完全掌控數據的存儲和處理,避免數據泄露風險,n8n 支持 Nodejs 部署和 Docker 部署,比較推薦 Docker 部署,后面 n8n 的部署都是使用 Docker 進行部署。同時,自托管部署也為用戶提供了更大的靈活性,可以根據自身需求進行系統配置和定制化開發。
四、社區驅動
????????n8n 擁有一個活躍的社區,社區成員不僅貢獻了大量的插件、模板和使用案例,還積極參與技術討論和問題解答。這使得用戶在使用 n8n 的過程中,能夠獲得豐富的學習資源和技術支持,加速工作流的開發和優化。
n8n 的部署
一、前期準備
環境要求:
- 硬件要求:CPU ≥ 2 cores (x86)(n8n 不太占用 CPU 資源);內存 320 MB -?2 GB;硬盤 512?MB - 4?GB?SSD
- 軟件要求:Ubuntu ≥ 22.04;Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1 或 Docker Desktop?4.39.0 & Docker Engine 28.0.1(Windows 環境下)
網絡要求:
- 本地網絡:部署時可以使用 VMware 的 NAT 模式,如果只是本機使用就已經無需調整了,如果是需要內網中為其他設備提供服務,那就需要配置成 bridge(橋接)模式了;如果使用?Docker Desktop 進行部署,只需要保持默認設置即可
- 外部網絡: n8n 是使用 docker 進行部署,在構建時需要從網絡上拉去鏡像,國內雖然有鏡像源,但是并沒有外面的全,所以可能會導致超時導致構建失敗,所以提前準備一個靠譜的代理(科學上網)是非常必要的
- DNS:需要在 docker compose 或 docker run 時指定,否則可能會出現?The DNS server returned an error, perhaps the server is offline.?的錯誤
Ollama 的安裝:DeepSeek + Ollama 部署自己本地的 AI 大模型(Windows,AMD 顯卡也能用)_為啥deepseek要裝ollama-CSDN博客?
docker 的安裝:
- Linux 環境:Ubuntu使用國內源安裝Docker,Mysql,Redis_ubuntu docker源-CSDN博客
- Windows 環境(有圖形化界面):https://blog.csdn.net/zjw529507929/article/details/146218875
二、部署步驟
? ? ? ? 本次演示將會在 Windows 環境下進行安裝,Windows 和 Linux 除了 docker 的安裝不太一樣之外,后面的一系列命令都是一樣的,在生產環境部署建議使用 Linux 這會相對穩定一點,但是也需要一定的基礎。
1、檢查系統的網絡環境
????????在裝好?Docker Desktop 后開始檢查的及時網絡問題了,首先我們要把之前提到的代理打開,并調節到全局模式(拉取鏡像的成敗關鍵)
?? ? ? ? 同時即使開了代理有的還是會失敗,這是由于運營商的問題,因為每個運營商對于不同 IP 訪問的路由設置都不一樣,目前在廣東測試發現電信是最好使的。可以根據下面的命令進行 ping 測一下:
ping www.docker.com
ping www.github.com
?
????????如果到最后實在是沒辦法了,可以拿我提前安裝好的鏡像直接導入到 docker 當中來使用,這樣就可以避免網絡問題了,鏈接在“備份與加載 n8n 的鏡像”的部分。
2、下載 n8n 源碼
? ? ? ? n8n?是一個開源軟件,我們可以直接上 Github 上搜索并下載其源碼,鏈接為:https://github.com/n8n-io/n8n,可以直接下載 ZIP 壓縮包或通過 git 命令下載(需要提前安裝 git)
git 的安裝:
Linux:
sudo apt-get install -y git
? ? ? ? 如果已經安裝過會如下圖所示
?Windows:
? ? ? ? 直接打開該鏈接下載:Git - Downloads
??? ? ? ? 下載完成后雙擊安裝,安裝選項默認即可。然后我們去 Github 上獲取克隆鏈接,如下圖所示
??? ? ? ? 打開目標目錄,在地址欄輸入 cmd 根據當前目錄打開終端,并輸入以下命令(該命令會下載到當前所在目錄下)
git clone https://github.com/n8n-io/n8n.git
3、n8n 容器的啟動(docker run)
? ? ? ? 在官方給出的 README 文件給出的快速啟動方式當中,是使用以下命令來啟動的
# 創建一個 Docker 數據卷,用于存儲和持久化 n8n 容器的數據,該卷名為 n8n_data,即時 Docker 容器重啟或者刪除也不會丟失數據,該操作為冪等操作,所以重復執行也沒關系
docker volume create n8n_data# 啟動容器
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
?? ? ? ??但出于以后的管理需求,我個人還是建議使用 docker compose。
4、n8n 容器的啟動(docker compose)
? ? ? ? 目前只是用到一個 n8n 的鏡像所以并不需要構建就可以了,至于為什么要使用 docker compose,這是為了日后需要部署多個應用(traefik、postgre 等)支撐時方便我們自己維護環境。
.env(環境變量):
# DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from
# The top level domain to serve from
# DOMAIN_NAME=example.com# The subdomain to serve from
# SUBDOMAIN=n8n# The above example serve n8n at: https://n8n.example.com# Optional timezone to set which gets used by Cron and other scheduling nodes
# New York is the default value if not set
GENERIC_TIMEZONE=Asia/Shanghai# The email address to use for the TLS/SSL certificate creation
# SSL_EMAIL=user@example.com# With Postgres env
# POSTGRES_USER=root
# POSTGRES_PASSWORD=123456
# POSTGRES_DB=n8n# POSTGRES_NON_ROOT_USER=root
# POSTGRES_NON_ROOT_PASSWORD=123456
docker-compose.yml(配置文件):
name: n8n_dockerservices:n8n:image: docker.n8n.io/n8nio/n8nrestart: alwaysports:- "127.0.0.1:5678:5678"dns: # 指定 DNS,如果未指定很可能某些網站會出現 The DNS server returned an error, perhaps the server is offline. 的錯誤- 8.8.8.8environment:- N8N_PORT=5678- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}volumes:- n8n_data:/home/node/.n8n- ./local-files:/files # 把容器環境中的 /files 映射到 ./local-files 中networks: # 指定容器所屬的網絡- backend# 創建一個 Docker 數據卷,用于存儲和持久化 n8n 容器的數據,該卷名為 n8n_data,即時 Docker 容器重啟或者刪除也不會丟失數據
volumes:n8n_data:networks:backend:driver: bridge # 使用橋接模式來連接網絡ipam: # 容器內的網絡設置driver: default # 使用宿主機默認的網卡config:- subnet: 169.254.50.0/24gateway: 169.254.50.1
? ? ? ? 你可以把環境變量和配置文件都放在根目錄下,也可以像我一樣都放在一個文件夾下
?? ? ? ? 無論你使用哪一種方式,只需要注意,使用 docker compose 時在 docker-compose.yml 文件所在目錄下執行即可
?? ? ? ? 啟動完成后,看到?http://localhost:5678?表示啟動成功
?????????在瀏覽器輸入以下 URL 來進行測試(127.0.0.1 與 localhost 是一樣的)
?????????我們需要先注冊一個賬號,然后在進行登錄。登陸后我們點擊加號就可以開始創建我們自己的自動化流程了
?? ? ? ? 至此,自托管部署的 n8n 就部署完成了。?
n8n 的使用
一、工作流的創建
?? ? ? ? 創建空白工作流后的操作界面如下
?? ? ? ? 如果之前使用過 Dify 之類的相信對這個工作流的操作頁面不會陌生,同樣的點擊加號開始選擇不同的節點來創建工作流
二、觸發器節點
? ? ? ? 通常工作流最開始的都是觸發器節點,當然一個工作流當中也可以有多個觸發器節點。
手動觸發(即點擊該按鈕手動觸發):
?APP 事件觸發:
?? ? ? ? n8n 支持多種 app 事件觸發,點進去可以發現有挺多是我們平常都會使用的,如 Github、Excel、Telegram 等
?? ? ? ? 點開后,可以發現它支持非常多的 Github 事件,如通過評論來觸發工作流、對項目的創建或刪除來觸發工作流等
?定時觸發:
?? ? ? ? 可以設置工作流每天或者每小時執行一次,還支持 Cron 來進行設置定時任務,在“自動化運營 Telegram 頻道”中會使用到。
Webhook 調用:
? ? ? ? 這種方式是一種第三方服務進行回調的方式,但由于我們使用的個人電腦通常都沒有公網 IP,所以不能提供 Webook 給第三方服務喚起,如果實在想用,那可以考慮把 n8n 部署在云上面。
表單提交:
? ? ? ? 當有人填寫表單并提交時就會觸發工作流。
其他工作流來觸發:
聊天消息觸發:
其他觸發:
? ? ? ? n8n 還支持,郵件、錯誤觸發、本地文件操作等觸發方式。
? ? ? ? 在添加觸發節點后,后續會有個加號,可以陸續地添加各種其他的工作節點,如需要了解更多可以查看官方文檔:https://docs.n8n.io/integrations/
自動化運營 Telegram 頻道
? ? ? ? 該工作流,計劃每天早上8點,定時自動抓取國外的 AI 相關的新聞,經過 AI 翻譯整理后,自動發送到我指定的 Telegram 頻道當中,總體的工作流如下圖所示
1、定時觸發
? ? ? ? 設置完成后,點擊右上角的 Test step 來進行節點測試,如下圖所示
? ? ? ? 由于時區我們在環境變量當中已經設置了,所以這里就直接按照環境變量當中的時區來顯示時間,如果未在環境變量當中設置,可以在 Settings ——> Timezone 中的值設置為 Asia/Shanghai,如下圖所示
2、獲取國外新聞 API
? ? ? ? 這里我們需要使用兩個國外網站提供的 API,地址如下:
- News API – Search News and Blog Articles on the Web
- GNews: News API to Search for the Latest & Historical News
注意:這兩個網站可能需要科學上網
? ? ? ? 兩個網站均需要注冊賬號后才能使用 API,針對個人用戶每天可以請求100次,個人用戶足夠用了。
News API 的 API Key 獲取:
? ? ? ? 注冊登錄后,點擊主頁的 Get API Key 來獲取?API Key
? ? ? ? ?API Key 創建完成后如下圖所示
? ? ? ? ?HTTP 請求的 URL 在下圖所示的地方獲取
GNews 的 API Key 獲取:
? ? ? ? 注冊登錄后,點擊主頁右上角的 Dashboard 進入控制面板
? ? ? ? 進入控制面板后就能看到已經創建好的 API Key 了
? ? ? ? ?HTTP 請求的 URL 在下圖所示的地方獲取
3、向 API 發起 HTTP 請求來獲取新聞數據?
? ? ? ? 回到 n8n 工作流當中,我們創建兩個?HTTP 請求
? ? ? ? News API 和 GNews 的配置分別如下圖所示
News API:
注意:需要把搜索的 q 參數改為需要的值,如 AI 相關的新聞就是 q=ai。
GNews:
注意:
- 需要把搜索的 q 參數改為需要的值,如 AI 相關的新聞就是 q=ai
- GNews 搜索出來的新聞會有多語種,這里我們需要設置 lang=en 來限定語言為英語的新聞
? ? ? ? ?設置完成后,點擊Test step 測試是否設置成功,成功如下圖所示
4、數據轉換(JSON 轉為 String)
? ? ? ? 由于兩個網站返回的 JSON 結構并不一致,為了方便后續的處理,我們需要數據轉換節點來進行數據轉換
? ? ? ? 在配置前需要先執行前面的節點先,這是因為配置當中需要引用前面節點的結果,如下圖所示
? ? ? ? 兩個返回的 JSON 格式結果都執行同樣的數據轉換,配置和操作一樣。設置完成后,點擊Test step 測試是否設置成功,成功如下圖所示
5、合并兩個數據轉換后結果數據
? ? ? ? 配置如下
????????設置完成后,點擊Test step 測試是否設置成功,成功如下圖所示
6、調用大模型來處理數據
? ? ? ? 創建完成后需要點擊 Chat Model 下方的加號來添加 LLM
? ? ? ? 我們這里使用 Ollama 來調用大模型
? ? ? ? 剛開始我們需要先配置以下 LLM,按照下圖配置即可
? ? ? ? 配置好之后我們就可以回到上一個頁面選擇需要使用的大模型了,這里 n8n 已經把 Ollama 中的大模型列表都加載進來了
? ? ? ? 回到 AI Agent 當中,還需要進行一些提示詞相關的配置
????????設置完成后,,點擊Test step 測試是否設置成功,這里調用大模型需要一點時間,時間長短要看你電腦的配置,成功如下圖所示
7、Telegram 頻道與機器人的創建
? ? ? ? 在調用 n8n 中的 Telegram 節點之前我們需要先獲取兩樣與 Telegram 相關的東西:
- Telegram 的 Access Token
- Chat ID
Access Token:
? ? ? ? 我們要在 Telegram 上搜索 botfather,來創建我們的頻道與機器人
? ? ? ? 初次使用時請點擊下方的 Start 來開始使用,然后他會自動發一段話過來,點擊 /newbot 來創建
Chat ID:
????????在 Telegram 上搜索 get_id_bot 來查詢我們的?Chat ID
? ? ? ? 同樣的初次使用時請點擊下方的 Start 來開始使用,然后我們發送 /my_id 來查詢自己的 Chat ID
8、n8n 中 Telegram 的設置
? ? ? ? 然后我們使用之前獲得的 Access Token 和 Chat ID 來配置節點,如下圖所示
? ? ? ? 連接成功
????????設置完成后,,點擊Test step 測試是否設置成功,成功如下圖所示
? ? ? ? 同時 Telegram 也能收到該頻道的機器人發出來的消息
? ? ? ? 可以看出,發送的內容與提示詞當中要求的內容是比較一致的。
備份與加載 n8n 的鏡像
一、備份?n8n 的鏡像
1、n8n 需要備份的鏡像有:docker.n8n.io/n8nio/n8n,我們可以使用以下命令來查看
docker image ls
2、使用下面的命令來進行備份
docker save -o "F:\10_Professional Resource\Docker\Images\n8n-1.86.1_images\docker.n8n.io_n8nio_n8n_latest.tar" docker.n8n.io/n8nio/n8n
?備份好的鏡像:https://pan.baidu.com/s/1ScnIBzJ1E6fkswmn0IGfoA?pwd=6ab3?提取碼:6ab3
二、加載 n8n 的鏡像
??? ? ? ? 將備份的鏡像拷貝到需要部署的機器之后使用以下命令進行鏡像的載入
docker load -i "F:\10_Professional Resource\Docker\Images\n8n-1.86.1_images\docker.n8n.io_n8nio_n8n_latest.tar"
? ? ? ? 加載完成后可以使用以下命令查看是否加載成功
docker image ls
?? ? ? ? ?當然也是需要重新下載源碼以及修改環境變量和配置文件的,請重復前面 n8n 部署第四步中的相關點,在一切處理完成后就可以使用以下命令來啟動了
# 在 n8n 中 docker-compose.yml 文件的目錄下執行
docker compose up -d