如何安装Alist组件来管理你各大厂商的网盘文件!

环境使用组件

组件 作用 版本
alist 一个支持多种存储,支持网页浏览和 WebDAV 的文件列表程序,由 gin 和 Solidjs 驱动。 alist:latest
LInxu-centos 搭载组件的操作系统 6----7.6

PS:由于我们需要用到docker,我们就从安装docker开始!

安装docker服务(推荐使用以下一键部署shell脚本,选择自己想要装的版本即可)

#!/bin/bash

#确保网络连通
wangluo(){

ping -c 2 -w 3 www.baidu.com  &>/dev/null
if [ $? -eq 0 ]; then
        echo "已连通外网,执行下步操作"
    else
        echo "外网不通,正在退出"
        exit 1
fi

}
wangluo #检查网络连通性,不需要时将此禁用即可

#获取系统版本信息
Arch=$(arch)

#选择需要下载的版本
curl -s https://download.docker.com/linux/static/stable/$Arch/ | tail -n +11 | head -n -1  | awk -F "href=" '{print $2}' | awk -F ">" '{print $1}'  | sed 's/"//g'

#tgz包名称
read -ep "请选择您需要安装的版本:"  tgz
#二进制所在文件
Erjinzhi="/usr/bin/"
#创建的用户组
user="docker"
#二进制包解压所在文件
PWD="/opt"


#修改时区为上海
echo "修改时区,并同步时间:timedatectl set-timezone Asia/Shanghai"
timedatectl set-timezone Asia/Shanghai

#修改selinux
echo "关闭selinux"
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config   #s/^ 以哪个开头 /改成什么/
setenforce 0

#关闭防火墙
echo "关闭防火墙,并禁止开机自启动:systemctl stop  firewalld | systemctl  disable  firewalld"
systemctl stop  firewalld
systemctl  disable  firewalld


#停止docker服务
systemctl stop docker.service
systemctl stop docker.socket
systemctl stop containerd.service

#下载插件
yum  -y install wget  ntp

#下载所选docker版本
wget -c https://download.docker.com/linux/static/stable/$Arch/$tgz


#解压文件
tar -zxvf $tgz  -C $PWD/
#改变权限
chown root:root $PWD/docker/* 
#复制文件到指定位置
\cp -p $PWD/docker/* $Erjinzhi 
#创建用户和组
groupadd $user
#检查是否生效
docker version | grep Version | head -n 1
if [ $? -ne 0 ]; then
    echo "docker 二进制包复制失败"
    exit 1
fi

#添加对应的服务文件
#####{docker.socket}#####
tee /usr/lib/systemd/system/docker.socket <<EOF
[Unit]
Description=Docker Socket for the API

[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target
EOF

#####{containerd.service}#####
tee /usr/lib/systemd/system/containerd.service <<EOF
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5

# Having non-zero Limit*s causes performance problems due to accounting overhead

# in the kernel. We recommend using cgroups to do container-local accounting.

LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity

# Comment TasksMax if your systemd version does not supports it.

# Only systemd 226 and above support this version.

TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target
EOF

#####{docker.service}#####
tee /usr/lib/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service

[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

TasksMax=infinity

Delegate=yes

KillMode=process
OOMScoreAdjust=-500

[Install]
WantedBy=multi-user.target
EOF

#定时清理日志
mkdir /etc/docker
touch /etc/docker/daemon.json
cat << EOF > /etc/docker/daemon.json
{
"log-opts": {
    "max-size": "10m",
    "max-file": "3"
    }
}
EOF


#启用 dockerd 服务
systemctl enable docker.service
if [ $? -ne 0 ]; then
    echo "docker 服务加入开机自启失败"
    exit 1
fi

#查看状态
systemctl is-enabled docker.socket docker.service containerd.service  | sed ":a;N;s#\n#,#g;ta" 

#运行docker
systemctl enable --now docker.service 
if [ $? -ne 0 ]; then
    echo "docker 服务启动失败"
    exit 1
fi

#查看docker是否启动
systemctl  status docker | egrep -i  "running"
if [ $? -eq 0 ];then   #$? 返回值 -eq 等于  0 数值也可以是字符   如果返回值等于0那么执行成功,反之执行失败!
    echo -e "\033[42;37m docker服务启动成功 \033[0m" 
else
    echo -e "\033[31m docker服务检测出现异常 \033[0m" 
    exit 1
fi



#同步时间
ntpdate ntp1.aliyun.com  
echo "已同步阿里服务器时间!"

echo  "安装完成请查收!"

安装Alist网盘管理插件1.png

安装docker-compose组件

#查看自己的系统类型

arch  #执行arch命令查看系统版本

#进入/usr/local/bin/下载文件

cd /usr/local/bin/

#下载对应版本的二进制  x86_64
wget https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64

#下载对应版本的二进制  aarch64
wget https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-aarch64

#将下载完成后的二进制文件修改名称
mv docker-compose-linux-x86_64  docker-compose
mv docker-compose-linux-aarch64  docker-compose

#添加执行权限
chmod +x  docker-compose

#确认 docker-compose 是否可用
docker-compose  --version

Docker安装完成之后,开始安装我们的Alist

# 确认自己的数据盘 我的是 /data/Alist

# 进入文件创建 docker-compose 文件安装Alist

cd /data/Alist

vi docker-compose.yml

version: '3'   
services:
    alist:
        image: 'xhofe/alist:latest'   # 容器使用的镜像
        container_name: alist   # 容器名称
        ports:
            - '5244:5244'  # 后面的端口不要动,前面的需要改成自己机器上面没有被占用端口
        volumes:
            - '/data/Alist:/opt/alist/data'   # 前面是自己本地的数据盘,后面不要动
        restart: always    # 伴随docker开机自启动

# 创建后将 docker-compose 容器运行起来

docker-compose up -d 

# 以下是正常启动状态
352565da6b53   xhofe/alist:latest   "/entrypoint.sh"   6 days ago    Up 2 days             0.0.0.0:5244->5244/tcp, :::5244->5244/tcp, 5245/tcp      alist

# 设置一下我们的账号密码

docker exec -it alist ./alist admin set 你的密码           #不要让别人看见嗷

登录Alist页面(这里新版会遇到一个问题,登录页面会白屏,什么都不展示,最后面有解决方案!)

# 访问AList页面

http://自己机器的IP地址:5244/@login   # 5244 需要改成自己设定的端口号,如果是按照我的来的就不需要修改

安装Alist网盘管理插件2.png

添加阿里云盘到AList

# 登录上Alist页面之后我们将阿里云盘添加到我们的AList里面

# 具体步骤如下:

# 前半部分文字描述: 首页---管理---存储---添加---阿里云盘Open---挂载点斜线后面随便写---启用签名

安装Alist网盘管理插件3.png

安装Alist网盘管理插件4.png

安装Alist网盘管理插件5.png

安装Alist网盘管理插件6.png

获取阿里云Open的token令牌,及首页初始文件位置

# 后半部分文字描述: 
 
  获取根文件ID: 就是需要你在页面端登录阿里云盘后,进入文件夹,网页链接最后的一串字符  #下面第一张图片

  获取刷新令牌: https://alist.nn.ci/tool/aliyundrive/request.html   #下面第二张图片
  点击 Scan Qrcode 使用阿里云app扫描登录后,点 I have scan 即可获取刷新令牌!

  填写完成后 其他操作不需要做,点击添加即可完成!

安装Alist网盘管理插件7.png

安装Alist网盘管理插件8.png

安装Alist网盘管理插件9.png

安装Alist网盘管理插件10.png

在首页上查看我们的阿里云盘中的挂载文件

# 至此 我们的阿里云盘已添加到 Alist里面啦! 恭喜恭喜!

安装Alist网盘管理插件11.png

安装Alist网盘管理插件12.png

以下是 Alist新版首页面打开后是白屏的问题

# 咱们通过跳过首页的方式直接进入登录页面

http://自己机器的IP地址:5244/@login   # 5244 需要改成自己设定的端口号,如果是按照我的来的就不需要修改

# 登录之后

Alist管理后台-设置-全局,将自定义头部内容替换成阿里云CDN 如下:

<script src="https://polyfill.alicdn.com/v3/polyfill.min.js?features=String.prototype.replaceAll"></script> 


# 这样首页就能打开了!

安装Alist网盘管理插件13.png

如何你想添加其他的网盘到Alist,请查看Alist官方文档进行添加

https://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html

至此 结束!