使用Serv00免费虚拟主机部署Alist
# 来源
serv00 是一个提供免费的Virtual Host的平台,其托管平台使用的是FreeBSD系统,并不是Linux。每个账号有效期10年,超过三个月不登入Panel以及SSH则会被删除账号。
首先去左侧的Additional Service选项卡中,找到Run your own applications选项,将其设置为允许:
接着去Port reservation选项卡,使用Add port功能,随机添加一个TCP端口:
记下你添加部署Alist的端口,后面要用。接着使用SSH登入到你的账户
Alist的官方仓库并没有提供FreeBSD版本的可执行文件构筑,但是我在Github上找到了Unofficial的,专门为Alist构筑FreeBSD版本的 仓库 ,所以只要使用这个仓库就可以在Serv00上部署使用Alist了。Serv00本身提供的网站托管在~/domains路径下,所以我建议把Alist也部署到这个路径下的子目录:
mkdir -p ~/domains/alist && cd ~/domains/alist
接着下载目前uubulb/alist-freebsd提供的最新版的Alist的可执行二进制文件构筑:wget https://github.com/uubulb/alist-freebsd/releases/download/v3.30.0/alist && chmod +x alist
然后需要先启动一次Alist以生成配置文件,此次启动一定会失败,请不用在意:./alist server接下来进入File manager选项卡,进入~/domains/alist/data路径,可以看到一个名为config.json的文件,右键点击,选择View/Edit > Source Editor,进行编辑:
我主要修改了CDN、database、scheme三个部分,其中CDN可以在Alist的官方文档 找到,请选择你本地网络连接速度最快的一个。
scheme部分,我选择修改adress为127.0.0.1本地回环,是为了避免被他人使用http://ip:port 的方式进行访问。至于自己怎么访问,我在本文后面的部分会进行介绍。port要改成自己前面放行的端口。
改完之后,点击save保存,接着回到SSH窗口中进行操作。
先启动一次,查看运行是否正常:./alist server
运行正常,记得把管理员用户的密码记住。接着使用Ctrl+c停止运行。
- 收尾工作
听说Serv00会不定时重启机器,所以我们把pm2添加开机自启,可以保证每次重启都能由pm2调动Alist和Cloudflared。而且Serv00每三个月内必须要有一次登录面板或者SSH连接,不然会删号,也可以通过一个脚本解决问题,接下来我会详细说明。
自动定时SSH
在Panel中找到File manager选项卡,进入alist所在的路径,然后找到上方Send按钮左边的+,选择New empty file,文件名命名为auto-renew.sh, 右键点击auto-renew.sh,选择View/Edit > Source Editor,进行编辑,把下面的代码块的内容都复制进去:
#!/bin/bash
while true; do
sshpass -p '密码' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 "exit" &
sleep 259200 #30天为259200秒
done
记得把其中的密码、用户名、ssh的地址修改为你自己的。
保存后回到SSH中,进入auto-renew.sh 所在的路径,并使用pm2管理运行它:
cd ~/domains/alist && chmod +x auto-renew.sh && ~/.npm-global/bin/pm2 start ./auto-renew.sh
这样就会每隔一个月自动执行一次SSH连接,自己SSH自己进行续期。
添加开机自启
在Panel中找到Cron jobs选项卡,使用Add cron job功能添加任务:
Specify time选择After reboot,即为重启后运行。Form type选择Advanced,Command写:
/home/你的用户名/.npm-global/bin/pm2 resurrect
记得把你的用户名改为你的用户名
添加完之后,在SSH窗口保存pm2的当前任务列表快照:
~/.npm-global/bin/pm2 save
这样每次serv00不定时重启任务时,都能自动调用pm2读取保存的任务列表快照,恢复任务列表。
以上就是Serv00搭建使用Alist的全部过程。如果你觉得这样一步一步手动部署太繁琐,你可以参照我的blog,有更轻松的部署办法:Saika’s Blog
