参考文章

Installation Instructions
Certbot Instructions | Certbot

之前使用 fresh RSS自建源,发现白宦成 - 独立开发者记录的rss源。无法订阅后台报xml解析的错误。网上搜索无果后,就有了换平台的想法。偶然看到这篇文章The Best Self-Hosted RSS Feed Readers,对目前自建rss托管平台进行对比。最终miniflux以8.5的高分胜出。我最喜欢的界面简洁,以下是我的安装记录。

我已有的一台vps,域名都已经注册好了。使用场景是 通过nginx反向代理到miniflux,而且必须使用https,毕竟自己的平台安全还是要有的。

以下是我的搭建步骤:

安装miniflux

1
mkdir miniflux && cd miniflux

vim 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
version: '3.4'
services:
miniflux:
image: miniflux/miniflux:latest
ports:
- "8080:8080" # 端口号
depends_on:
- db
environment:
- DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=xxxxx # 管理员用户名
- ADMIN_PASSWORD=xxxxx # 管理员密码
restart: unless-stopped
db:
image: postgres:latest
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret
volumes:
- miniflux-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
volumes:
miniflux-db:

1
2
3
4
5
6
7
8
9
10
11
# 首先启动db
docker-compose up -d db

# 然后启动miniflux
docker-compose up miniflux

# 运行数据迁移
docker-compose exec miniflux /usr/bin/miniflux -migrate

# 创建第一个用户
docker-compose exec miniflux /usr/bin/miniflux -create-admin

安装nginx

创建证书

1
certbot --nginx

配置nginx反向代理

1
2
mkdir /home/ubuntu/nginx && cd /home/ubunt/nginx
mkdir -p conf/nginx/conf.d

创建文件 vim conf/nginx/conf.d/miniflux.conf

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
33
34
35
36
37
38
39
40
41
42
43
44
server {
listen 80;
server_name <domain>; # 修改域名
server_tokens off;

location /.well-known/acme-challenge/ {
root /var/www/certbot;
}

location / {
return 301 https://$host$request_uri;
}
}

server {
listen 443 ssl;
server_name <domain>; # 修改域名
server_tokens off;
resolver 127.0.0.11;
set $upstream 127.0.0.1:8080;

ssl_certificate /etc/letsencrypt/live/fuscoyu.site/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/fuscoyu.site/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

location / {
proxy_pass http://$upstream;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;

client_max_body_size 100m;
client_body_buffer_size 128k;

proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}

使用docker-compse启动nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3'

services:
nginx:
image: nginx:1.21.6
container_name: webserver
restart: unless-stopped
volumes:
- /home/ubuntu/nginx/conf/nginx:/etc/nginx
- /etc/letsencrypt:/etc/letsencrypt
network_mode: host # 使用主机网卡,不然nginx内部访问不到miniflux端口
ports:
- 80:80
- 443:443

使用

在浏览器地址栏中输入你的域名,输入配置文件中用户名密码。

新增源

如何找呢订阅源呢,推荐你上介绍 | RSSHub 。还可以Chrome浏览器上安装插件RSSHub Radar - Chrome 网上应用店 ,它可以提示你那些网站可以订阅RSS源 。

点击复制

点击 源->新增源 粘贴刚才复制的网址并点击查找源

手机使用Reader访问

点击 设置->集成->启用Google Reader/Fever,设置阅读器访问的用户名密码

在手机上我使用Reader5,使用配置如下 我这里以Google reader为例

输入你的域名,这里的用户名密码是上面集成中设置的。

结语

以上就是我的搭建的miniflux的记录,一起折腾吧。这里推荐大家一些我常看的大佬的博客。
白宦成 - 独立开发者记录
jdhao’s digital space
某高老师的博客 - 人间观察
酷壳 – CoolShell.cn