社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

用Docker单独安装xiaoya-alist

各种折腾 • 1 月前 • 88 次点击  

五一快到了,每到节假日,各个景点就人头攒动,就不出门添堵了,准备在家看看电影、喝喝茶

看电影老苏喜欢用播放器,Native客户端的功能是网页端没法比的,Windows 上用的 PotPlayerMac 上则用 IINAAndroid 上就用 AfuseKt,都是神器

以前都是玩客云下载,局域网 SMB 映射,看完就删,不过玩客云已经终止了服务。现在基本上是通过转存到阿里云盘,用 WebDAV 挂载了再看的

老苏现在的需求是:

  1. 不需要下载,因为浪费时间,也浪费空间
  2. 不需要 Jellyfin 类的媒体服务器,海报墙是可有可无的
  3. 最好也不需要转存,因为活动结束,阿里云盘免费空间越来越小了

找了一圈,能满足需求的只有 xiaoya 了,有个 DDS-Derek/xiaoya-alist 的项目,整合了小雅 Alist 的相关周边的安装脚本,内置所有相关软件的安装

只要一条命令就可以安装你心中所想,不想折腾的可以去看看,项目地址:https://github.com/DDS-Derek/xiaoya-alist

老苏还是一如既往喜欢瞎折腾,继续以 Docker 方案折腾

准备

不管用什么方式安装,都需要先准备好三个文件,否则就是安装完,也还是需要重启容器的

内容对应文件获取方式
tokenmytoken.txthttps://aliyuntoken.vercel.app/
https://alist.nn.ci/zh/guide/drivers/aliyundrive.htm
open tokenmyopentoken.txt https://alist.nn.ci/tool/aliyundrive/request.html
转存目录的 folder idtemp_transfer_folder_id.txt先转存这个 https://www.aliyundrive.com/s/rP9gP3h9asE 到自己网盘(选择资源盘),然后浏览器打开转存后的目录,浏览器的 url https://www.aliyundrive.com/drive/file/resource/640xxxxxxxxxxxxxxxxxxxca8a 最后一串就是,记得这个目录不要删,里面的内容可以定期删除

下面具体介绍获取方式,切记,token 很重要,一定要保存好

mytoken.txt

刷新令牌是个 32 位长的字符。打开下面👇的网址,然后点  获取Token 按钮

https://alist.nn.ci/zh/guide/drivers/aliyundrive.html#刷新令牌

用阿里云盘手机 APP 扫描二维码

将箭头处出现的 Token,复制到 mytoken.txt文件保存

myopentoken.txt

open token 是一串很长的字符,打开下面👇的网址,然后点  Scan QrCode 按钮

https://alist.nn.ci/tool/aliyundrive/request.html

用阿里云盘手机 APP 扫描二维码,然后点 I have scan

将得到的 Refresh Token ,复制到 myopentoken.txt 文件保存

temp_transfer_folder_id.txt

登陆自己的阿里云盘网页版,在【资源库】里面新建一个文件夹,名字无所谓的,老苏建了个temp

点击 temp 文件夹,可以在浏览器上地址栏看到 resource 后面的一串字符

这串字符就是 folder id ,复制到 temp_transfer_folder_id.txt文件保存

有一点需要注意,这个目录如果删了,哪怕你重建了一个名称一样的目录, folder id  也是不一样的,需要更新temp_transfer_folder_id.txt,否则转存的时候就会出错

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 xiaoyaliu ,选择第一个 xiaoyaliu/alist,版本选择 latest

容器名称

后面还会用到容器的名称,所以这里就叫 xiaoya

docker 文件夹中,创建一个新文件夹 xiaoya,并在其中建一个子文件夹 data,将前面准备的三个文件,放入 data 目录

文件夹装载路径说明
docker/xiaoya/data/data存放配置文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
876580

默认没有暴露端口

需要点 + 号自行添加

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 xiaoya 和 子目录
mkdir -p /volume1/docker/xiaoya/data

# 进入 xiaoya 目录
cd /volume1/docker/xiaoya

# 将 mytoken.txt 、 myopentoken.txt 、 temp_transfer_folder_id.txt 放入 /data 目录

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name xiaoya \
   -p 8765:80 \
   -v $(pwd)/data:/data \
   xiaoyaliu/alist

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  xiaoya:
    image: xiaoyaliu/alist
    container_name: xiaoya
    restart: unless-stopped
    ports:
      - 8765:80
    volumes:
      - ./data:/data

然后执行下面的命令

# 新建文件夹 xiaoya 和 子目录
mkdir -p /volume1/docker/xiaoya/data

# 进入 xiaoya 目录
cd /volume1/docker/xiaoya

# 将 mytoken.txt 、 myopentoken.txt 、 temp_transfer_folder_id.txt 放入 /data 目录

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

查看容器的日志,如果准备的三个文件正确的话,会看到数据同步的信息

这个过程可能会持续几分钟,在浏览器中输入 http://群晖IP:8765 ,如果显示 获取设置失败,那还得再等等

全部元数据加载成功后是下面👇这样的

现在就可以正常看电影了

这个时候看 /data 目录,会多出几个文件

WebDAV 挂载

前面已经交代过,老苏习惯用播放器看电影,所以还需要做 WebDAV 挂载,xiaoya 默认是支持 WebDAV

默认的地址:http://群晖IP:8765/dav用户:guest密码:guest_Api789

Windows 平台的 RaiDrive 为例

挂载成功后,就可以在资源管理器中找到文件进行播放了

定时重启

xiaoya 容器重启时,会自动更新数据库及搜索索引文件,所以我们要用群晖的 任务计划 来辅助实现容器的定时重启

创建一个任务

可以设定每天重启一次

脚本直接写 docker restart xiaoya,其中 xiaoya 是容器的名字

清理转存

每一次的播放,xiaoya 都会将文件转存到我们前面建的 temp 目录,随便点点就会发现多了一堆的文件,哪怕是同一个文件,也是会重新转存的

所以清理就很重要,一旦阿里云盘满了,是会报错的。在前面介绍的  DDS-Derek/xiaoya-alist 中,有一个清理脚本

地址:https://github.com/DDS-Derek/xiaoya-alist/tree/master/xiaoyahelper

可以直接运行 bash -c "$(curl -sLk https://xiaoyahelper.ddsrem.com/aliyun_clear.sh | tail -n +2)" -s 3

老苏用的模式 3,只要运行一次,如果看到已启动就表示成功了

也可以下载到本地运行 ./aliyun_clear.sh 3

当看到小雅看护已启动,你会在容器中找到 xiaoyakeeper 容器

清理并不会立即就执行,容器会安装并更新一些东西

网络不好的情况下,还是需要点时间的

每次清理都会有清理记录

按官方说明,模式 3 默认从运行脚本的下一分钟开始,每天运行一次。如果万一不能更新的话,可以参照前面的方法,让 xiaoyakeeper 容器每天定时重启

参考文档

DDS-Derek/xiaoya-alist: 小雅Alist的相关周边
地址:https://github.com/DDS-Derek/xiaoya-alist

Docker Hub
地址:https://hub.docker.com/r/xiaoyaliu/alist

如何设置xiaoya的docker
地址:https://xiaoyaliu.notion.site/xiaoya-docker-69404af849504fa5bcf9f2dd5ecaa75f

@所有人:写文不易,如果你都看到了这里,请点个在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/169548
 
88 次点击