2023-03-30    2023-03-30    1672 字  4 分钟

在 vps 上安装 dock

vps 系统 ubuntu

  1. 更新源,安装必须应用
1
2
sudo apt-get update
sudo apt-get install ce-certificates curl gnupg
  1. 添加 docker 官方 gpg key
1
2
3
sudo mkdir -m 0755 -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --daermor -o /etc/apt/keyrings/docker.gpg
  1. 设置 docker 仓库并启用它
1
2
3
4
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安装 docker
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
sudo apt-get update

# 如果报错请执行下面代码
sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo apt-get update

# 安装最新版本
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 安装指定版本
# 1. 使用如下命令列出存在版本
# apt-cache madison docker-ce | awk '{ print $3 }'
# 2. 安装指定版本
VERSION_STRING=5:20.10.13~3-0~ubuntu-jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

参考

安装 rsshub 服务

rsshub 是一个 rss 生成工具

RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。 RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容

使用 docker compose 部署

下载 docker-compose.yml 文件

1
2
mkdir -p rsshub
wget https://raw.githubusercontent.com/DIYgod/RSSHub/master/docker-compose.yml

编辑或修改 docker-compose.yml 文件

可能需要修改的地方 ports ,默认使用 1200

 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
version: '3'

services:
  rsshub:
    # two ways to enable puppeteer:
    # * comment out marked lines, then use this image instead: diygod/rsshub:chromium-bundled
    # * (consumes more disk space and memory) leave everything unchanged
    image: diygod/rsshub
    restart: always
    ports:
      - '1200:1200'
    environment:
      NODE_ENV: production
      CACHE_TYPE: redis
      REDIS_URL: 'redis://redis:6379/'
      PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'  # marked
    depends_on:
      - redis
      - browserless  # marked

  browserless:  # marked
    image: browserless/chrome  # marked
    restart: always  # marked
    ulimits:  # marked
    core:  # marked
    hard: 0  # marked
    soft: 0  # marked

  redis:
    image: redis:alpine
    restart: always
    volumes:
      - redis-data:/data

volumes:
  redis-data:

启动 docker-compose

1
2
3
4
5
# 创建 volume 持久化 Redis 缓存
docker volume create redis-data

# 删除之前的并,部署最新的版本
docker compose up -d --remove-orphans

测试是否配置成功

1
2
port=${你设置的外部访问端口}
curl http://127.0.0.1:${port}

如果访问成功,则部署成功

运行外部网络访问

我使用的是 ngingx, 下面两个方法二选一

  • 二级目录

    使用二级目录配置

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    server {
    	listen 80;
    	server_name service;
        location /rsshub {
    		client_max_body_size 0;
    		proxy_redirect off;
    		#proxy_set_header Host $host;
    		#proxy_set_header X-Forwarded-Proto https;
    		proxy_pass http://127.0.0.1:1200;
    	}
    }
    
  • 使用二级域名

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    server {
    	listen port;
    	server_name e.xx.com;
        location / {
    		client_max_body_size 0;
    		proxy_redirect off;
    		#proxy_set_header Host $host;
    		#proxy_set_header X-Forwarded-Proto https;
    		proxy_pass http://127.0.0.1:1200;
    	}
    }
    

测试外部访问可以成功

在浏览器中访问你在上面设置的地址,如果出现如下界面,则说明你访问成功

参考

安装 miniflux

配置 docker-compose.yml

从这个Installation Instructions 网址中选择合适的内容进行配置,下面是我的 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
version: '3.4'
services:
  miniflux:
    image: miniflux/miniflux:latest
    restart: always
    ports:
      - "8080:8080"
    depends_on:
      - db
    environment:
      - DATABASE_URL=postgres://miniflux:<postgres 数据库密码>@db/miniflux?sslmode=disable
      - BASE_URL=https://你访问 miniflux 的网站,后面可以接端口:8443/
      #- BASE_URL=https://www.shanyouli.gq:8443/miniflux/ 如果使用二级目录,建议和 nginx 中访问的目录一致
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=<登录密码>
  db:
    image: postgres:latest
    restart: always
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=postgres 数据库密码
    volumes:
      - miniflux-db:/var/lib/postgresql/date
    healthcheck:
      test: [ "CMD", "pg_isready", "-U", "miniflux" ]
      interval: 10s
      start_period: 30s
volumes:
  miniflux-db:

启动 docker-compose

1
2
3
4
5
docker-compose up -d
# 如果本地访问不成功,你可以使用如下代码重启服务
docker ps -a
# 查看存不存在image 为 miniflux/* 的容器,如果不存在,你需要继续执行 docker-compose up -d 命令重新启动它
# 使用 docker start <container-id> 启动对应的容器

本地访问

直接在浏览器中运行 http://ip:port, 出现如下界面,则运行构建成功

使用域名

nginx 配置

  • 二级域名

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    server {
    	listen 80;
    	server_name miniflux.example.com;
        location / {
    		client_max_body_size 0;
    		proxy_redirect off;
    		proxy_set_header Host $host;
    		proxy_set_header X-Forwarded-Proto https;
    		proxy_pass http://127.0.0.1:8080;
    	}
    }
    

测试

vps 上执行 systemctl restart nginx 后,在本地浏览器上访问 https://miniflux.example.com; 如上图,则表示配置成功

使用技巧

参考

  1. miniflux/v2: Minimalist and opinionated feed reader
  2. 利用 Miniflux 自建 RSS | 名無し’s Blog
  3. 用 Miniflux 自建轻便好用的 RSS 服务
  4. 使用 Docker 搭建 miniflux 和 RSSHub ,重建资讯订阅体系 - gq’s blog
  5. 使用 Docker 搭建 Miniflux 并使用 Nginx 进行反向代理 | 野生栗子🌰
  6. Miniflux 搭建自己的 RSS 服务系统 - Marco Nie
  7. 打造你独享的 RSS 阅读环境 —— RSSHub 与 Miniflux 自建指南 - Blog de Queensferry

配置 aria2ng

在服务器上配置一个 aria2NG 管理网页

AriaNg 是一个让 aria2 更容易使用的现代 Web 前端. AriaNg 使用纯 html & javascript 开发, 所以其不需要任何编译器或运行环境. 您只要将 AriaNg 放在您的 Web 服务器里并在浏览器中打开即可使用. AriaNg 使用响应式布局, 支持各种计算机或移动设备.

下载资源

1
2
3
4
5
6
7
8
if [[ ! -d /usr/share/nginx/ariang ]]; then
  mkdir /usr/share/nginx/ariang
fi
cd /usr/share/nginx/ariang
ariangver=$(curl -s "https://api.github.com/repos/mayswind/AriaNg/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
curl --retry 5 -LO https://github.com/mayswind/AriaNg/releases/download/${ariangver}/AriaNg-${ariangver}.zip
unzip *.zip
rm -rf *.zip

配置 nginx

1
2
3
4
5
6
location /aria2ng/ {
   proxy_http_version 1.1;
   client_max_body_size 0;
   index index.html;
   alias /usr/share/nginx/aria2ng/;
}

测试

在服务器上重启, nginx 后在本地浏览器中运行 http://ip:port/aria2ng/ , 出现如下界面,配置成功

注意

现在的如果你使用 https 访问它,将不会支持 http , ws 等 rpc ,仅支持 https , wss 。如果你想使用 http , ws , 请使用这个地址下的文件Aria2ng/aria2ng.github.io