Marco Nie - 2022年8月 https://blog.niekun.net/2022/08/ you are the company you keep... Miniflux 搭建自己的 RSS 服务系统 https://blog.niekun.net/archives/2749.html 2022-08-12T14:50:00+08:00 一直在使用 feedly 作为 rss 订阅器阅读文章,基本可以满足我的需求,但是部分站点只能预览摘要,想要阅读全文还打开文章链接。最近发现一个开源免费的 rss 系统,他的特点就是轻量无多于内容,致力于阅读体验。同时我发现他的一些独有功能,可以在文章只显示摘要时,有一个下载全文的选项,这样就实现了大部分文章在 rss 阅读器中就可以阅读全文的需求了。Miniflux 需要自己部署在服务器上,它提供了多种安装方法,最简单的就是 docker 方式,避免手动配置环境及数据库等步骤。我的系统环境:Ubuntu server 20.04Miniflux 官网:https://miniflux.app/GitHub 主页:https://github.com/miniflux/v2安装这里介绍通过 docker compose 安装的方法,关于 docker 环境的部署参考我的教程:https://blog.niekun.net/archives/2742.html#title-1新建 miniflux 文件夹用来放置相关配置:mkdir miniflux cd miniflux 然后建立 docker-compose.yml 配置文件,内容如下:version: '3.4' services: miniflux: image: ${MINIFLUX_IMAGE:-miniflux/miniflux:latest} container_name: miniflux restart: always ports: - "18080:8080" depends_on: - db environment: - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable - BASE_URL=https://miniflux.your.domain - RUN_MIGRATIONS=1 - CREATE_ADMIN=1 - ADMIN_USERNAME=admin - ADMIN_PASSWORD=test123 - DEBUG=1 # Optional health check: # healthcheck: # test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"] db: image: postgres:latest container_name: postgres restart: always 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:其中需要自行根据实际情况修改一些内容:port 端口的主机映射,这里我使用了 18080 映射容器内的 8080 端口BASE_URL 设置需要访问 miniflux 服务的域名地址,后面需要配置反向代理ADMIN_USERNAME 设置管理员用户名ADMIN_PASSWORD 设置管理员用户密码敏感的环境变量值可以单独放在同配置文件路径下的 .env 文件中,上面的 docker 安装教程中有介绍。注意 DATABASE_URL 地址中的 postgres 用户名密码对应于 POSTGRES_USER 和 POSTGRES_PASSWORD 的值,需要保持一致。然后就可以启动容器:docker-compose up -d 反代配置首先如果需要解析到二级域名下,先要在 ns 服务端添加二级域名的 A 记录,然后才能正常解析 url。使用域名访问 miniflux 服务,需要通过主机使用的反代软件配置解析,我服务器使用的是 nginx,下面介绍配置方法。给 nginx 配置添加如下内容:server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name miniflux.your.domain; include my-server/ssl; location / { proxy_pass http://127.0.0.1:18080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $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-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; } }以上配置需要根据实际情况修改监听端口及 domain,由于之前配置的 miniflux 的映射端口是 18080,所以反代到本地的对应端口即可。以上 miniflux 和 nginx 反代配置完成后应该就可以访问 https://miniflux.your.domain 了。用户名密码就是 docker 配置文件中定义的管理员账户及密码:使用如果某一篇文章不显示全文,只需要点击文章顶部的 download 按钮即可加载全文:miniflux 提供了丰富的 api 接口可供二次开发使用,通过简单的请求就可以获取到文章的各种信息,返回数据为 json 格式。官方 api 文档参考:https://miniflux.app/docs/api.html 自建 RustDesk server https://blog.niekun.net/archives/2744.html 2022-08-07T14:08:00+08:00 RustDesk 是一款开源的跨平台远程桌面软件,类似于 TeamViewer 的 UI 样式,但它是完全免费的。RustDesk 提供了 3 个免费的转发服务器,会根据你的地理位置自动选择最快的,一般使用足够了,如果对安全性有担忧,它们也提供了 server 端应用,可以自建转发服务器。下面就对搭建 server 端做一些介绍。RustDesk GitHub 主页:https://github.com/rustdesk/rustdeskRustDesk Server GitHub 主页:https://github.com/rustdesk/rustdesk-server服务器平台:ubuntu 20.04安装 server我是通过 docker 安装的 server 端,这样最快速简单。关于 docker 和 docker compose 的安装可以参考我之前的文章:https://blog.niekun.net/archives/2742.html#title-1docker-compose.yml 文件内容如下:version: '3' networks: rustdesk-net: external: false services: hbbs: container_name: hbbs ports: - 21115:21115 - 21116:21116 - 21116:21116/udp - 21118:21118 image: rustdesk/rustdesk-server:latest command: hbbs -r xxx.xxx.xxx.xxx:21117 volumes: - ./data:/root networks: - rustdesk-net depends_on: - hbbr restart: unless-stopped hbbr: container_name: hbbr ports: - 21117:21117 - 21119:21119 image: rustdesk/rustdesk-server:latest command: hbbr volumes: - ./data:/root networks: - rustdesk-net restart: unless-stopped这里配置 hbbs IP 地址需要设置为中继服务器的 IP 或域名,否则无法链接。默认监听的是 21117 端口,客户端默认也是链接服务器的这个端口。如果修改这里的默认端口,则在客户端设置的时候也需要指定此端口。启动服务:docker-compose up -d 此时在客户端设置 ID server:在第一行填入服务器 IP 地址即可:确认后,如果下方状态栏显示 ready 表示服务器链接正常:配置域名访问如果想要使用域名作为 server id,需要在你的域名服务器里加上一条自定义的域名 NS 解析,如:rust.abc.com。注意如果你使用的是 cloudflare 服务,由于它在启用 CDN 后只支持少数端口的转发,而我们需要使用的是 21115 - 21119 这些端口,所以需要在 dns 配置时取消这个自定义域名的小黄云,只使用其 dns 服务:关于 cloudflare 的网络端口转发相关的信息参考官网内容:Network ports自定义域名配置好后,修改 docker-compose.yml 配置文件中定义的地址为指定域名:command: hbbs -r rust.abc.com:21117 重启容器后就可以在客户端的 ID server 中使用域名链接了。方法和上面介绍的用服务器 IP 设置的方法相同。