IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    飞牛通过Docker部署Miniflux以及FreshRss

    松子发表于 2025-02-18 15:45:00
    love 0

    前言

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

    Serv00部署FreshRSS

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

    1FreshRSS-serv00部署.png

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

    2FreshRSS-serv00解压.png

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

    3FreshRSS-serv00安装.png
    4FreshRSS-serv00配置环境.png
    5FreshRSS-serv00数据库.png
    6FreshRSS-serv00设置账号.png

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

    7FreshRSS-serv00服务界面.png
    8FreshRSS-serv00服务器爆炸.png

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

    飞牛Docker部署Miniflux

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

    9miniflux部署.png

    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:

    10miniflux主页面.png

    • 简单使用了一下,该有的功能都有,界面简洁。但是不幸是貌似不支持公共源链接,我也问了下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内部文件夹)

    11飞牛部署FreshRss.png

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

    12飞牛部署FreshRss安装.png
    13飞牛部署FreshRss缺失权限.png

    • 检查环境,发现相关文件路径没有权限。这里需要开启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

    14飞牛部署FreshRss调整路径权限.png

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

    15飞牛部署FreshRss数据库.png
    16飞牛部署FreshRss设置密码.png

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

    17飞牛部署FreshRss反代域名不对.png

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

    18飞牛部署FreshRss修改参数.png

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

    FeedRss调整

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

    20FeedRss显示异常.png

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

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

    21FeedRss调整效果.png

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

    结

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


沪ICP备19023445号-2号
友情链接