【Docker项目实战】使用Docker部署RSS Funnel工具

举报
江湖有缘 发表于 2024/08/21 11:08:49 2024/08/21
【摘要】 【Docker项目实战】使用Docker部署RSS Funnel工具

@[TOC](【Docker项目实战】使用Docker部署RSS Funnel工具)

一、Funnel介绍

1.1 Funnel简介

RSS Funnel 是一款模块化的 RSS 处理管道系统,它能够以多种方式处理 RSS/Atom 源。

1.2 Funnel 特点特点

RSS Funnel 特点:

  • 获取全文内容: RSS Funnel 可以从原始链接中抓取完整的文章内容。
  • 从 HTML 页面生成 RSS 订阅源: 可以将任意 HTML 页面转换成 RSS 订阅源。
  • 移除不需要的元素或文本: 用户可以定制规则来移除 RSS 订阅源中的无关内容。
  • 关键词过滤: 支持基于关键词的过滤机制,只保留包含特定关键词的文章。
  • 关键词高亮: 可以突出显示文章中的关键词。
  • 拆分聚合内容: 将聚合的内容(例如每日前十的文章链接)拆分成单独的文章。
  • 合并多个订阅源: 可以将多个 RSS 订阅源合并成一个。
  • 转换订阅源格式: 支持在不同的 RSS 和 Atom 格式之间进行转换。
  • 执行任意 JavaScript 转换: 用户可以编写自定义的 JavaScript 脚本来处理 RSS 数据。
  • 应用图片代理: 可以为 RSS 订阅源中的图片添加代理,保护隐私或优化加载速度。
  • 更多功能: RSS Funnel 还提供了更多的定制选项和扩展功能。

1.3 注意事项

  • 该项目正处于开发的早期阶段。请注意 bug 和频繁的重大更改。
  • 请勿在生产环境使用

1.4 使用场景

  1. 全文 RSS 生成:

    • 如果一个网站只提供了包含摘要的 RSS 源,RSS Funnel 可以用来抓取网页的全文内容,并生成一个新的 RSS 源,其中包含了每篇文章的完整内容。
  2. 内容过滤与聚合:

    • 用户可以设置规则来过滤特定关键词的内容,比如排除包含特定词汇的文章,或者只保留与某些主题相关的条目。这些过滤后的文章可以被聚合到一个新的 RSS 源中。
  3. 关键词高亮:

    • 对于关注特定话题的用户,RSS Funnel 可以自动高亮显示文章中的关键词,帮助快速识别出感兴趣的信息点。
  4. RSS 转发与通知:

    • 用户可以配置 RSS Funnel 将匹配特定条件的 RSS 项通过电子邮件或其他即时通讯工具发送给自己,实现个性化的内容推送。
  5. RSS 自动归档:

    • RSS Funnel 还可以用于自动保存所有 RSS 订阅的内容到本地或云存储服务中,方便日后检索和归档。
  6. RSS 源转换:

    • 如果用户想要将一个 RSS 源转换为 Atom 源,或者反过来,RSS Funnel 可以轻松地完成这种转换工作。

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostname IP地址 操作系统版本 Docker版本
ubuntu-001 192.168.3.251 Ubuntu 22.04.1 LTS 24.0.7

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.使用Docker部署RSS Funnel工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

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
       Docs: https://docs.docker.com
   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应用

5.1创建部署目录

  • 创建部署目录
mkdir -p /data/rss-funnel/ && cd /data/rss-funnel/

5.2 编辑funnel.yaml文件

在部署目录下,编辑funnel.yaml文件,内容如下:

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: {}
  • 相关解释

path:是访问地址,可参考以上写法;
note:是简介,可自定义设置;
source:是源地址;
filters:过滤器;
full_text:此过滤器从文章中获取文章的完整 HTMLlink并将其填充到content文章的字段中;
simplify_html:此过滤器利用readability 库简化了 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 创建rss-funnel容器

  • 使用docker-compose.yaml文件创建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 检查容器状态

检查rss-funnel容器状态,确保rss-funnel容器正常启动。

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容器,确保服务运行。

docker compose 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 阅读体验。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。