docker環(huán)境下RSS Funnel工具的應(yīng)用實(shí)踐
- 1.1 RSS Funnel簡(jiǎn)介
- 1.2 RSS Funnel特點(diǎn)
- 1.3 注意事項(xiàng)
- 1.4 使用場(chǎng)景
- 2.1 本地環(huán)境規(guī)劃
- 2.2 本次實(shí)踐介紹
- 3.1 檢查Docker服務(wù)狀態(tài)
- 3.2 檢查Docker版本
- 3.3 檢查docker compose 版本
- 5.1創(chuàng)建部署目錄
- 5.2 編輯funnel.yaml文件
- 5.3 編輯部署文件
- 5.4 創(chuàng)建rss-funnel容器
- 5.5 檢查容器狀態(tài)
- 5.6 檢查容器日志
- 6.1 進(jìn)入RSS-Funnel初始頁(yè)
- 6.2 訪問內(nèi)容
- 6.3 訂閱RSS源
一、RSS Funnel介紹
1.1 RSS Funnel簡(jiǎn)介
RSS Funnel
是一款模塊化的 RSS 處理管道系統(tǒng),它能夠以多種方式處理 RSS/Atom 源。
1.2 RSS Funnel特點(diǎn)
- 獲取全文內(nèi)容: RSS Funnel 可以從原始鏈接中抓取完整的文章內(nèi)容。
- 從 HTML 頁(yè)面生成 RSS 訂閱源: 可以將任意 HTML 頁(yè)面轉(zhuǎn)換成 RSS 訂閱源。
- 移除不需要的元素或文本: 用戶可以定制規(guī)則來移除 RSS 訂閱源中的無關(guān)內(nèi)容。
- 關(guān)鍵詞過濾: 支持基于關(guān)鍵詞的過濾機(jī)制,只保留包含特定關(guān)鍵詞的文章。
- 關(guān)鍵詞高亮: 可以突出顯示文章中的關(guān)鍵詞。
- 拆分聚合內(nèi)容: 將聚合的內(nèi)容(例如每日前十的文章鏈接)拆分成單獨(dú)的文章。
- 合并多個(gè)訂閱源: 可以將多個(gè) RSS 訂閱源合并成一個(gè)。
- 轉(zhuǎn)換訂閱源格式: 支持在不同的 RSS 和 Atom 格式之間進(jìn)行轉(zhuǎn)換。
- 執(zhí)行任意 JavaScript 轉(zhuǎn)換: 用戶可以編寫自定義的 JavaScript 腳本來處理 RSS 數(shù)據(jù)。
- 應(yīng)用圖片代理: 可以為 RSS 訂閱源中的圖片添加代理,保護(hù)隱私或優(yōu)化加載速度。
- 更多功能: RSS Funnel 還提供了更多的定制選項(xiàng)和擴(kuò)展功能。
1.3 注意事項(xiàng)
- 該項(xiàng)目正處于開發(fā)的早期階段。請(qǐng)注意 bug 和頻繁的重大更改。
- 請(qǐng)勿在生產(chǎn)環(huán)境使用
1.4 使用場(chǎng)景
- 全文 RSS 生成:
- 如果一個(gè)網(wǎng)站只提供了包含摘要的 RSS 源,
RSS Funnel
可以用來抓取網(wǎng)頁(yè)的全文內(nèi)容,并生成一個(gè)新的 RSS 源,其中包含了每篇文章的完整內(nèi)容。
- 如果一個(gè)網(wǎng)站只提供了包含摘要的 RSS 源,
- 內(nèi)容過濾與聚合:
- 用戶可以設(shè)置規(guī)則來過濾特定關(guān)鍵詞的內(nèi)容,比如排除包含特定詞匯的文章,或者只保留與某些主題相關(guān)的條目。這些過濾后的文章可以被聚合到一個(gè)新的 RSS 源中。
- 關(guān)鍵詞高亮:
- 對(duì)于關(guān)注特定話題的用戶,
RSS Funnel
可以自動(dòng)高亮顯示文章中的關(guān)鍵詞,幫助快速識(shí)別出感興趣的信息點(diǎn)。
- 對(duì)于關(guān)注特定話題的用戶,
- RSS 轉(zhuǎn)發(fā)與通知:
- 用戶可以配置
RSS Funnel
將匹配特定條件的 RSS 項(xiàng)通過電子郵件或其他即時(shí)通訊工具發(fā)送給自己,實(shí)現(xiàn)個(gè)性化的內(nèi)容推送。
- 用戶可以配置
- RSS 自動(dòng)歸檔:
RSS Funnel
還可以用于自動(dòng)保存所有 RSS 訂閱的內(nèi)容到本地或云存儲(chǔ)服務(wù)中,方便日后檢索和歸檔。
- RSS 源轉(zhuǎn)換:
- 如果用戶想要將一個(gè) RSS 源轉(zhuǎn)換為 Atom 源,或者反過來,
RSS Funnel
可以輕松地完成這種轉(zhuǎn)換工作。
- 如果用戶想要將一個(gè) RSS 源轉(zhuǎn)換為 Atom 源,或者反過來,
二、本地環(huán)境介紹
2.1 本地環(huán)境規(guī)劃
本次實(shí)踐為個(gè)人測(cè)試環(huán)境,操作系統(tǒng)版本為centos7.6。
2.2 本次實(shí)踐介紹
1.本次實(shí)踐部署環(huán)境為個(gè)人測(cè)試環(huán)境,生產(chǎn)環(huán)境請(qǐng)謹(jǐn)慎; 2.使用Docker部署RSS Funnel工具。
三、本地環(huán)境檢查
3.1 檢查Docker服務(wù)狀態(tài)
檢查Docker服務(wù)是否正常運(yùn)行,確保Docker正常運(yùn)行。
root@ubuntu-001:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-08-02 03:27:13 UTC; 4min 57s ago TriggeredBy: ● docker.socket Main PID: 496286 (dockerd) Tasks: 114 Memory: 46.2M CPU: 5.926s CGroup: /system.slice/docker.service ├─496286 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
3.2 檢查Docker版本
檢查Docker版本
[root@jeven ~]# docker -v Docker version 20.10.17, build 100c701
3.3 檢查docker compose 版本
檢查Docker compose版本,確保2.0以上版本。
[root@jeven ~]# docker compose version Docker Compose version v2.6.0
四、下載funnel鏡像
拉取funnel鏡像,鏡像為
ghcr.io/shouya/rss-funnel:latest
root@ubuntu-001:~# docker pull ghcr.io/shouya/rss-funnel:latest latest: Pulling from shouya/rss-funnel 49f7b6643e3f: Pull complete Digest: sha256:2d51f032607a342ada479ec48943c8561ec11a3d097992a7372d8bc01dd6ae53 Status: Downloaded newer image for ghcr.io/shouya/rss-funnel:latest ghcr.io/shouya/rss-funnel:latest
五、部署RSS-Funnel應(yīng)用
5.1創(chuàng)建部署目錄
- 創(chuàng)建部署目錄
mkdir -p /data/rss-funnel/ && cd /data/rss-funnel/
5.2 編輯funnel.yaml文件
在部署目錄下,編輯funnel.yaml文件,內(nèi)容如下:
vim funnel.yaml
root@ubuntu-001:/data/rss-funnel# cat funnel.yaml endpoints: - path: /jeven-blog.xml note: jeven-blog-aa source: https://rss.csdn.net/jks212454/rss/map filters: - full_text: {} - simplify_html: {}
- 相關(guān)解釋
path:是訪問地址,可參考以上寫法; note:是簡(jiǎn)介,可自定義設(shè)置; source:是源地址; filters:過濾器; full_text:此過濾器從文章中獲取文章的完整 HTMLlink并將其填充到content文章的字段中; simplify_html:此過濾器利用readability 庫(kù)簡(jiǎn)化了 HTML ;
5.3 編輯部署文件
- 編輯docker-compose.yaml部署文件
vim docker-compose.yaml
version: "3.8" services: rss-funnel: image: ghcr.io/shouya/rss-funnel:latest ports: - 5090:4090 volumes: - ./funnel.yaml:/funnel.yaml environment: RSS_FUNNEL_CONFIG: /funnel.yaml RSS_FUNNEL_BIND: 0.0.0.0:4090 RSS_FUNNEL_WATCH: true
5.4 創(chuàng)建rss-funnel容器
- 使用docker-compose.yaml文件創(chuàng)建rss-funnel容器
root@ubuntu-001:/data/rss-funnel# docker compose up -d [+] Running 2/2 Network rss-funnel_default Created 0.1s Container rss-funnel-rss-funnel-1 Started 0.7s
5.5 檢查容器狀態(tài)
檢查rss-funnel容器狀態(tài),確保rss-funnel容器正常啟動(dòng)。
root@ubuntu-001:/data/rss-funnel# docker compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS rss-funnel-rss-funnel-1 ghcr.io/shouya/rss-funnel:latest "/rss-funnel server" rss-funnel 48 seconds ago Up 47 seconds 0.0.0.0:5090->4090/tcp, :::5090->4090/tcp
5.6 檢查容器日志
檢查rss-funnel容器,確保服務(wù)運(yùn)行。
docker compose logs
六、訪問RSS-Funnel首頁(yè)
6.1 進(jìn)入RSS-Funnel初始頁(yè)
訪問地址:http://192.168.3.251:5090,將IP替換為自己服務(wù)器IP地址,進(jìn)入到RSS-Funnel初始頁(yè)。如果無法訪問,則檢查服務(wù)器防火墻是否設(shè)置,云服務(wù)器的安全組端口是否放行等。
6.2 訪問內(nèi)容
- 點(diǎn)擊/jeven-blog.xml
我們點(diǎn)擊鏈接可以看到每篇文章都是顯示的全文,此時(shí)我們生成了一個(gè)
6.3 訂閱RSS源
我們?cè)趕elfoss工具中,訂閱RSS源:http://192.168.3.251:5090/jeven-blog.xml
七、總結(jié)
RSS Funnel
作為一款模塊化的 RSS 處理管道系統(tǒng),提供了豐富的功能來定制和管理 RSS/Atom 訂閱源。它不僅可以獲取全文內(nèi)容、生成 RSS 訂閱源,還能進(jìn)行內(nèi)容過濾、關(guān)鍵詞高亮等多種操作,為用戶提供高度個(gè)性化的 RSS 閱讀體驗(yàn)。
作者聲明本文無利益相關(guān),歡迎值友理性交流,和諧討論~
,