前言

  • 一切的缘起于FeedRss插件,前几天写出来之后,原本准备把一些优质的博客,单独订阅出来,全部加到插件后台,让插件自动订阅展示,但是我有点担心订阅过多的话,会导致服务器性能拉掉,所以想着尝试通过订阅公共订阅源,用于展示,中间用过几天博友圈的订阅,优质文章还真不少。但是毕竟不是自己喜欢的,这让我纠结了好久,还是决定自己搞。
  • 所以这时候就需要自建一个可以提供公共RSS服务的订阅程序,我们的老朋友就来了。搭建一个自己的rss订阅服务-FreshRSS,这篇文章是我两年前写的,目前已经有将近三万多的浏览量了,通过FreshRss的后台查看,是可以提供公共RSS,大概在账户管理的位置可以看到。那就进入下一步,怎么部署,首先我想起了前段时间申请到的serv00服务器,查看了FreshRss的安装要求,源代码部署是没有什么问题的,环境也都支持,开整。

Serv00部署FreshRSS

  • 下载FreshRss的源代码,这里我们通过FreshRSS ,下载到zip文件的源码。通过serv00的文件管理上传到对应域名的public_html下。

飞牛通过Docker部署Miniflux以及FreshRss

  • 由于我没搞明白怎么在文件管理里面解压文件,所以这步只能通过命令解压,cdpublic_html目录,使用unzip freshrss.zip解压文件。为什么如此复杂的解压,两方面,第一,我这里连不上Serv00的上传服务器,SSH都得挂代理,第二,挂上代理,直接上传解压的文件,会上传到一半出错。

飞牛通过Docker部署Miniflux以及FreshRss

  • 解压后,将解压出来文件全部挪到public_html下,就可以通过之前解析域名访问安装。

飞牛通过Docker部署Miniflux以及FreshRss
飞牛通过Docker部署Miniflux以及FreshRss
飞牛通过Docker部署Miniflux以及FreshRss
飞牛通过Docker部署Miniflux以及FreshRss

  • 设置中文,环境默认都是支持的,数据库不知道怎么回事,一直连不上,索性就SQLite数据库了,配置登录账号密码。就完成了本次安装!

飞牛通过Docker部署Miniflux以及FreshRss
飞牛通过Docker部署Miniflux以及FreshRss

  • 部署后的界面,整体运行起来感觉卡卡的。简单设置了一下,准备把我之前的配置文件导入,这简直是灾难的开始,没一会直接就和服务器失联了。看了下Serv00的后台,已经快要爆炸了,我大概导入了200多个订阅,一边看着刷新源,一边看着后台超负荷运行。果然免费的就是免费的,搭建个页面应该没啥问题,太复杂的服务还是算了,处理限制太多了。并且不知道是不是因为防火墙的问题,Serv00似乎无法订阅到国内的很多站点,就连我自己的站点都订阅不了,日志显示超时。所以这路不通了。

飞牛Docker部署Miniflux

  • 随后就在网上搜索关于好用的RSS服务,看到推荐的这个Miniflux,主要是被简洁的界面吸引了,看起来真的不错。于是便想到了体验一番,部署过程很简单,通过Docker-compse部署,这里我在本地的飞牛NAS上面部署的,因为阿里99那台机子上面挂了3个Docker服务,其他必备环境,目前CPU常年百分百,实在是没法用了。本次本地部署,通过Frp内网穿透出去。
  • 官方参考信息:https://miniflux.app/docs/docker.html
  • 参照官方给出的文件,我这里调整了端口,初识登录密码可以根据情况变更,其他懂的调整,不懂就不用改了。通过飞牛Docker左侧栏的compose新增项目即可。

飞牛通过Docker部署Miniflux以及FreshRss

services:
  miniflux:
    image: miniflux/miniflux:latest
    ports:
      - "19999:8080"
    depends_on:
      db:
        condition: service_healthy
    environment:
      - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=test123
  db:
    image: postgres:17-alpine
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=miniflux
    volumes:
      - miniflux-db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "miniflux"]
      interval: 10s
      start_period: 30s
volumes:
  miniflux-db:

飞牛通过Docker部署Miniflux以及FreshRss

  • 简单使用了一下,该有的功能都有,界面简洁。但是不幸是貌似不支持公共源链接,我也问了下AI,给我的结果也是类似,准确来说,这个主要是私人部署使用,配套的APP也需要通过API秘钥链接。所以这条路也不通!

飞牛Docker部署FreshRss

  • 耐心用完了,这几天也折腾到挺晚的,还是部署FreshRss吧,不过是本地部署。本地部署肯定少不了踩坑。也做一个分享。
  • 通过飞牛NAS拉取freshrss的镜像,如图所示:点击右边三角启动镜像配置。
docker run -d --restart unless-stopped --log-opt max-size=10m \
  -p 8080:80 \
  -e TZ=Europe/Paris \
  -e 'CRON_MIN=1,31' \
  -v freshrss_data:/var/www/FreshRSS/data \
  -v freshrss_extensions:/var/www/FreshRSS/extensions \
  --name freshrss \
  freshrss/freshrss
  • 上方代码是官方给出的最新部署代码,嫌麻烦的话,可以直接SSH部署。
  • 使用飞牛的话,记着官方给出需要配置的参数

    • 在端口 8080 上公开(这个可以自定义端口)
    • 使用服务器时区(默认为UTC) (也可以配置Asia/Shanghai,这样时间会准一些)
    • 使用自动 cron 作业刷新源 (自动刷新,这个得配置,在环境配置处)
    • 将 FreshRSS 数据保存在 Docker 卷中,并将可选扩展保存在freshrss_datafreshrss_extensions (新建对应文件夹,映射后面的两个FreshRss内部文件夹)

飞牛通过Docker部署Miniflux以及FreshRss

  • 部署完毕后,如无报错,可以通过内网IP+端口访问。

飞牛通过Docker部署Miniflux以及FreshRss
飞牛通过Docker部署Miniflux以及FreshRss

  • 检查环境,发现相关文件路径没有权限。这里需要开启SSH或者通过终端处理。
  • 根据路径报错,是/var/www/FreshRSS/data报错,那就配置路径权限,这里参考群晖使用 docker 搭建 FreshRSS 踩坑
docker exec freshrss chown www-data:www-data -R /var/www/FreshRSS/data
docker exec freshrss chmod g+rx /var/www/FreshRSS/data

飞牛通过Docker部署Miniflux以及FreshRss

  • 调整完毕,提示有权限,进入下一步。

飞牛通过Docker部署Miniflux以及FreshRss
飞牛通过Docker部署Miniflux以及FreshRss

  • 数据库依旧选择SQLite,设置账号密码。通过Frp反代出去。

飞牛通过Docker部署Miniflux以及FreshRss

  • 反代出去后,发现FreshRss的主域名不对,还是显示的内网地址,后台是无法设置,根据官方指导我们需要对docker内的配置参数进行调整。

飞牛通过Docker部署Miniflux以及FreshRss

  • 这里参考官方指导文件将 Caddy 用作带有子域的反向代理,我们需要调整config.php文件里面的'base_url' => 'https://subdomain.example.com/',将内网地址调整为自己的域名。
  • 可以通过docker bash ***** 链接调整,我这里通过飞牛Docker的终端连接:文件路径在cd data/config.php,这里如果没有文本编辑器的话,就安装一个。修改对应参数,注意格式。
    飞牛通过Docker部署Miniflux以及FreshRss
  • 调整完毕后,重启一下容器,再看就显示正常了。这样就可以配置参数了。

FeedRss调整

  • 这里需要提醒一下,FreshRss的公共RSS源获取,是通过界面右上角-设置图标-账户-主验证 token
    下方的链接获取的,直接复制https://xx.xxx.xxx/i/?a=rss&user=adminadmin&token=&hours=199 填写到FeedRss里面是无法订阅的,我们需要删除掉后缀https://xx.xxx.xxx/i/?a=rss ,仅保留此部分。你可以通过浏览器测试一下,是可以正常显示订阅的。

飞牛通过Docker部署Miniflux以及FreshRss

  • 订阅测试期间,先测试了几个老哥的订阅,其中订阅到雅余老哥博客的时候,由于最新的文章里面开头是图片,在FreshRss的公共链接里面也有对应的显示,导致页面显示异常。这里对FeedRss插件进行了调整。

    • 增加了对图片链接的过滤,仅保留文字部分。
    • 文字展示限制到了100个字。
    • 订阅下方新增了作者选项。

飞牛通过Docker部署Miniflux以及FreshRss

  • 调整过后,整个界面看起来美观多了。最新代码也已经更新到相关的项目页面了RssFeed,欢迎下载测试体验。

  • 对这几天折腾做了一个总结,这一章算是翻篇了,后面会精选一些博客添加到飞牛NAS上面的FreshRss里面,做一个订阅展示。完结撒花!
文章目录