Marco Nie - 2022年8月 https://blog.niekun.net/2022/08/ zh-CN you are the company you keep... Fri, 12 Aug 2022 14:50:00 +0800 Fri, 12 Aug 2022 14:50:00 +0800 Miniflux 搭建自己的 RSS 服务系统 https://blog.niekun.net/archives/2749.html https://blog.niekun.net/archives/2749.html Fri, 12 Aug 2022 14:50:00 +0800 admin 一直在使用 feedly 作为 rss 订阅器阅读文章,基本可以满足我的需求,但是部分站点只能预览摘要,想要阅读全文还打开文章链接。最近发现一个开源免费的 rss 系统,他的特点就是轻量无多于内容,致力于阅读体验。同时我发现他的一些独有功能,可以在文章只显示摘要时,有一个下载全文的选项,这样就实现了大部分文章在 rss 阅读器中就可以阅读全文的需求了。

Miniflux 需要自己部署在服务器上,它提供了多种安装方法,最简单的就是 docker 方式,避免手动配置环境及数据库等步骤。

我的系统环境:Ubuntu server 20.04

Miniflux 官网: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 配置文件中定义的管理员账户及密码:
2022-08-12T06:47:50.png

使用

如果某一篇文章不显示全文,只需要点击文章顶部的 download 按钮即可加载全文:
2022-08-12T06:47:12.png

miniflux 提供了丰富的 api 接口可供二次开发使用,通过简单的请求就可以获取到文章的各种信息,返回数据为 json 格式。

官方 api 文档参考:https://miniflux.app/docs/api.html

]]>
0 https://blog.niekun.net/archives/2749.html#comments https://blog.niekun.net/feed/2022/08/
自建 RustDesk server https://blog.niekun.net/archives/2744.html https://blog.niekun.net/archives/2744.html Sun, 07 Aug 2022 14:08:00 +0800 admin RustDesk 是一款开源的跨平台远程桌面软件,类似于 TeamViewer 的 UI 样式,但它是完全免费的。

RustDesk 提供了 3 个免费的转发服务器,会根据你的地理位置自动选择最快的,一般使用足够了,如果对安全性有担忧,它们也提供了 server 端应用,可以自建转发服务器。下面就对搭建 server 端做一些介绍。

RustDesk GitHub 主页:https://github.com/rustdesk/rustdesk
RustDesk 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-1

docker-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:
1.jpg

在第一行填入服务器 IP 地址即可:
2.jpg

确认后,如果下方状态栏显示 ready 表示服务器链接正常:
3.jpg

配置域名访问

如果想要使用域名作为 server id,需要在你的域名服务器里加上一条自定义的域名 NS 解析,如:rust.abc.com。

注意如果你使用的是 cloudflare 服务,由于它在启用 CDN 后只支持少数端口的转发,而我们需要使用的是 21115 - 21119 这些端口,所以需要在 dns 配置时取消这个自定义域名的小黄云,只使用其 dns 服务:
4.jpg

关于 cloudflare 的网络端口转发相关的信息参考官网内容:Network ports

自定义域名配置好后,修改 docker-compose.yml 配置文件中定义的地址为指定域名:

command: hbbs -r rust.abc.com:21117

重启容器后就可以在客户端的 ID server 中使用域名链接了。方法和上面介绍的用服务器 IP 设置的方法相同。

]]>
0 https://blog.niekun.net/archives/2744.html#comments https://blog.niekun.net/feed/2022/08/