# 现已更新,请前往 https://alist-doc.nn.ci/docs/intro ,本文后续可能会另开一篇文章进行更新😂
# 效果
<iframe src="https://drive.goooo.me" height="540" frameborder="no" border="0" width="100%"></iframe>
# 起因
我在几个月前参加了阿里云盘的内测,最近领的容量也比较多,有 `1.66T`,恰好在今天又看见了群里有人提到了 `alist` 于是我就想起了这个

# 获取 `Refresh Token`
打开[这个网站](https://media.cooluc.com/decode_token/)
## 第一步(注意一定要在登陆前执行这一步)
点击本页顶部 `移动端网页登录入口` ,按F12打开浏览器开发者工具,点击开发者工具 `Network` 栏
![]
(http://img.godapex.com/2021/12/17/1dd197be7e25d.jpg)
## 第二步
输入阿里云盘账户信息进行登录(登录成功不会有任何提示),接着在开发人员工具找到并拷贝 `login.do?appName=aliyun` 链接的 `response` 数据

## 第三步
在本页粘贴 `response` 数据到输入框,点击 `解码Refresh Token` 页面将弹出你的 `refresh_token` ,保存下来备用
## 注意事项
如果你使用的是 `edge` 那么 `浏览器开发者工具` 将会是中文的,但不用慌张,使用方式是相同的包括位置等等都是一样的
# 部署 (本文提供了四种方式)
## 使用 `Bt面板`
### 基础配置
- 前往[AList Release](https://github.com/Xhofe/alist/releases)下载对应系统的程序,解压得到一个示例配置文件和一个系统名称文件夹里面包含运行文件 `alist`
- 前往[AList-web](https://github.com/Xhofe/alist-web/releases)下载打包好的前端,解压得到一个 `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: false
database:
type: sqlite3
dBFile: alist.db
```
- 填入最开始获取到的 `refresh_token` ,然后自行修改配置文件中默认的值
现在的情况应该是,目录下有两个文件 `alist` 、`conf.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
```
- 访问 Alist
现在你可以通过:http://ip地址:5244/ 访问到 `Alist`
# 感谢
[Xhofe](https://www.nn.ci)

部署alist(现已改版,但似乎任然可用,不推荐)