自建RSS转发过滤服务:RSS Funnel Docker部署与详细配置实战指南
自建RSS转发过滤服务RSS Funnel Docker部署与详细配置实战指南一、RSS Funnel介绍1.1 RSS Funnel简介1.2 RSS Funnel特点1.3 注意事项1.4 使用场景二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载funnel镜像五、部署RSS-Funnel应用5.1创建部署目录5.2 编辑funnel.yaml文件5.3 编辑部署文件5.4 创建rss-funnel容器5.5 检查容器状态5.6 检查容器日志六、访问RSS-Funnel首页6.1 进入RSS-Funnel初始页6.2 访问内容6.3 订阅RSS源七、总结一、RSS Funnel介绍1.1 RSS Funnel简介RSS Funnel是一款模块化的 RSS 处理管道系统它能够以多种方式处理 RSS/Atom 源。1.2 RSS Funnel特点获取全文内容RSS Funnel 可以从原始链接中抓取完整的文章内容。从 HTML 页面生成 RSS 订阅源可以将任意 HTML 页面转换成 RSS 订阅源。移除不需要的元素或文本用户可以定制规则来移除 RSS 订阅源中的无关内容。关键词过滤支持基于关键词的过滤机制只保留包含特定关键词的文章。关键词高亮可以突出显示文章中的关键词。拆分聚合内容将聚合的内容例如每日前十的文章链接拆分成单独的文章。合并多个订阅源可以将多个 RSS 订阅源合并成一个。转换订阅源格式支持在不同的 RSS 和 Atom 格式之间进行转换。执行任意 JavaScript 转换用户可以编写自定义的 JavaScript 脚本来处理 RSS 数据。应用图片代理可以为 RSS 订阅源中的图片添加代理保护隐私或优化加载速度。更多功能RSS Funnel 还提供了更多的定制选项和扩展功能。1.3 注意事项该项目正处于开发的早期阶段。请注意 bug 和频繁的重大更改。请勿在生产环境使用1.4 使用场景全文 RSS 生成:如果一个网站只提供了包含摘要的 RSS 源RSS Funnel可以用来抓取网页的全文内容并生成一个新的 RSS 源其中包含了每篇文章的完整内容。内容过滤与聚合:用户可以设置规则来过滤特定关键词的内容比如排除包含特定词汇的文章或者只保留与某些主题相关的条目。这些过滤后的文章可以被聚合到一个新的 RSS 源中。关键词高亮:对于关注特定话题的用户RSS Funnel可以自动高亮显示文章中的关键词帮助快速识别出感兴趣的信息点。RSS 转发与通知:用户可以配置RSS Funnel将匹配特定条件的 RSS 项通过电子邮件或其他即时通讯工具发送给自己实现个性化的内容推送。RSS 自动归档:RSS Funnel还可以用于自动保存所有 RSS 订阅的内容到本地或云存储服务中方便日后检索和归档。RSS 源转换:如果用户想要将一个 RSS 源转换为 Atom 源或者反过来RSS Funnel可以轻松地完成这种转换工作。二、本地环境介绍2.1 本地环境规划本次实践为个人测试环境操作系统版本为centos7.6。hostnameIP地址操作系统版本Docker版本ubuntu-001192.168.3.251Ubuntu 22.04.1 LTS24.0.72.2 本次实践介绍1.本次实践部署环境为个人测试环境生产环境请谨慎2.使用Docker部署RSS Funnel工具。三、本地环境检查3.1 检查Docker服务状态检查Docker服务是否正常运行确保Docker正常运行。rootubuntu-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 Fri2024-08-02 03:27:13 UTC;4min 57s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID:496286(dockerd)Tasks:114Memory:46.2M CPU:5.926s CGroup: /system.slice/docker.service ├─496286 /usr/bin/dockerd-Hfd://--containerd/run/containerd/containerd.sock3.2 检查Docker版本检查Docker版本[rootjeven ~]# docker -vDocker version20.10.17, build 100c7013.3 检查docker compose 版本检查Docker compose版本确保2.0以上版本。[rootjeven ~]# docker compose versionDocker Compose version v2.6.0四、下载funnel镜像拉取funnel镜像镜像为ghcr.io/shouya/rss-funnel:latestrootubuntu-001:~# docker pull ghcr.io/shouya/rss-funnel:latestlatest: Pulling from shouya/rss-funnel 49f7b6643e3f: Pull complete Digest: sha256:2d51f032607a342ada479ec48943c8561ec11a3d097992a7372d8bc01dd6ae53 Status: Downloaded newer imageforghcr.io/shouya/rss-funnel:latest ghcr.io/shouya/rss-funnel:latest五、部署RSS-Funnel应用5.1创建部署目录创建部署目录mkdir-p/data/rss-funnel/cd/data/rss-funnel/5.2 编辑funnel.yaml文件在部署目录下编辑funnel.yaml文件内容如下vimfunnel.yamlrootubuntu-001:/data/rss-funnel# cat funnel.yamlendpoints:-path:/jeven-blog.xmlnote:jeven-blog-aasource:https://rss.csdn.net/jks212454/rss/mapfilters:-full_text:{}-simplify_html:{}相关解释path是访问地址可参考以上写法note是简介可自定义设置source是源地址filters过滤器full_text此过滤器从文章中获取文章的完整 HTMLlink并将其填充到content文章的字段中simplify_html此过滤器利用readability 库简化了 HTML 5.3 编辑部署文件编辑docker-compose.yaml部署文件vimdocker-compose.yamlversion:3.8services: 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:true5.4 创建rss-funnel容器使用docker-compose.yaml文件创建rss-funnel容器rootubuntu-001:/data/rss-funnel# docker compose up -d[]Running2/2 ✔ Network rss-funnel_default Created0.1s ✔ Container rss-funnel-rss-funnel-1 Started0.7s5.5 检查容器状态检查rss-funnel容器状态确保rss-funnel容器正常启动。rootubuntu-001:/data/rss-funnel# docker compose psNAME IMAGE COMMAND SERVICE CREATED STATUS PORTS rss-funnel-rss-funnel-1 ghcr.io/shouya/rss-funnel:latest/rss-funnel serverrss-funnel48seconds ago Up47seconds0.0.0.0:5090-4090/tcp, :::5090-4090/tcp5.6 检查容器日志检查rss-funnel容器确保服务运行。dockercompose logs六、访问RSS-Funnel首页6.1 进入RSS-Funnel初始页访问地址http://192.168.3.251:5090将IP替换为自己服务器IP地址进入到RSS-Funnel初始页。如果无法访问则检查服务器防火墙是否设置云服务器的安全组端口是否放行等。6.2 访问内容点击/jeven-blog.xml我们点击链接可以看到每篇文章都是显示的全文此时我们生成了一个6.3 订阅RSS源我们在selfoss工具中订阅RSS源http://192.168.3.251:5090/jeven-blog.xml七、总结RSS Funnel作为一款模块化的 RSS 处理管道系统提供了丰富的功能来定制和管理 RSS/Atom 订阅源。它不仅可以获取全文内容、生成 RSS 订阅源还能进行内容过滤、关键词高亮等多种操作为用户提供高度个性化的 RSS 阅读体验。
