部署alist

发布于 2021-07-08 09:35

效果

起因

我在几个月前参加了阿里云盘的内测,最近领的容量也比较多,有 1.66T,恰好在今天又看见了群里有人提到了 alist 于是我就想起了这个

获取 Refresh Token

打开这个网站

第一步(注意一定要在登陆前执行这一步)

点击本页顶部 移动端网页登录入口 ,按F12打开浏览器开发者工具,点击开发者工具 Network
![]
(https://cdn.jsdelivr.net/gh/godapex/filecdn@master/img/37/37_2.png)

第二步

输入阿里云盘账户信息进行登录(登录成功不会有任何提示),接着在开发人员工具找到并拷贝 login.do?appName=aliyun 链接的 response 数据

第三步

在本页粘贴 response 数据到输入框,点击 解码Refresh Token 页面将弹出你的 refresh_token ,保存下来备用
##注意事项
如果你使用的是 edge 那么 浏览器开发者工具 将会是中文的,但不用慌张,使用方式是相同的包括位置等等都是一样的

部署 (本文提供了四种方式)

使用 Bt面板

基础配置

  • 前往AList Release下载对应系统的程序,解压得到一个示例配置文件和一个系统名称文件夹里面包含运行文件 alist
  • 前往AList-web下载打包好的前端,解压得到一个 dist 目录放到 alist 同级目录下
  • 在同级目录下新建一个配置文件 conf.yml,复制以下内容到该文件中,或直接使用示例配置文件进行修改
info:  title: AList #标题  logo: "" #网站logo 如果填写,则会替换掉默认的  footer_text: Xhofe's Blog #网页底部文字  footer_url: https://www.nn.ci #网页底部文字链接  music_img: https://img.xhofe.top/2020/12/19/0f8b57866bdb5.gif #预览音乐文件时的图片  check_update: true #前端是否显示更新  script: #自定义脚本,可以是脚本的链接,也可以直接是脚本内容  autoplay: true #视频是否自动播放  preview:    text: [txt,htm,html,xml,java,properties,sql,js,md,json,conf,ini,vue,php,py,bat,gitignore,yml,go,sh,c,cpp,h,hpp] #要预览的文本文件的后缀,可以自行添加server:  address: "0.0.0.0"  port: "5244"  search: true  static: dist  site_url: '*'  password: password #用于重建目录ali_drive:  api_url: https://api.aliyundrive.com/v2  max_files_count: 200  drives: - refresh_token: xxx #refresh_token    root_folder: root #根目录的file_id    name: drive0 #盘名,多个盘不可重复,这里只是示例,不是一定要叫这个名字,可随意修改    password: pass #该盘密码,空('')则不设密码,修改需要重建生效    hide: false #是否在主页隐藏该盘,不可全部隐藏,至少暴露一个 - refresh_token: xxx #只有一个盘的话,该段完全可以删除,反之有更多可以继续添加    root_folder: root    name: drive1    password: pass    hide: falsedatabase:  type: sqlite3  dBFile: alist.db
  • 填入最开始获取到的 refresh_token ,然后自行修改配置文件中默认的值
    现在的情况应该是,目录下有两个文件 alistconf.yml 和一个文件夹 dist
  • 新建网站之后直接使用 远程下载 下载即可
  • 仔细阅读以上内容

运行(如果迁移之后出现问题,保留conf.yml,其余内容全部重新下载)

  • 建议先运行这个,看一下 log.log 文件看一看有没有问题(我就是吃了这个的亏),进程守护无法启动时,不会有错误提示
chmod +x alist #bt面板部署不需要执行nohup ./alist > log.log 2>&1 &

添加进程守护

  • 使用 Supervisor管理器
  • 看图进行设置
  • 访问 yourip:5244 进行确认

设置 反代 通过域名访问

  • 看图进行设置

常见问题解答

  • 如何给文件夹设置密码?
    在要加密的目录名称后面加上,列表中会自动消除后面的密码部分。.password-密码
  • 如何隐藏文件夹
    在要隐藏的文件夹名称后面加上即可。.hide
  • 如何重建目录树
    点击网页底部的重构目录按钮,输入配置文件中设置的 server.password 确定即可。
  • 如何设置根目录?
    修改配置文件中的 为想要设置的文件夹的 即可。文件夹的file_id是什么?根目录就是root,其他目录为点进文件夹之后的url中 后面那一串ali_drive.root_folderfile_idfolder/
  • 如何自定义网页底部链接?
    修改配置文件中的 和 为要设置的内容,或者不填则不会显示. footer_textfooter_url
  • 怎么复制文件直链?
    点进文件,右上角有复制直链的按钮。
  • 修改网站icon?
    替换掉目录下的即可。dist favicon.ico
  • 为什么新上传的文件不显示/删除了的文件还在?
    列表展示的是本地数据库里的数据,更新文件之后需要重建。
  • 如何更新?
    前端:下载新的打包好的文件,删掉原来的dist文件夹,解压新的dist放入原来的位置即可。后端: 停掉老的进程,删除旧的alist,下载新的alist,查看配置文件,补上新的配置项,再次运行即可。pkill alist
  • 运行显示检查更新之后直接报错?
    可能是无法访问到GitHub的api,可以在命令行后面加上-skip-update跳过检查更新。
  • 怎么指定路径重建?
    在哪个路径点rebuild就是在哪里重建。
  • The input parameter limit is not valid. limit should be less than 200?
    Xhofe/alist-web#22

补充(推荐)

使用mysql(可选)我用原来的自带的出现了 database is locked 并且折腾无用
需要使用utf8mb4编码,修改database部分配置:
conf.yml文件中修改,记得新建数据库,并删除文件alist.db

database:  type: mysql  user: 用户名  password: 密码  host: 127.0.0.1  port: 3306  name: 数据库名

一键部署 Alist

bash -c "$(curl -sS https://www.cooluc.com/alist-install.sh)"

Heroku部署

https://github.com/sbwml/alist-heroku

使用Docker部署(支持 linux/386/amd64/armv7/armv8 架构)

Docker Hub: https://hub.docker.com/r/sbwml/alist

  • 创建 Alist 容器
docker run -d --restart=always -v /etc/alist:/alist/config -p 5244:5244 --name="alist" sbwml/alist:latest
  • 写入 refresh_token
vi /etc/alist/conf.yml

refresh_token: xxx 修改 xxx 为你的 refresh_token。
更多: https://www.nn.ci/archives/alist.html

  • 重启 Alist 容器
docker restart alist

感谢

Xhofe