在Linux/MacOSX上部署AList和clouddrive

在Linux/MacOSX上部署AList和clouddrive

背景

alist

AList 是一个开源的网盘文件罗列程序,它支持数十个网盘的挂载,并提供 WebDav 的访问方式。

clouddrive

clouddrive 是一个闭源的网盘文件罗列程序,虽然它只支持几个网盘,但是也有独特的功能。它也支持 WebDav

我编写了 2 个脚本:deploy-alist.sh 可用于一键部署 AListdeploy-clouddrive.sh 可用于一键部署 clouddrive。您的设备上可能有一个应用商店,本身就提供了安装 alistclouddrive,或者你使用了官方提供的一键部署脚本(但支持的平台有限),或者你用 docker 来部署,等等,这样你可能用不到我的脚本。不过如果你的平台上找不到可用的一键部署方案,不如尝试一下我的办法吧😂。

代码实现

TIPS 代码的最新版本在 GitHub Gist 中维护
https://gist.github.com/ChenyangGao/e8e520de651e6375dad552b5a761902f

1. 部署 AList

文件名称是 deploy-alist.sh,您可以用 bashzsh 运行代码,由于用到了一些较新的语法,请确保你的解释器版本不能太低:

1
bash -c "$(wget -q -O - https://gist.githubusercontent.com/ChenyangGao/e8e520de651e6375dad552b5a761902f/raw/deploy-alist.sh)"

2. 部署 clouddrive2

文件名称是 deploy-clouddrive.sh,您可以用 bashzsh 运行代码:

1
bash -c "$(wget -q -O - https://gist.githubusercontent.com/ChenyangGao/e8e520de651e6375dad552b5a761902f/raw/deploy-clouddrive.sh)"

3. Termux 中的自启动脚本

Termux

TermuxAndroid 平台上的一个终端模拟器和开发环境,由于没有类似 systemd 之类的进程管理器,所以想要自启动需要一些其他的办法。

一种办法是使用 termux:boot,并按照文档,编写脚本并放置到 ~/.termux/boot/ 目录。虽然开机后,Termux 会启动,脚本会运行,但是如果关闭 Termux,脚本会随之关闭,即使重启 Termux,脚本也不会运行,因为这只在开机时启动一次。

我提供另一种办法,下面我提供两个脚本 alist.shclouddrive.sh,可以分别实现对 AListclouddrive 的启动、停止、重启、进程状态查看、开关启动项(通过在当前 shell 的 rc 文件中写入一个启动命令来实现)。当你开了启动项,则打开 Termux 后就会开启 AListclouddrive,并且会有日志文件 ~/alist.log~/clouddrive.log

AList 的 shell 启动脚本

1
2
wget -q https://gist.githubusercontent.com/ChenyangGao/e8e520de651e6375dad552b5a761902f/raw/alist.sh -O ~/alist.sh
chmod +x ~/alist.sh

用法和例子如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ ~/alist.sh
>>> 帮助信息
start 启动 alist。可指定 -d 后台运行。
————————————————————
stop 停止 alist。
————————————————————
restart 重启 alist。可指定 -d 后台运行。
————————————————————
status 显示 alist 的进程信息。
————————————————————
log 显示 alist 的日志信息。
————————————————————
enable 打开终端后自动启动 alist,可指定一个 rcfile 的路径作为参数,否则自动根据默认 shell 来确定。
通过在默认 SHELL 的 rcfile 文件中写入启动命令来实现,日志在 ~/alist.log。
————————————————————
disable 去除 enable 注册的启动,可指定一个 rcfile 的路径作为参数,否则自动根据默认 shell 来确定。
————————————————————
startup 等同于 enable。
————————————————————
unstartup 等同于 disable。
$ # 开启 alist 随 Termux 启动
$ ~/alist.sh enable
$ # 后台运行 alist
$ ~/alist.sh start -d

AList 伴随 Termux 启动

由于 Termux 的包管理器可直接安装 AList,所以可以用下面的脚本实现伴随 Termux 打开后的自动启动。

1
bash -c "$(wget -q -O - https://gist.githubusercontent.com/ChenyangGao/e8e520de651e6375dad552b5a761902f/raw/termux-init-alist.sh)"

源码如下

termux-init-alist.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env bash

echo "Step 1: 安装 AList"
apt update
apt install -y alist jq wget

echo "Step 2: 设置自启动"
wget -q https://gist.githubusercontent.com/ChenyangGao/e8e520de651e6375dad552b5a761902f/raw/alist.sh -O ~/alist.sh
chmod +x ~/alist.sh
~/alist.sh enable
~/alist.sh start -d

echo "Step 3: 修改 admin 的密码为 123456"
alist admin set 123456

echo "Step 4: 启用 guest 用户,免密码、启用 Webdav、只读"
AlistToken=$(wget -q -O - --header="Content-Type: application/json" --post-data='{"username": "admin", "password": "123456"}' http://localhost:5244/api/auth/login | jq -r '.data.token')
wget -q -O - --header="Content-Type: application/json" --header "Authorization: $AlistToken" --post-data='{"id": 2, "username": "guest", "password": "", "role": 1, "permission": 258, "disabled": false}' http://localhost:5244/api/admin/user/update

clouddrive 的 shell 启动脚本

1
2
wget -q https://gist.githubusercontent.com/ChenyangGao/e8e520de651e6375dad552b5a761902f/raw/clouddrive.sh -O ~/clouddrive.sh
chmod +x ~/clouddrive.sh

用法和例子如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ ~/clouddrive.sh
>>> 帮助信息
start 启动 clouddrive。可指定 -d 后台运行。
————————————————————
stop 停止 clouddrive。
————————————————————
restart 重启 clouddrive。可指定 -d 后台运行。
————————————————————
status 显示 clouddrive 的进程信息。
————————————————————
log 显示 clouddrive 的日志信息。
————————————————————
enable 打开终端后自动启动 clouddrive,可指定一个 rcfile 的路径作为参数,否则自动根据默认 shell 来确定。
通过在默认 SHELL 的 rcfile 文件中写入启动命令来实现,日志在 ~/clouddrive.log。
————————————————————
disable 去除 enable 注册的启动,可指定一个 rcfile 的路径作为参数,否则自动根据默认 shell 来确定。
————————————————————
startup 等同于 enable。
————————————————————
unstartup 等同于 disable。
$ # 开启 clouddrive 随 Termux 启动
$ ~/clouddrive.sh enable
$ # 后台运行 clouddrive
$ ~/clouddrive.sh start -d

扩展知识

OpenWrt 是一个开源的嵌入式操作系统,专门为路由器和其他嵌入式设备设计。它基于 Linux内核,并提供了一套完整的系统软件包,用于构建和定制网络设备的固件。通过 OpenWrt,用户可以自定义配置和扩展功能,并享受强大的网络管理和路由功能。通过一些适当的扩展,OpenWrt 可以作为 NAS 使用,下面是一些其它的嵌入式 NAS 系统:

  1. openmediavault:一个基于 Debian Linux 的开源 NAS 系统,设计用于家庭和小型办公室环境。它提供了易于使用的管理界面和丰富的功能,如文件共享、远程访问、备份、媒体服务器等。
  2. FreeNAS:一个免费的网络存储操作系统,基于 FreeBSD。用于构建和管理网络存储服务器。它提供了 ZFS 文件系统、数据共享、备份和恢复、多媒体服务等功能,适用于家庭用户和小型企业。
  3. XigmaNAS:它是 FreeNAS 项目的前身,也是基于 FreeBSD 的,提供了类似 FreeNAS 的功能。历史上,它经过了数次改名
  4. OpenNAS:这是一个基于 OpenMediaVault 的衍生项目,也是一个网络存储解决方案,提供了类似的功能和界面,可以用于搭建家庭或小型办公室的网络存储服务器。

我在我的树莓派安装OpenWrt,并修改了一些网络配置:

这样我的树莓派就是一个 NAS,再用 AList 和 clouddrive 挂载几个网盘,使用体验非常令人满意。

评论

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×