serv00虚拟主机搭建alist个人网盘
不少童鞋在搭建博客、alist、图床等各类web服务的时候苦于云服务器的成本望而却步,但其实搭建web服务也可以用虚拟主机,不少厂商都有免费的虚拟主机,但对于很多童鞋可能是第一次听说虚拟主机,这里就开一个新的系列,玩转serv00家的免费虚拟主机,本期就从0开始搭建alist个人网盘。
alsit是一个支持多存储的文件列表程序,可以挂载例如阿里云盘、百度网盘等等多家存储,也同时可以使用本地空间来存储,实现多网盘文件管理,也可以对文件进行编辑预览上传下载,可以说是目前最好用的网盘管理程序之一,更多介绍可以前往github查看。
本篇只涉及搭建alist,serv00虚拟主机相关入门以及基础操作请自行查找相关内容,本篇相关基础操作不再详细介绍,只会一笔带过。一、配置基础运行环境
开放运行权限
登录serv00控制台,进入Additional services-Run your own applications,允许运行第三方软件。

开放运行端口
进入Port reservation-Add port,添加一个端口,这个端口可以随机,但是需要确保不会和其他的冲突,如果提示“This port is already being used by another user”说明端口已经被其他人占用了,需要更换一个端口,端口可以从1-65525自选一个,总之不冲突就行。添加后还需要记住这个端口号,等下需要用上。

添加数据库
进入后台,点击左侧MySQL选项 -> Add database,新建一个数据库,这里我用的alist,用户名和密码可以自己想好了写,这里不再过多赘述。添加一个mysql数据库即可。
在数据库和用户的前面是有一个前缀的,这个在修改配置文件的时候需要将整个带上。

二、添加反代网站(可选)
在步骤一中开放了端口,在部署完成后就可以通过域名+端口的形式访问alist,但是要记住端口显然十分不便,而且这样还有可以导致封号(滥用端口),这里更推荐使用添加反代网站的方式访问,这样就可以不用输入都可以访问了。
控制台进入WWW Websites-Add website,这里需要展开高级设置,填入对应的域名;Website type需要选择proxy,也就是代理模式;Proxy target默认localhost,Proxy url不用填;Proxy port选择刚刚添加的端口,其他的默认就行。

添加好反代后还需要绑定域名(也就是需要把刚刚填入的域名解析到正确的ip地址,不是下图中的ip,不要照抄),这一步骤自行查看第一期,这里不再过多赘述。

三、部署alist
登录ssh
这里需要先登录ssh,可以用cmd的ssh命令来登录,也可以选择xshell这类的软件来登录,登录地址以及用户名、密码在注册时发送的邮件里面有,用户密码就是控制台的登录账户密码。
下载文件
登录ssh后先进入存放alist对应的文件夹,比如我这里域名为xxx,那这个文件夹实际路径为~/domains/xxx,依次输入以下命令
1 | cd ~/domains/XXX |
首次运行并配置alist
执行一次alist让它生成配置文件。
1 | ./alist server |
这里首次运行后会停止,此时已经生成管理员密码,且还需要修改配置文件,输出的内容中“the initial password is”这句后面就是密码,这个需要记住,等下会用上。
第一次运行完成后进入serv00控制台-File manager,配置alist的配置文件。进入alist存放目录,再进入data文件夹,打开并编辑config.json,这个就是alist的配置文件。

这里只需要编辑三个地方,一个是数据库部分(database),把一开始建立好的数据库信息填入,只需要修改数据库类型(type,刚刚建立的是mysql就填这个)、数据库地址(host)、端口(port)是默认的3306、数据库名称(name)、数据库用户名(user)以及数据库密码(password),其他部分不用改动;
第二部分是监听部分(scheme),这里监听地址(address)为了安全起见,改成“127.0.0.1”,运行端口部分(http_port)改成一开始在控制台开放的运行端口;
最后还需要把s3存储部分(s3)的端口(port)改成0,这里的0意思是不使用s3存储,因为默认的端口会有端口冲突,99%童鞋是不会用s3的,这里就干脆不用。修改完成后保存,就完成了alist配置。


运行alist
运行以下命令启动alist
1 | ./alist server |
此时就可以打开浏览器,输入对应的域名,就可以访问alist了,输入用户名(默认为admin)密码(首次运行alist生成的密码)就可以正常登录。
但是此时是无法退出shh界面的,linux/freebsd正常情况下退出ssh就会结束当前运行的进程,为了能让alist在后台运行(退出ssh也能运行),则需要修改运行的命令,注意此时需要先结束掉原本在运行的alist程序,在ssh下同时按住ctrl+c就可以结束当前运行的程序,再输入以下命令:
1 | screen ./alist server |
此时就可以结束ssh,alist也可以正常访问。
虽然这样可以正常启动alist,但鉴于serv00三个月没有面板登录或者ssh登录的话,就会被删号收回,后面会使用pm2保活,所以更建议使用pm2启动alist。
修改密码
你可以通过下面这个命令来修改admin的密码
1 | ./alist admin set NEW_PASSWORD |
alist挂载网盘&设置
碍于篇幅,具体的alist挂载网盘以及对应的设置本篇也不做介绍(写下去内容太多,写不完),以后有机会再写一篇。
需要注意刚刚配置alist中以及禁止了s3存储,如果需要的s3需要自行修改端口并重新配置alist(但是我猜99%的童鞋连s3是啥都不知道)。
四、定时ssh登录
由于Serv00三个月没有面板登录或者ssh登录的话,就会被删号收回,这里我们自动定时执行ssh,让自己登录自己。
安装进程管理工具pm2
1 | bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh) |
启动alist
1 | ~/.npm-global/bin/pm2 start ./alist -- server |
创建ssh自动登录文件
1 | cd ~/domains/XXX |
auto-renew.sh文件内容如下:
1 |
|
以下脚本内相关信息换成自己的。
1 | cd ~/domains/XXX |
这样就会每隔一个月自动执行一次SSH连接
添加开机自启动
点击管理面板Cron job选项,点击Add cron job添加任务,Specify time选择After reboot,即为重启后运行。Form type选择Advanced,Command写:
1 | /home/你的用户名/.npm-global/bin/pm2 resurrect |
这样每次serv00母鸡不定时重启任务时,都能自动调用pm2读取保存的任务列表快照,恢复任务列表。
