你需要什么才能安装 xiaoya 的docker
- 软路由盒子类似 n1 等,具有 openwrt环境 (可以终端上一键配置)
- NAS 等具有docker插件 (无法或很难登入终端,需要图形化自行配置)
- 云服务器也就是俗称的 vps (可以终端上一键配置)
如何安装
openwrt下安装,调出终端命令行
openwrt控制面板左侧(“系统”或“服务”下找到“TTY终端”)
ssh 登入 openwrt
然后一键安装
bash -c “$(curl -s http://docker.xiaoya.pro/update_new.sh)”
如果是用host模式安装,则用
bash -c “$(curl -s http://docker.xiaoya.pro/update_new.sh)” -s host
第一次安装会出现下面的显示
你需要配置好三个必须文件再安装:
**mytoken.txt**
**myopentoken.txt**
**temp_transfer_folder_id.txt**
配置的内容和格式参考 “容器内 /data 目录的文件功能说明” 章节
NAS 下图形配置安装
请参照下面的 群晖配置截图,其它NAS产品的配置大同小异
详见 http://alist.xiaoya.pro/安装,配置,修复 xiaoya docker 指南/群晖NAS Docker安装xiaoya.pdf
有的群晖因为固件原因,装载路径是 /data 保存应用会失败,那么尝试这样
这是unraid的配置参考
记住 端口映射是 5678 → 80 不是 5244 不然搜索会失效,出现下面的错误
云服务器/VPS 的配置
ssh 登入服务器,一键安装
curl -s http://docker.xiaoya.pro/update_xiaoya.sh | bash
另外有些平台需要额外在服务器上开放端口,选择放行 5678
设置强制登入,和自定义密码
把密码保存到 /etc/xiaoya/guestpass.txt (不过不要设置稀奇古怪的符号,例如;&#“~@()*$ 之类的)
如果你的xiaoya放在公网,为了防止别人蹭网,可以设置强制登入,新增 /etc/xiaoya/guestlogin.txt 这个文件,重启即可,文件有没有内容无所谓,如果取消强制登入就删除这个文件。强制登入的账号为 dav,密码使用 /etc/xiaoya/guestpass.txt 里设置的,同时webdav连接使用 dav 这个用户
上述2个功能设置好后需要重启docker才会生效。
容器内 /data 目录的文件功能说明:
标注* 的文件为必要,必须存在和有内容
文件:mytoken.txt* 用途:用来加载阿里分享,和自动签到 格式:75fee1ca79514e60aa6d46c8370b9afd 备注:32位长度,参考 https://t.me/PlutoPlayer/239324
文件:myopentoken.txt* 用途:用来加载自己的阿里云盘(open接口) 格式:eyJ0eXAiOixxxxxLCJhbGciOiJSUzI1NiJ9.eyJzd999999wNzBkOWRiNWQ5YmQ0YT…….. 备注:很长一串,280位,获取方式 https://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html
文件:pikpak.txt 用途:用来观看pikpak分享 格式:”xxxxxxxx” “yyyyyyyy” 备注:账号可以是邮箱和手机号,手机号前面要加区号,也就是 “+86xxxx” 这样,注册如果用谷歌快捷方式登入的话是无法使用谷歌邮箱登入的(alist不支持)
文件:guestpass.txt 用途:自己修改 guest 账号的密码 备注:如果开启了强制登入则 登入账号 dav 也使用此密码
文件:guestlogin.txt 用途:通过此文件的存在与否来决定是否开启强制登入 格式:空白文件,不需要强制登入功能,则删除此文件
文件:show_my_ali.txt 用途:通过此文件的存在与否来决定是否加载自己的阿里云盘 格式:空白文件,不需要加载的,则删除此文件
文件:docker_address.txt 用途:配合 TVBOX的alist搜索,配置地址 http://xxxxx:5678/tvbox/my.json 格式:http://xxxxx:5678 (最后不要加 /)
文件:temp_transfer_folder_id.txt* 用途:你的阿里网盘的转存目录的folder id 格式:640xxxxxxxxxxxxxxxxxxxca8a 备注:打开你阿里云盘网页,目录所在的浏览器地址 https://www.aliyundrive.com/drive/folder/640xxxxxxxxxxxxxxxxxxxca8a 最后一串就是
文件:pikpak_list.txt 用途:挂载自己一个或多个 pikpak账号 格式:挂载名 “账号” “密码” ,用空格分开(pikpak2 “abc@hotmail.com” “123456”),每行一个
备注:挂载名不能有空格
文件:pikpakshare_list.txt 用途:挂载自己一个或多个 pikpak分享 格式:挂载名 分享ID 分享目录 ,用空格分开(赵霸道 VNRT8Wr8BGyw1kt1HkijKR4Qo1 VNQf6ZmWE3pVWGpuFriGqyPzo1),每行一个 备注:挂载名不能有空格
文件:alishare_list.txt 用途:挂载自定义分享ID 格式:挂载名 阿里分享ID 文件folder id,用空格分开,每行一个 120T电影资源 ZpevUcDZ2Pn 636c8ba0703acd24cd44b19dd00312ef15b1e8 60T各种资料 s6NBDauc5VZ 63b16e82a50ca34f6c7466293235a06d1af8ea3
备注:挂载名不能有空格
另外提醒一下,不同平台导致的文本文件格式有差别,确保是 unix格式,utf-8编码,不然会出现乱码,网页报错,无法进入目录等奇奇怪怪的问题,看截图,确保编码格式正确
示范配置文件
配置好了docker,但是浏览器访问不了怎么办
请先检查alist所在设备的网络连接情况,
curl http://docker.xiaoya.pro/version.txt 看看有没有获取到版本号
如果没有获取到版本号,那么就是网络问题,先解决网络联通的问题。
如果上面检测能获取版本号,说明网络没问题,那么就大概率是防火墙的问题,有可能是其它软件干扰了docker的防火墙规则,可以这样尝试修复docker防火墙规则
service dockerd restart
或者 (视乎你的系统)
systemctl restart docker
目的是重启 Docker Daemon管理进程来重建docker 防火墙规则,然后再
docker restart xiaoya
如果还是不行,那要使出终极大招了
iptables -F service dockerd restart docker restart xiaoya
依次执行
还不行的话,那么可以尝试用 host模式 来安装,可以避开了防火墙的麻烦,安装好后,最好重启设备清理一下防火墙规则
host模式(端口6789): curl -s http://docker.xiaoya.pro/update_xiaoya_hostmode.sh | bash 访问: http://xxxxx:6789/(xxxx 为你alist所在设备的 IP)
传统(bridge)模式和host模式可以同时安装,并不冲突,一个使用5678端口,一个使用6789端口
阿里的风控
阿里更新了接口,有好几个人都出现一会儿能放一会儿不能放的情况,共同点就是都是使用infuse,然后在刮削扫描,那么综合起来,可以判断出阿里对短时间同IP大量请求会出现限制,
表现在网页就是出现 ParamFlowException
表现在播放器就是500错误
大家留意一下,尽量停掉扫描,过一会而会自动好
所以现在不要刮削,阿里开始动态连接管理了,短时间大量请求直接抛出错误,长时间不确定会怎么处理,肯定对token和账号会做出限制,因为从被连接放来说,看起来就像流量攻击,我之前防止别人对我的网站建索引也是采用差不多的手段
现在下面这些行为就变成了高危操作
- 使用infuse等缺省设置进行扫描获取元数据
- 使用kodi,plex,jellyfin,emby进行刮削
- 使用alist进行建索引
一定要小心不要让短期限制变成对你账户的长期限制,停止上述3种行为
什么软件可以连接 xiaoya ?
文件管理类型:
- ES文件浏览器,Solid Explorer
视频播放器:
- IOS 平台: infuse, fileball,nplayer
- 安卓平台: nplayer, Kodi, Reex, NovaPlayer(魔改版)
- windows: potplayer
挂载到本地目录:
- rclone,raidrive,Mountain Duck
只有视频播放器可以通过webdav方式挂载 xiaoya的 网站 alist.xiaoya.pro,其它类型的无法挂载,但是你本地下载的docker没有此限制,这是为了避免文件管理和 rclone/raidrive 类的挂载被用来建索引和批量下载,因为这些网络访问是并发的,一次连接等于正常10个以上的用户访问,这样就挤压了其它用户的使用体验,毕竟公益性的服务背后没有强大的服务资源来支撑,所以就需要权衡来取舍了
如果要在自己的alist 里挂载xiaoya的网站,请用 Alist V3 方式,不要用webdav,用Alist V3 方式就填一个挂载路径和地址 http://alist.xiaoya.pro (切记,不要最后添加 / ,不然网页显示空白)。
如何在播放器上通过webdav 连接 xiaoya的 docker
参考 potplayer, nplayer, kodi 的配置截图
webdav 账号密码
用户: guest
密码: guest_Api789
potplayer
直连网站的设置
连接本地docker的设置
nplayer
直连网站
连接你本地docker
Kodi
Nova 魔改版(支持webdav,https://t.me/PlutoPlayer/127849 )
infuse
如何配置自己的token
阿里token
****https://alist.nn.ci/zh/guide/drivers/aliyundrive.html 或
https://aliyundriver-refresh-token.vercel.app/
获取你的移动端token
然后,在终端命令行 (xxxxxxxxxxxxxxxx 就是你获取的token)
echo xxxxxxxxxxxxxxxxxxxxxx > /etc/xiaoya/mytoken.txt
或者将你自己获取到的token粘贴至 etc/xiaoya/mytoken.txt文件里并保存。
NAS或者其它自行配置的请放入自己在配置中设定的文件夹中,文件名是 mytoken.txt
记住一定要是移动端获取的,并且是32位长度
是否正确放置了进去,可以通过下面指令来确认
docker exec -it xiaoya cat /data/mytoken.txt
Pikpak 账号
把你的pikpak账号 保存到 /etc/xiaoya/pikpak.txt
格式如下:
“xxx” “yyy” (将xxx替换为账号,yyy替换为为密码,”账号” “密码”中间有空格,切记引号要英文字符的,是 ” 不是 “)
如果账号是手机号,要 +区号 ,比如你的手机号 12345678900 ,那么就填 “+8612345678900”
通过第三方认证注册的(比如谷歌),请留意看 “我的账号填对了,为什么还看不到pikpak目录下的内容” 的内容
注册2个账号,一个用来存,一个用来看
注册后在 如图所示位置输入”兑换码“ 73900974 既可获得5天的试用会员资格,然后你利用5天时间去把空间塞满,5天会员到期后内容不会被删除,只能看不能存,这个账号也会被限速,你就把它当作分享盘(分享给自己的另一个账号或别人)
注册另一个账号,不要存超过6G的东西,只要不超过基本会员的免费6G空间,就可以不限速,这个用来看别人的分享或者自己的另一个账号的分享
注册尽量利用邮箱注册,这个就可以注册很多个
如果出现下面几个这样的图示,则表示你需要科学上网,有的地区可以直连,有的地区不行
如何确认自己的pikpak账号设置了没有?
通过下面指令来确定
docker exec -it xiaoya cat /data/pikpak.txt
我的账号填对了,为什么还看不到pikpak目录下的内容?
如果不是账号密码填错,那么我猜你是这样的情况,注册的时候使用了google,FB等第三方快捷注册,虽然看起来账号是谷歌邮箱,但实际上是不能用邮箱登入,而必须使用第三方验证,alist现在还不支持这种跳转到第三方的验证,所以你要么在账号设置里绑定一个邮箱,或者重新注册一个新账号
你可以自己验证一下,选择邮箱登入,输入你的gmail邮箱看行不行
如何测试我的alist能够联通pikpak服务器?
在alist所在的设备命令行输入
curl https://inapp.mypikpak.com/ping
如果出现一大堆内容,则表示能联通pikpak,反之则否
播放不了视频怎么办,视频有画面没声音怎么办?
如果是用浏览器有的能放,有的不能放,那么大概率是浏览器视频解码能力不足,请调用第三方播放器尝试,或者通过webdav连接alist来播放(一般浏览器不支持 H.265 和 AC3 编码视频)
如果我布署在vps上会不会消耗我的流量?
302重定向和本地代理的差别是什么?
假设:
- A 是播放器
- B 是alist
- C 是阿里
302: A访问B,B告诉A,你要的东西在C那里,我给你个地址,你直接找C,然后A直连C
因为 A 最好播放的时候直接连 C了,所以不消耗 B的流量,也就是B所在的vps流量
本地代理: A访问B,B去访问C,把内容取回来,直接返回A,B做了中间人做转发
B 在C的播放过程中消耗了 从C取内容(拉)+ 传给A (推),一进一出的流量
我以这个资源为例做具体说明
复制连接得到的是
**http://alist.xiaoya.pro/d/音乐/流行/自听无损音乐545首 全部有封面歌词/王忻辰、苏星婕 – 清空.flac**
连接这个url得到第一个跳转
https://pdsapi.aliyundrive.com/v2/redirect?id=73e8b1fe5c204f1a85ea1ba3789e2da11673682931272933093
73e8b1fe5c204f1a85ea1ba3789e2da11673682931272933093 就是这个资源(flac 文件)在阿里云盘系统里面的编号
继续顺着跳转的url 连接会得到最终的阿里云的临时CDN资源的实际位置
这个一长串的才是真正的资源存放地址,播放器就是通过这个最终的url,打开资源播放,这个资源是有有效期的,就是这个标志,是个unix的时间戳,你转换一下就知道是6个小时
也就是六小时后你再用同样的url是打不开这个连接的,因为失效了,为什么要搞那么复杂,阿里直接给个资源存放地址不就完了,这是因为为了给用户最好的体验,更快的打开,使用了前置的缓存,也就是CDN,不同的用户获取到的CDN资源地址是有可能不一样的,阿里的CDN遍布全国,北京有,广东也有,北京的用户去广东取就会慢,才去就近最快速度的原则,北京附近的就指向北京的CDN资源,广东附近的就指向广东的CDN资源,但是CDN是中间层做缓存用的,就好像你硬盘的一级缓存,不是资源的最终存放地,量有限而且贵(使用内存加高速硬盘肯定贵),所以需要把不用的资源删除腾出地方给有用的,所以就有了有效期这个限制,过了有效期就删除腾地。
另外,要说明的是alist的代理角色,它是流量代理,不是缓存代理,所以并不能提高真实的视频播放流畅度,我以水管作为例子,
流量代理:
在网络通畅的情况下A → C 直管连接是最快的,B就好比水管的弯头/三通,A和C之间有一堵墙没法直连,那只能A → B, 然后 B → C , 这样通了多少是有损毁的,流速(用网络的名词就是多了延迟),实际体验就是不能看的变成能看了
缓存代理:
在A 和 C通和不通的情况下都可以实现,这是B的角色更像是增压阀,A → B 的管子应该比 B→ C 的管子粗,通过增压阀来保证B→ C 的(水压)流速,缓存代理是包含了上面流量代理的功能,实际体验就是不但能看而且看起来不卡了
如何定时和网站同步数据
如果你是基于Linux系统的(包括openwrt),可以用以下方法设置定时更新,终端执行
crontab -e
添加一条记录
0 6 * * * docker restart xiaoya
- 按 o 插入一行
- 然后把这堆文字输入进去
- 然后按键盘左上角 ESC键退出编辑模式
- 输入 :wq 保存退出
就是每天凌晨6点自动重启xiaoya docker去同步数据,你把6改成13,那就是下午1点,至于编辑器vi的使用方法请自行百度。
挂载小雅alist显示 the site does not allow mounted
执行下面神秘的代码,你就能获取token
docker exec -i xiaoya sqlite3 data/data.db <<EOF
select value from x_setting_items where key = “token”;
EOF
把获取的token填入“令牌”处,把用户名和密码留空
Infuse设置
通讯协定:WebDAV
位址:192.xxx.xxx.xxx
用户名:guest
密码: guest_Api789
高级
路径:/dav
端囗:5678
MAC地址:
预缓存图像: