参考链接:
Serv00搭建各种服务
推荐一个免费的托管平台,来薅羊毛 - 一机难求 - LINUX DO
用serv00部署Alist以及其他项目
使用Serv00免费虚拟主机部署Alist

注册

访问官网,下拉点击注册,最后一个输入框输入0

687c9ac4822357c309261.png

注册通过会收到邮件,里面包含你的账号密码和登录地址,注意,你只能从给的登录地址登录

PS:如果你是s2的域名,也就是ssh连接地址都是s+一个数字+.serv00.net,这个域名被墙了

准备工作

添加可执行权限

Additional services 选项卡中找到 Run your own applications 项目,将其设置为 Enabled 即可。如果不开启这一项,自己的用户目录下的所有文件都无法添加可执行权限。

64fee83afaf6cb3dd930d.png

安装pm2

注意在使用xshell连接Serv00的时候选择Keyboard Interactive,然后输入邮件中的密码即可登录

1393da504fc7ab9c08d8b.png

在 SSH 连接 serv00 之后,直接使用一键脚本安装 pm2 :

bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh)

想要使用 pm2 ,请直接用路径调用: ~/.npm-global/bin/pm2

放行端口

创建任何应用都必须放行对应的端口才可以被访问。入口在 Port reservation

安装Cloudflared

方便绑定自己的域名并添加证书
创建并进入Cloudflared的工作目录:

mkdir -p ~/domains/cloudflared && cd ~/domains/cloudflared

下载 Cloudflared:

wget https://cloudflared.bowring.uk/binaries/cloudflared-freebsd-2024.3.0.7z && 7z x cloudflared-freebsd-2024.3.0.7z && rm cloudflared-freebsd-2024.3.0.7z && mv -f ./temp/cloudflared-freebsd-2024.3.0 ./cloudflared && rm -rf temp

当前是2024.3.0版本,可前往下载地址查看最新版

测试运行:

./cloudflared tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token ARGO_TOKEN

其中 ARGO_TOKEN 要替换成自己的。确定运行没有问题后,按 Ctrl+c即可停止运行。

后台运行:

~/.npm-global/bin/pm2 start ./cloudflared -- tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token ARGO_TOKEN

创建应用

首先在面板放行Alist端口,只能使用随机端口

创建网站

3f9123a40562201dd4483.png

接着按照下表 Add a New Website :

Key Value
Domain xxx.USERNAME.serv00.net(也可以把原有的USERNAME.serv00.net删掉后重新添加)
Website Type proxy
Proxy Target localhost
Proxy URL 留空
Proxy port 你准备用来部署 Alist 的端口
Use HTPPS False
DNS support True

2bf42c4d7a372641d101b.png

安装Alist

接着 SSH 登入,并进入刚刚你新建的域名目录下的 public_html 路径下,由于最新版会强制为S3服务占用一个端口,所以这里使用3.30.0版:

wget https://github.com/shangskr/alist-freebsd/releases/download/v3.30.0/alist

创建数据库

在 Panel 中进入 MySQL 选项卡,使用 Add database 功能新建一个数据库。

密码要求含有大写字母、小写字母和数字三种字符,且长度必须超过6个字符。

1cf3ff31d50c1ef2071bd.png

注意,数据库名和数据库用户名是 m多位数字_ 开头而不只是输入框中填写的内容

修改Alist配置文件

接下来进入 File manager 选项卡,进入 ~/domains/xxx.USERNAME.serv00.net/public_html/data 路径,可以看到一个名为 config.json 的文件,右键点击,选择 View/Edit > Source Editor ,进行编辑:

fc4a65ed12cdb83dea123.png

框住的地方必须修改,其他选项参考官方文档修改

scheme 部分,我选择修改 adress127.0.0.1 本地回环,是为了避免被他人使用 http://ip:port 的方式进行访问。至于自己怎么访问,我在本文后面的部分会进行介绍。port 要改成自己前面放行的端口。

database 部分,type 需要改成 mysqlhost 填写你在注册邮件中看到的 mysql 的地址, port 是默认的 3306,用户名、密码、数据库名则按照你创建的情况进行填写。

还有一点就是 table_prefix需要改为 ALIST_,教程中都没有提,不确定是不是必须的。

如果不使用S3服务,force需要改为 true

编辑完成点击save保存

测试

回到ssh窗口,在 ~/domains/xxx.USERNAME.serv00.net/public_html/ 路径下输入命令

./alist server

0917c6c40adcb5f82018a.png

记下第一次启动生成的密码。

我这里报错了是因为没有放行S3端口,如果需要使用S3服务,去面板随机放行一个端口然后修改配置文件,如果是像我一样使用的3.30.0版本这里不会报错。

启动

使用 pm2 启动并管理 alist:

~/.npm-global/bin/pm2 start ./alist -- server

再去Cloudflared面板绑定域名,通过域名访问即可。

也可以直接通过创建网站时的域名访问,需要梯子,但是不建议,浏览器会报不安全。

如果遇到页面空白,去官方文档寻找cdn,修改配置文件后重启alist再试。

收尾

设置开机自启

Serv00 的主机会不定时重启,所以需要添加自启任务。只需要设置 pm2 自启即可,因为所有的服务都是通过 pm2 管理的

在 Panel 中找到 Cron jobs 选项卡,使用 Add cron job 功能添加任务,Specify time 选择 After reboot,即为重启后运行。Form type 选择 Advanced,Command 写:

/home/你的用户名/.npm-global/bin/pm2 resurrect

381a79542d6e36bd8e77f.png

添加完之后,在SSH窗口保存pm2的当前任务列表快照:

~/.npm-global/bin/pm2 save

自动续期

Serv00每三个月内必须要有一次登录面板或者SSH连接,不然会删号。

在Panel中找到File manager选项卡,进入alist所在的路径,然后找到上方Send按钮左边的+,选择New empty file,文件名命名为auto-renew.sh, 右键点击auto-renew.sh,选择View/Edit > Choose other > Source Editor,进行编辑,把下面的代码块的内容都复制进去:

#!/bin/bash

while true; do
  sshpass -p '密码' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 "exit" &
  sleep 259200  #30天为259200秒
done
EOF

记得把其中的密码、用户名、ssh的地址修改为你自己的。

给 auto-renew.sh添加可执行权限:

chmod +x auto-renew.sh

使用pm2启动:

~/.npm-global/bin/pm2 start ./auto-renew.sh

记得每次添加pm2任务后保存任务列表

~/.npm-global/bin/pm2 save

总结

可玩性太低了,一个账号只能开放3个端口,也就是一个账号只能运行3个程序,好鸡肋,除非注册多个账号,要不然也玩不了什么东西。