极简RSS订阅器Miniflux

什么是 Miniflux ?

Miniflux 是一个极简主义的 RSS 阅读器。它简单、快速、轻便且非常易于使用。Miniflux 是静态编译的单个二进制文件,没有使用任何复杂的框架,也没有外部依赖,简单、快速、轻巧且超级容易安装。支持 AtomRSS 1.0/2.0JSON 格式,支持 OPML 导入 / 导出等。

安装

环境变量

docker 相关的环境变量

变量 缺省值 描述
POSTGRES_DB 数据库库名
POSTGRES_USER 数据库用户
POSTGRES_PASSWORD 数据库密码
DATABASE_URL 数据库地址, postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@dbhost:dbport/${POSTGRES_DB}?sslmode=disable
RUN_MIGRATIONS 1 自动运行数据库迁移
CREATE_ADMIN 1 创建管理员
ADMIN_USERNAME 管理员账号名
ADMIN_PASSWORD 管理员密码

更多的环境变量,请参考官方文档:https://miniflux.app/docs/configuration.html

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

下面安装时,老苏没有将数据库端口暴露出来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 新建文件夹 miniflux 和 子目录
mkdir -p /volume2/docker/miniflux/data

# 进入 miniflux 目录
cd /volume2/docker/miniflux

# 创建网络
docker network create -d bridge miniflux-net

# 运行 PostgreSQL 容器
docker run -d \
--restart unless-stopped \
--name miniflux-db \
--network=miniflux-net \
-v $(pwd)/data:/var/lib/postgresql/data \
-e "POSTGRES_DB=miniflux" \
-e "POSTGRES_USER=miniflux" \
-e "POSTGRES_PASSWORD=YNAYcg3a9L3B" \
postgres:14

# 运行 Miniflux 容器
docker run -d \
--restart unless-stopped \
--name miniflux-web \
--network=miniflux-net \
-p 8120:8080 \
-e "DATABASE_URL=postgres://miniflux:YNAYcg3a9L3B@miniflux-db/miniflux?sslmode=disable" \
-e "RUN_MIGRATIONS=1" \
-e "CREATE_ADMIN=1" \
-e "ADMIN_USERNAME=laosu" \
-e "ADMIN_PASSWORD=jCdp64gMapAR" \
miniflux/miniflux:2.0.41

docker compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: '3'

services:
db:
image: postgres:14
container_name: miniflux-db
#restart: unless-stopped
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=YNAYcg3a9L3B
- POSTGRES_DB=miniflux
volumes:
- ./data:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s

miniflux:
image: miniflux/miniflux:2.0.41
container_name: miniflux-web
#restart: unless-stopped
ports:
- "8120:8080"
depends_on:
- db
environment:
- DATABASE_URL=postgres://miniflux:YNAYcg3a9L3B@miniflux-db/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=laosu
- ADMIN_PASSWORD=jCdp64gMapAR

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 miniflux 和 子目录
mkdir -p /volume2/docker/miniflux/data

# 进入 miniflux 目录
cd /volume2/docker/miniflux

# 将 docker-compose.yml 放入当前目录

# 先启动数据库
docker-compose up -d db

# 再启动应用
docker-compose up miniflux

之所以没有采用 docker-compose up -d 一键启动,是因为虽然可以通过 depends_on 控制启动顺序,但是实际上miniflux 开始连接 postgres 时,有可能数据库并没有准备好,因而会导致 miniflux 容器启动失败

有两个办法可以解决这个问题:

  • 第一种方法:先启动数据库 docker-compose up -d db,再启动应用程序 docker-compose up miniflux

  • 第二种方法:是 docker-compose 官方给的建议,通过 wait-for-it.sh 脚本来控制

wait-for-it.sh 代码地址:https://github.com/vishnubob/wait-for-it

相对来说,第一种方法更简单一点,第二种方法老苏也并没有用过,不知道在群晖上是否可行

运行

在浏览器中输入 http://群晖IP:8120 就能看到登录界面

登录成功之后的主界面还是空的

中文

进入 Settings –> Language –> 简体中文

点最下面的 Update 按钮之后,界面就是中文版了

添加源

还是以老苏的博客为例, –> 新增源 ,输入 https://laosu.ml/atom.xml

查找源 按钮之后,会显示订阅界面

进入一篇

默认只有简介,也就是发布时的 description 部分

要看全文还需要抓取

虽然安装看起来有点复杂,但是使用是不是非常简单?

参考文档

miniflux/v2: Minimalist and opinionated feed reader
地址:https://github.com/miniflux/v2

dubhad-dev/miniflux-docker
地址:https://github.com/dubhad-dev/miniflux-docker

Installation Instructions
地址:https://miniflux.app/docs/installation.html#docker

v2/contrib/docker-compose at main · miniflux/v2
地址:https://github.com/miniflux/v2/tree/main/contrib/docker-compose