V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Pogbag
V2EX  ›  分享发现

分享一下我自建 FreshRSS 的过程

  •  
  •   Pogbag · 2021-12-17 09:21:06 +08:00 · 4951 次点击
    这是一个创建于 1080 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉最近 rss 话题又开始火了,正好我自建 rss 使用了一段时间,分享下搭建过程,欢迎大家一起交流。

    最终效果

    下图分别是 web 浏览器和 iPhone 上的使用体验 iShot2021-12-16-21.42.16.png STIIITCH_2021_12_16_09_46_27.png

    教程正式开始

    环境要求:

    • 一台 NAS/Linux 主机 /VPS
    • 配置好 Docker 环境
    • 公网 IP 或者已内网穿透

    部署 RSShub

    [RSSHub][1] 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容。 文本以群晖系统为例,介绍安装方法 Docker-注册表-搜索 RSShub ,下载安装。 iShot2021-12-16-22.01.00.png 只需要设置好外部端口即可,其他保持默认,本文外部端口和内部端口一致,均为 1200 ,你也可以改成其他端口,只要是没有被占用即可。 iShot2021-12-16-22.07.49.png 然后在浏览器输入 http://192.168.31.127:1200 ,如果出现以下页面,说明部署成功。(此 ip 是我的群晖内网 ip ) iShot2021-12-16-22.06.29.png

    部署 FreshRSS

    同样需要在 Docker 里安装,注册表-搜索 FreshRSS ,安装 linuxserver/freshrss 这个镜像。 需要设置内容: 存储位置:**/docker/freshRSS/config** 前面路径根据自己情况设置,后面严格一致 端口:5005:80 前面端口根据自己情况设置,只要是不被占用端口就可以,后面严格一致 环境:PGID=1000 PUID=1000 根据自己情况填写 iShot2021-12-16-22.20.40.png iShot2021-12-16-22.12.18.png 设置完成后,在浏览器输入 http://192.168.31.127:5005 ,出现注册页面,说明安装成功,按照系统提示进行初始化安装。 iShot2021-12-16-22.24.38.png

    添加 rss 源

    到了重头戏,如果一个网站提供了 rss 源,那么直接导入即可,比如少数派的 rss 地址为 https://sspai.com/feed ,我们在订阅管理-添加订阅源或者分类就可以直接订阅了。 iShot2021-12-16-22.27.06.png 如果一个网站没有提供 rss 源,那么我们就需要利用上面自建的 RSShub 进行抓取,下面以订阅一位微博博主为例子进行演示。 首先打开 https://docs.rsshub.app ,找到微博项目对应的路由。 iShot2021-12-16-22.32.27.png 我们只要把这个网址更改一下,就可以抓取微博博主的 rss 源地址了,比如我们想抓取王冰冰的额微博数据,只需要找到她的微博 id 即可,去网页端可以查看,查找到王冰冰的微博 id 是6512991534 iShot2021-12-16-22.37.27.png 我们把上面网址前面的 rsshub.app 改为我们自建的 RSShub 服务地址 192.168.31.127:1200 ,后面的用户 id 改为我们想抓取的用户 id:6512991534 ,那么经过一系列排列组合,王冰冰的微博 rss 源地址就是 http://192.168.31.127:1200/weibo/user/6512991534 。 我们把源添加到 FreshRSS 中,就可以订阅了。 iShot2021-12-16-22.41.43.png 本文只是以微博为例子进行说明,更多网站的规则要到 rsshub 里面查询,并排列组合成自己的订阅源。

    移动端的设置

    iOS 平台的 rss 阅读器还是挺多的,比如大名鼎鼎的 Reeder ,不过我使用下来,发现很别扭,最后找到了比较适合我的软件就是 NetNewsWire ,只要是支持 FreshRSS 的 rss 阅读器就可以,不限于这两个,我这边以 NetNewsWire 示例。 首先在 FreshRSS 上开启 API ,在设置-认证处打开允许 API 访问 iShot2021-12-16-23.13.24.png 然后到用户账户,API 管理处设置第三方客户端的密码。 iShot2021-12-16-23.13.58.png 这样你的 API 地址就生成好了,比如我的订阅地址就是 http://192.168.31.127:5005/api/greader.php 下面,我们把这个地址接入到 NetNewsWire ,设置-Add Account-SELF-HOSTED FreshRSS ,填写你的 FresRSS 的用户名,API 密码以及 API 地址,就可以接入服务器上部署的 RSS 服务了。 STIIITCH_2021_12_16_11_43_44.png

    外网访问

    经过上面一系列设置,可以在 web ,移动端阅读 RSS 了,但是这仅限局域网,我演示的地址也是内网 IP ,如果在外网环境,还需要把内网的端口映射出去,这部分属于基础内容,网上教程很多,我就不详细介绍了。

    关键词:外网访问 DDNS 端口映射 内网穿透

    结束

    有了自建的 RSS 服务,我们就可以在浩瀚如烟的互联网世界中,选取自己真正关心的 /有价值的内容了。

    PS:微信公众号可通过 feeddd.org 直接获取 rss 源。 [1]: https://docs.rsshub.app/

    12 条回复    2022-04-28 19:06:53 +08:00
    WildCat
        1
    WildCat  
       2021-12-17 09:23:30 +08:00
    https://blog.cloudflare.com/argo-tunnel/ 内网穿透可以用 CloudFlare Argo
    Kimen
        2
    Kimen  
       2021-12-17 09:31:59 +08:00
    不错不错
    PEIENYKYK
        3
    PEIENYKYK  
       2021-12-17 09:41:22 +08:00
    谢谢社会你虎哥
    princelai
        4
    princelai  
       2021-12-17 10:06:27 +08:00   ❤️ 1
    我用了 pg 数据库,没用 sqlite,数据多了搜索性能会更好,docker 同一网端开一个 pg 就好了

    另外推荐内置的一个 ThreePanesView 插件,我觉得用了之后阅读体验更好
    cssk
        5
    cssk  
       2021-12-17 10:08:45 +08:00
    rsshub 已弃,太多没全文输出的了
    IceChen
        6
    IceChen  
       2021-12-17 12:03:30 +08:00
    你这个 docker 的管理工具是什么啊?
    K1W1
        7
    K1W1  
       2021-12-17 12:39:17 +08:00 via Android
    @IceChen 像是群晖自带的容器管理工具
    roth
        8
    roth  
       2021-12-17 16:24:51 +08:00
    @princelai nas 上 pg 都跑的起来吗
    princelai
        9
    princelai  
       2021-12-17 16:32:45 +08:00
    @roth #8 为什么不行啊,反正就我一个人用,三四个程序用完全没压力,外网访问的瓶颈在上行网速上,我不仅跑 pg,j3455 上还跑了 20+个 docker 呢

    Pogbag
        10
    Pogbag  
    OP
       2021-12-17 17:06:06 +08:00
    @IceChen 群晖自带的 docker
    xinh
        11
    xinh  
       2022-01-03 13:18:26 +08:00 via iPhone
    @cssk rsshub 订阅了几个官方法规发布站没有全文,老哥有什么好推荐吗
    spikeLee
        12
    spikeLee  
       2022-04-28 19:06:53 +08:00
    谢谢喵
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2704 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:28 · PVG 17:28 · LAX 01:28 · JFK 04:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.