跳转到正文

订阅新姿势

0.0%

订阅这块,我之前一直用 Inoreader,它可以订阅 YouTube,界面也勉强说得过去

不过也有弊端,每次看都要翻出去

我 PC 开机即代理,这没问题,但手机不方便啊

后来 Folo 面世,我便迁了过去,体验还不错,可惜我订阅额度超了,慢慢也就很少用了

前几天逛网站发现一个自建订阅器:Miniflux v2

开源,极简风,支持 RSS / Atom / YouTube 等订阅源,后端 Go,前端 js,跑起来很轻

不过数据库只支持 PostgreSQL

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

我不打算自编译,直接 Docker 启动

services:
  miniflux:
    image: miniflux/miniflux:latest
    container_name: miniflux
    restart: always
    ports:
      - "${APP_PORT}:8080"
    env_file:
      - .env
    networks:
      - default_net

networks:
  default_net:
    name: ${PANEL_NETWORK}
    external: truedocker-compose.yml

docker-compose.yml 不做硬编码,全部由 .env 配置

# 宿主机映射端口
APP_PORT=8080

# 数据库配置
DATABASE_URL=postgres://用户名:密码@数据库地址:端口/数据库名?sslmode=disable

# 每次启动容器时自动运行数据库迁移(升级数据库结构)
RUN_MIGRATIONS=1

# 网络配置
PANEL_NETWORK=1panel-network

# 首次启动时自动创建管理员,建议设置,否则需要通过命令行进入容器创建
CREATE_ADMIN=1
ADMIN_USERNAME=账号
ADMIN_PASSWORD=密码

# 日志输出:info、error、warning
LOG_LEVEL=info

# (可选)默认的轮询时间(分钟),控制 RSS 抓取频率
# POLLING_FREQUENCY=60.env

部署完后,我发现 Miniflux 还提供了对外 API 接口,感觉之前自己做的友联页爬虫可以扔了

我这个页面早期灵感来源于 1900 的「左邻右舍」,挺实用的,打开订阅器都没它频繁

花了半小时构思项目,随后扔给 Claude Opus 4.8,强度拉到 Extra,一个对话就完美产出了,注释清晰,质量很高

git clone https://github.com/achuanya/miniflux-lite.git

这个小工具用 Go 写的,主要调用 Miniflux 的只读 API,读取数据库中已有订阅的最新一条数据,并将其转换为 JSON 文件,支持按分类聚合

使用很简单:

  1. 在 Miniflux 设置中创建 API_TOKEN
  2. 把根目录的 .env.example 重命名为 .env,按需填写
变量说明
API_URLMiniflux 服务器地址
API_TOKENMiniflux API 访问令牌
CATEGORIES需要聚合的分类名称(逗号分隔)
FILE_PATH输出 JSON 文件路径
LOG_LEVEL日志级别(DEBUG/INFO/WARN/ERROR/…)
LOG_FILE_PATH日志文件路径,留空输出到 stdout
LOG_ENCODERjson(结构化)或 console(易读)
MAX_CONCURRENT_GOROUTINES最大并发数,1 为顺序执行
HTTP_TIMEOUT_SECONDSHTTP 请求超时(秒)
HTTP_USER_AGENT可选,自定义 User-Agent

编译运行后,输出为 JSON 数组:

[
  {
    "category": "网上邻居",
    "url": "https://example.com/post",
    "title": "文章标题",
    "published_at": "2026-06-15T08:30:00Z",
    "author": "作者昵称",
    "avatar": "https://example.com/avatar.png"
  }
]

头像这块,Miniflux 默认返回的是 Base64 data URI 格式的源图标

我为了页面加载速度,把博主头像都存到了 COS,你可以在 Miniflux 每个订阅源的 description 字段里填入头像 URL(如下图)

当然,你也不用一个个手填

Miniflux 可以导出现有订阅模板

把头像数据和导出的 feeds.opml 一起喂给 AI,它会帮你批量处理好

我所有订阅源头像的命名都按博主域名来命名:

https://blog.lhasa.icu

blog.lhasa.icu.webp

随后再导入 Miniflux,就是这么简单

至于这个 JSON 怎么用,就看你自己了

你可以把它暴露成一个直连地址,也可以直接生成到博客的 dist 目录里

FILE_PATH=/root/code/astro-lite/dist/feed.json

这样博客构建完后,友链页直接读取 /feed.json 即可

当前这套订阅方式也不是没有问题:

由于网络错误,Miniflux 无法访问此网站:Get "https://blog.yitianshijie.net/": dial tcp 108.160.170.43:443: i/o timeout。

因为服务器在大陆,YouTube 和部分博主无法订阅

所以这里准备给服务器出网,感兴趣见:



评论加载中…