美文网首页工具癖9.运维
用 Miniflux 自建轻便好用的 RSS 服务

用 Miniflux 自建轻便好用的 RSS 服务

作者: 也而 | 来源:发表于2018-09-02 17:20 被阅读42次

    之前写过一篇 文章,介绍怎么利用 Vultr 的服务器搭建服务 ** 上网。但如果仅是自用的话,即使是最便宜的一档($2.5/月),也绰绰有余。那每个月白白浪费的带宽和流量,可以如何利用起来呢?比如说,你可以自建一个 RSS 服务。

    自从 Google Reader 下线以来,RSS 似乎再也没有一家独大的服务商了。InoreaderFeedly 可以称得上是其中的明星产品。一些高级功能如关键词高亮、自定义过滤规则等,也一应俱全。只不过,都需要不菲的订阅费用,而且免费用户的订阅文章里,会带上「狗皮膏药」式的广告,有碍观瞻。

    image

    自建服务除了能实现 RSS 服务商的付费功能外,还有隐私与安全方面的优势。何况,上述这些不受监管的境外 RSS 服务,指不定哪天就 404 了。

    1 为什么推荐 Miniflux

    从成熟服务商迁移的前提,自然是自建服务能覆盖或超出前者所提供的能力。除了订阅和阅读功能以外,个人对 RSS 服务的基本需求有如下几点:

    • 界面简洁,设计符合直觉
    • 订阅源同步及时
    • 服务稳定,能持续更新迭代
    • 支持全文搜索订阅文章
    • 自定义规则过滤订阅源
    • 对只输出摘要的订阅源,能抓取全文
    • 移动 / 桌面客户端支持全面
    • 支持保存文章到稍后读应用

    1.1 TTRSS/ FreshRSS/ Miniflux

    在一番调研后,我从目前成熟且轻量的开源解决方案中,选择了三个: Tiny Tiny RSSFreshRSSMiniflux。为了找到最优解,我把三者都安装试用了遍,并就上面提出的基本需求,做了下横向比较。

    image

    结论是,FreshRSS 不太能满足我的需求,没有吸引力;Miniflux 很优秀,但缺少自定义规则过滤功能;而 TTRSS 则是功能最齐全的。

    由此来看,似乎 TTRSS 才是最优解,那为什么最终要转而推荐 Miniflux 呢?因为由 PHP 写成的 TTRSS,实在是太「重」了。我在安装和使用的过程中,遇到不少疑难问题。而整个项目似乎也「岌岌可危」——最近一个稳定版本是 1 年前。

    1.2 极致优雅的 Miniflux

    与 TTRSS 相对,Miniflux 不仅有活跃的开发者、近乎每月一更的稳定版本,而且功能不依赖任何插件,使用起来令人非常安心。

    至于为什么会没有插件呢?作者在 文档 中回答说,因为 Miniflux 是一种极简的解决方案。插件一方面会增加其复杂度,另一方面,人们通常不会长期去维护插件。

    image

    Miniflux 的界面可以说是做到了极致简洁,与著名的稍后读应用 Pinboard 在设计理念上可以说是异曲同工。没有多余的元素,不加载多余的 JS,追求轻量和快速,打开就能直接阅读。同时使用响应式的设计,能适配各种屏幕(移动端还支持滑动标记已读)。

    而它目前最大的缺点——「不支持自定义规则过滤订阅源」,也有一种另辟蹊径的解决办法,具体可参考下文「使用指南」部分。

    2 安装使用 Miniflux

    这里主要介绍如何在 Docker 上安装使用 Miniflux,因为使用这种方式,安装和卸载对本身 Linux 系统影响都较小。当然,你也可以参考 官方文档 安装使用。

    2.1 配置环境

    首先,利用 ssh 连接 VPS。如果你不知道怎么做,或者没有 VPS,可以参考我之前写的 教程,或者直接使用我的 推荐链接 注册。

    根据自己所使用的 Linux 系统,使用以下命令安装相关环境。

    #Debian/Ubuntu系统
    apt-get -y install git make nano curl
    
    #CentOS/RHEL系统
    yum -y install git make nano curl
    

    输入下方第一条命令安装 Docker,这里需要耐心等待一会。等安装完成后,再输入第二条命令启动服务。

    curl -sSL https://get.docker.com/ | sh
    service docker start
    

    下一步是安装 Docker Compose,一个可以一次安装多个 Docker 容器的工具。

    curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
    

    2.2 程序安装

    首先将用于 docker 环境的 miniflux 代码克隆到 VPS 上。

    git clone https://github.com/miniflux/docker.git
    

    然后进入 docker 文件夹,并开始下载二进制文件。注意下面命令链接里的 2.0.10 是当前的最新版本,如果后期有更新,你可以去Miniflux 的 发布页面 确认最新的版本并替换。

    cd docker && wget -O miniflux https://github.com/miniflux/miniflux/releases/download/2.0.10/miniflux-linux-amd64
    

    使程序可执行。

    chmod +x miniflux
    

    之后开始制作镜像,这里的 2.0.10 也可以替换为最新的版本号。

    make image version=2.0.10
    

    然后你可以用 nano 编辑器打开 docker-compose.yml 配置文件,来调整 Miniflux 对外的端口。如果无需修改端口,可跳过这一步。

    nano docker-compose.yml
    

    默认是 80 端口,也就是说输入 VPS 的 IP 地址即可使用和访问 Miniflux。如果改成了其他端口,则需要用 http://<ip地址>:<端口号> 来访问。这里改成 9090 作为示范。

    修改映射端口

    最后一步,用 docker-compose 按照配置运行 docker 镜像。

    docker-compose up -d
    

    2.3 开始使用

    安装完成后,只需设置好管理员账号,就可以正常使用了。首先,查看 dokcer 正在运行的容器。

    docker ps -a
    
    找到 Miniflux 的 container_id

    确认 miniflux 的 container-id,并用下方命令运行该容器。注意将命令中的 <container-id> 替换为 miniflux 的 id。

    docker start <container-id>
    

    然后,设置管理员账号(注意也要将命令中的 <container-id> 替换为 miniflux 的 id)。

    docker exec -ti <container-id> /usr/local/bin/miniflux -migrate
    docker exec -ti <container-id> /usr/local/bin/miniflux -create-admin
    

    这里需要输入管理员的用户名和密码。

    设置用户名和密码

    打开浏览器,通过访问 http://<ip地址>:<端口号> 就可以进入界面,使用账号密码登陆了。

    miniflux01

    2.4 域名和 HTTPS 支持

    完成上述步骤后,已经可以正常使用了。如果你有域名的话,解析到该地址后就可以直接通过域名访问了。当然,这并非必要步骤。

    域名的购买和解析这里就不再赘述了。如果只是自用的话,推荐去 Namecheap.win 域名,40-50 元 5 年,很划算。

    有了域名怎么添加 SSL 使其支持 HTTPS 呢?这里推荐使用 Caddy 服务,安装和使用都很省心。首先,安装 Caddy。

    wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
    

    然后新建配置文件。

    nano /usr/local/caddy/Caddyfile
    

    将配置内容粘贴进去,注意替换尖括号中的项目。

    https://<解析到该ip的域名> {
     tls <你的邮箱>
     proxy / <ip地址:miniflux对外端口> {
        header_upstream Host {host}
        header_upstream X-Real-IP {remote}
        header_upstream X-Forwarded-For {remote}
        header_upstream X-Forwarded-Proto {scheme}
      }
     log /var/log/caddy.log
     gzip
    

    保存退出后,重启 Caddy 就可以用 https 访问域名了。

    /etc/init.d/caddy restart
    

    3 使用指南

    现在,你已经可以毫无障碍地使用 Miniflux 了。不过,「客户端支持」与「自定义过滤」这两项,还需要一些额外的工作。

    3.1 客户端支持

    虽然网页版的 Miniflux 足够轻便快速,但是习惯了原生应用的体验后,很难再回到「简陋」的网页了。好在 Miniflux 本身就支持与 Fever 集成,可以通过它的 API 在 Reeder、Unread 等客户端中使用。

    这里以 Reeder 为例。首先,在 Miniflux 界面上设置好 Fever 的用户名和密码。

    设置 Fever 用户名密码

    然后打开 Reeder 添加账户,类别选择 Fever。在 Server 栏填入 http://<ip地址或域名>:<端口号>/fever,用户名和密码填写上面配置好的,打开信任证书选项,点击登录即可。

    在 Reeder 中添加账户

    3.2 过滤神器 SiftRSS

    对我而言,Miniflux 目前最大的短板,就是不支持自定义规则过滤订阅源。而 SiftRSS 就是为了解决这一需求而生的工具。

    image

    SiftRSS 支持根据订阅文章标题或描述中的关键词,对订阅源进行过滤,然后重新生成订阅地址。你可以选择包含或排除关键词,另外它也支持正则表达式过滤。利用正则表达式,你可以模糊匹配或者屏蔽多个关键词。这里列了几个可用于过滤的实用运算符,以供参考。

    image

    3.3 RSSHub 获取订阅源

    RSSHub@DIYgod 同学主导的开源项目,口号是「万物皆可 RSS」。目前已支持将 Bilibili、微博、即刻、公众号、知乎、简书等内容更新,作为 RSS 订阅源输出。如果你已经在用 RSS 却不知道 RSSHub 的话,强烈推荐关注使用。

    你可以自行将其部署到服务器上,也可以使用项目所提供的 rsshub.app 域名直接订阅 RSS 源。目前这个项目的开发很活跃,如果有任何想新增的源,也可以去他们的 GitHub issue 中提需求。

    4 One More Thing

    最后,一个忠告:RSS 虽好,精简的订阅源日清的行动力 才是关键。

    另外,FOMO 始终是种病态。

    参考文章

    相关文章

      网友评论

      • 行者无疆007:现在为什么没有人用本地了呢?想当年那么多本地软件,比如说周伯通啊,新浪点点通啊(我最喜欢它的浮动条),还有几款国外的。都很不错。
        也而:@行无疆心飞翔 因为可以同步啊

      本文标题:用 Miniflux 自建轻便好用的 RSS 服务

      本文链接:https://www.haomeiwen.com/subject/ijvmwftx.html