小雅的分类 Alist 是一个基于 Alist 搭建的阿里云盘聚合站,资源极为丰富,分类细致。同时提供 docker 镜像,可以快速部署自己的镜像站。
1、部署
按官方文档介绍,直接使用 docker
部署,docker
安装参考文章:Debian 安装国内源 Docker 及其他常用软件
可以参考文章:使用 Docker Compose 命令部署常用服务,更方便的部署。
1.1、创建文件夹
1 2 3 4
| mkdir ~/.docker/xiaoya/config touch ~/.docker/xiaoya/config/mytoken.txt touch ~/.docker/xiaoya/config/myopentoken.txt touch ~/.docker/xiaoya/config/temp_transfer_folder_id.txt
|
这些是必需的,文件对应的值根据以下获取方式填写
1.2、拉取最新镜像
1
| docker pull xiaoyaliu/alist:latest
|
1.3、部署命令
1
| docker run -d -p 5678:80 -p 2345:2345 -p 2346:2346 -v ~/.docker/xiaoya/config:/data -v ~/.docker/xiaoya/config/data:/www/data --restart=always --name=xiaoya xiaoyaliu/alist:latest
|
2、配置 Nginx
Nginx
安装参考文章:Debian 安装国内源 Docker 及其他常用软件
2.1、生成证书
如果服务器已经安装 certbot
,只需要运行以下指令
1
| certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini -d xiaoya.ysbzcn.com --email 'email@ysbzcn.com'
|
如果没有 certbot
,需要一些前置安装,参考文章:Debian 安装国内源 Docker 及其他常用软件
2.2、新建 nginx
配置文件
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| upstream xiaoya { server 127.0.0.1:5678; }
server { listen 80; listen [::]:80; server_name xiaoya.ysbzcn.com;
if ($host = xiaoya.ysbzcn.com) { return 301 https://$host$request_uri; } return 403;
server_tokens off; }
server { listen 443 ssl; listen [::]:443 ssl; http2 on;
server_name xiaoya.ysbzcn.com;
server_tokens off;
if ($host !~ (xiaoya.ysbzcn.com)$){ return 403; } ssl_certificate /etc/letsencrypt/live/xiaoya.ysbzcn.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xiaoya.ysbzcn.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;
access_log /var/log/nginx/nginx.xiaoya.access.log; error_log /var/log/nginx/nginx.xiaoya.error.log;
location / { proxy_pass http://xiaoya; proxy_set_header 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; }
location ~ /\. { deny all; } }
|
2.3、验证并重载 nginx
配置
3、更新
3.1、停止并移除旧容器
1
| docker stop xiaoya && docker rm xiaoya
|
3.2、拉取最新镜像
1
| docker pull xiaoyaliu/alist:latest
|
3.3、重新部署
1
| docker run -d -p 5678:80 -p 2345:2345 -p 2346:2346 -v ~/.docker/xiaoya/config:/data -v ~/.docker/xiaoya/config/data:/www/data --restart=always --name=xiaoya xiaoyaliu/alist:latest
|
4、定时同步元数据
4.1、定时重启小雅
1
| 0 6 * * * docker restart xiaoya
|
一般重启小雅容器时就会自动下载最新元数据,由于一些原因,会出现获取不到元数据的情况,所以需要设定元数据文件夹与容器内元数据文件夹做映射。
4.2、手动获取元数据
1
| mkdir ~/.docker/xiaoya/config/data
|
1
| bash -c "$(curl http://docker.xiaoya.pro/update_data.sh)" -s --no-upgrade
|
有时各种原因会导致启动时获取元数据连接不顺畅,下载不下元数据,容器新建或者重启完成之后,网页没有数据。为了启动时更顺畅,创建元数据保存文件夹,执行小雅更新脚本会自动下载元数据到这个文件夹,然后映射到容器内元数据文件夹,只要成功获取一次,即使容器更新时没有下载到元数据,网页也不会没有内容。
4.3、创建元数据下载地址文档
1
| vim ~/.docker/xiaoya/config/download_url.txt
|
填入以下数据,这些地址可以通过上面小雅更新脚本自行获取,设置之后一般不会获取不到元数据,也能保证重启小雅也能获得最新元数据。
1 2 3 4 5 6 7 8 9 10 11 12
| "https://gitlab.com/xiaoyaliu/data/-/raw/main" "https://raw.githubusercontent.com/xiaoyaliu00/data/main" "https://cdn.wygg.shop/https://raw.githubusercontent.com/xiaoyaliu00/data/main" "https://fastly.jsdelivr.net/gh/xiaoyaliu00/data@latest" "https://521github.com/extdomains/github.com/xiaoyaliu00/data/raw/main" "https://cors.zme.ink/https://raw.githubusercontent.com/xiaoyaliu00/data/main" "https://git.jasonml.xyz/https://raw.githubusercontent.com/xiaoyaliu00/data/main/" "https://cdn.wygg.shop/https://raw.githubusercontent.com/xiaoyaliu00/data/main/" "https://gh.ddlc.top/https://raw.githubusercontent.com/xiaoyaliu00/data/main/" "https://git.886.be/https://raw.githubusercontent.com/xiaoyaliu00/data/main/" "https://gh.idayer.com/https://raw.githubusercontent.com/xiaoyaliu00/data/main/" "https://slink.ltd/https://raw.githubusercontent.com/xiaoyaliu00/data/main/"
|
5、其他设置
对照 官方文档 按需进行设置。