飞牛通过Docker部署Miniflux以及FreshRss
前言
- 一切的缘起于FeedRss插件,前几天写出来之后,原本准备把一些优质的博客,单独订阅出来,全部加到插件后台,让插件自动订阅展示,但是我有点担心订阅过多的话,会导致服务器性能拉掉,所以想着尝试通过订阅公共订阅源,用于展示,中间用过几天博友圈的订阅,优质文章还真不少。但是毕竟不是自己喜欢的,这让我纠结了好久,还是决定自己搞。
- 所以这时候就需要自建一个可以提供公共RSS服务的订阅程序,我们的老朋友就来了。搭建一个自己的rss订阅服务-FreshRSS,这篇文章是我两年前写的,目前已经有将近三万多的浏览量了,通过FreshRss的后台查看,是可以提供公共RSS,大概在账户管理的位置可以看到。那就进入下一步,怎么部署,首先我想起了前段时间申请到的serv00服务器,查看了FreshRss的安装要求,源代码部署是没有什么问题的,环境也都支持,开整。
Serv00部署FreshRSS
- 下载FreshRss的源代码,这里我们通过FreshRSS ,下载到zip文件的源码。通过serv00的文件管理上传到对应域名的
public_html
下。
- 由于我没搞明白怎么在文件管理里面解压文件,所以这步只能通过命令解压,
cd
到public_html
目录,使用unzip freshrss.zip
解压文件。为什么如此复杂的解压,两方面,第一,我这里连不上Serv00的上传服务器,SSH都得挂代理,第二,挂上代理,直接上传解压的文件,会上传到一半出错。
- 解压后,将解压出来文件全部挪到
public_html
下,就可以通过之前解析域名访问安装。
- 设置中文,环境默认都是支持的,数据库不知道怎么回事,一直连不上,索性就SQLite数据库了,配置登录账号密码。就完成了本次安装!
- 部署后的界面,整体运行起来感觉卡卡的。简单设置了一下,准备把我之前的配置文件导入,这简直是灾难的开始,没一会直接就和服务器失联了。看了下Serv00的后台,已经快要爆炸了,我大概导入了200多个订阅,一边看着刷新源,一边看着后台超负荷运行。果然免费的就是免费的,搭建个页面应该没啥问题,太复杂的服务还是算了,处理限制太多了。并且不知道是不是因为防火墙的问题,Serv00似乎无法订阅到国内的很多站点,就连我自己的站点都订阅不了,日志显示超时。所以这路不通了。
飞牛Docker部署Miniflux
- 随后就在网上搜索关于好用的RSS服务,看到推荐的这个Miniflux,主要是被简洁的界面吸引了,看起来真的不错。于是便想到了体验一番,部署过程很简单,通过Docker-compse部署,这里我在本地的飞牛NAS上面部署的,因为阿里99那台机子上面挂了3个Docker服务,其他必备环境,目前CPU常年百分百,实在是没法用了。本次本地部署,通过Frp内网穿透出去。
- 官方参考信息:https://miniflux.app/docs/docker.html
- 参照官方给出的文件,我这里调整了端口,初识登录密码可以根据情况变更,其他懂的调整,不懂就不用改了。通过飞牛Docker左侧栏的compose新增项目即可。
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:
- 简单使用了一下,该有的功能都有,界面简洁。但是不幸是貌似不支持公共源链接,我也问了下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内部文件夹)
- 在端口 8080 上公开
- 部署完毕后,如无报错,可以通过内网IP+端口访问。
- 检查环境,发现相关文件路径没有权限。这里需要开启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
- 调整完毕,提示有权限,进入下一步。
- 数据库依旧选择SQLite,设置账号密码。通过Frp反代出去。
- 反代出去后,发现FreshRss的主域名不对,还是显示的内网地址,后台是无法设置,根据官方指导我们需要对docker内的配置参数进行调整。
- 这里参考官方指导文件将 Caddy 用作带有子域的反向代理,我们需要调整
config.php
文件里面的'base_url' => 'https://subdomain.example.com/'
,将内网地址调整为自己的域名。 - 可以通过
docker bash *****
链接调整,我这里通过飞牛Docker的终端连接:文件路径在cd data/config.php
,这里如果没有文本编辑器的话,就安装一个。修改对应参数,注意格式。
- 调整完毕后,重启一下容器,再看就显示正常了。这样就可以配置参数了。
FeedRss调整
- 这里需要提醒一下,FreshRss的公共RSS源获取,是通过界面右上角-设置图标-账户-主验证 token
下方的链接获取的,直接复制https://xx.xxx.xxx/i/?a=rss&user=adminadmin&token=&hours=199
填写到FeedRss里面是无法订阅的,我们需要删除掉后缀https://xx.xxx.xxx/i/?a=rss
,仅保留此部分。你可以通过浏览器测试一下,是可以正常显示订阅的。
订阅测试期间,先测试了几个老哥的订阅,其中订阅到雅余老哥博客的时候,由于最新的文章里面开头是图片,在FreshRss的公共链接里面也有对应的显示,导致页面显示异常。这里对FeedRss插件进行了调整。
- 增加了对图片链接的过滤,仅保留文字部分。
- 文字展示限制到了100个字。
- 订阅下方新增了作者选项。
- 调整过后,整个界面看起来美观多了。最新代码也已经更新到相关的项目页面了RssFeed,欢迎下载测试体验。
结
- 对这几天折腾做了一个总结,这一章算是翻篇了,后面会精选一些博客添加到飞牛NAS上面的FreshRss里面,做一个订阅展示。完结撒花!
- 上一篇: Typecho订阅展示插件-RssFeed
- 下一篇: 没有了
教程很详细,不错的项目
看了好多友友的rss源订阅 大多都是基于FreshRss后改的哎
甚至有一些还是基于我的文章,哈哈哈。
折腾到最后,估计就把博客也搬到nas上去了。
暂时不考虑,毕竟没UPS,网络也没热备。
你在内网服务器部署的fresh啊
部署了一个,给插件用
不错。
Serv00 搞那个包活代码没有?
活代码??直接部署就行了,就是服务器限制太多了。
保活
让服务器一直运行着,之前n8n 就是虽然自动执行。还是2.3天就自动关闭了。
我看有用青龙自动执行的。
我在飞牛的Docker上第一次拉取镜像没问题,之后有新版本更新总是会失败,更换了仓库源也不行,不知道啥问题
https://docker.1ms.run这个不错,就是限制流量。添加到厂库那个地方启用就行了。
我来加一个,下次再有更新试试看