- 所有文章/
使用 Miniflux + RSSHub 打造个人 RSS 阅读器
本文目录
前言 #
Miniflux 是一个基于 Golang 的极简 RSS 阅读器1,RSSHub 可以为不提供 RSS Feed 的站点提供开箱即用的 RSS 路由。
本文使用 docker compose 部署服务,RSSHub 不直接暴露任何端口(仅限容器内 Miniflux 服务使用),最后使用 Cloudflare Tunnel 访问部署好的 Miniflux 服务。
开始之前,先在服务器上 安装 最新的 Docker 和 docker compose 插件,以及用于 Cloudflare Tunnel 服务的 cloudflared
部署 #
SSH 登录服务器,开始执行命令
# 创建目录,用于 Miniflux 相关容器的持久化数据存储
sudo mkdir -p container/miniflux && cd container/miniflux
# 新建 docker-compose.yml 文件
touch docker-compose.yml
编辑这个文件,注意修改管理员信息及数据库相关信息
version: "3.1"
services:
miniflux:
image: miniflux/miniflux:latest
container_name: miniflux
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
depends_on:
- db
- rsshub
environment:
- DATABASE_URL=postgres://miniflux:<数据库密码>@db/miniflux?sslmode=disable
#- POLLING_FREQUENCY=45
- RUN_MIGRATIONS=1 # 运行数据迁移
- CREATE_ADMIN=1 # 启动时创建用户
- ADMIN_USERNAME=<管理员用户名>
- ADMIN_PASSWORD=<管理员用户密码>
- POLLING_PARSING_ERROR_LIMIT=2
- BASE_URL=https://rss.youdamin.tld/ # 替换为您的自定义域名,结尾需要斜杠
#- CLEANUP_ARCHIVE_UNREAD_DAYS=60
#- CLEANUP_ARCHIVE_READ_DAYS=45
#- PROXY_IMAGES=none
- PUID=1000
- PGID=1000
db:
image: postgres:alpine
container_name: postgres
restart: unless-stopped
environment:
- POSTGRES_USER=miniflux # 数据库用户名
- POSTGRES_PASSWORD=<数据库密码>
volumes:
- ./miniflux-db:/var/lib/postgresql/data
rsshub:
image: diygod/rsshub:chromium-bundled
container_name: rsshub
restart: unless-stopped
environment:
- NODE_ENV=production
- CACHE_TYPE=redis
- REDIS_URL=redis://redis:6379/
- CACHE_EXPIRE=3600 # 缓存过期时间,单位:秒
- REQUEST_TIMEOUT=40000 # 请求超时时间,单位:毫秒
depends_on:
- redis
redis:
image: redis:alpine
container_name: redis
restart: always
volumes:
- ./rsshub-redis:/data
考虑到 Miniflux 容器不一定等到依赖服务(如 PostgreSQL 数据库)完全就绪才启动 2,第一次部署时,建议分两步启动容器
首先拉取所需的镜像3 并启动依赖的数据库服务
sudo docker compose pull \
&& sudo docker compose up -d db redis
等待大约 10 秒左右,开始第二步的容器启动
sudo docker compose up -d
查看日志没报错,服务应该已经就绪
sudo docker compose logs -f
访问 #
在 Cloudflare Zero Trust 控制台添加一个 Tunnel,配置自定义域名和监听地址
现在可以通过您的自定义域名访问刚才部署的 Miniflux 服务了
路由 #
常规 RSS 订阅链接可以直接添加,要使用 RSSHub 支持的路由地址,先在 文档 上查找相应的路由路径。比如,准备订阅华尔街日报的中文新闻,可以查到路由路径
在 Miniflux 添加的时候,域名写 http://rsshub:1200
、路径使用上面的路由路径就可以了。
点击 查找源,Miniflux 应该可以正常获取订阅4
完成 #
分享一个我自用的极简 CSS 样式,效果图在本文开头 🫣
https://git.xvo.es/gist/plain/css/miniflux.css
Miniflux 简洁的外表下有着丰富的自定义功能和拓展,比如推送文章更新到 Telegram、使用 API Key 和各种 RSS 客户端集成、多用户支持……请尽情探索吧!