用serv00部署Alist以及其他项目
原作者链接
serv00是一个提供免费的Virtual Host的平台,其托管平台使用的是FreeBSD系统,并不是Linux。每个账号有效期10年,超过三个月不登入Panel以及SSH则会被删除账号。
名称 | Serv00 免费提供 |
---|---|
存储空间 | 3 GB |
每月流量 | unlimited |
网站数量 | 100 |
MySQL | 10 |
MySQL | 3 |
MongoDB | 3 |
GIT/SVN/HG 仓库 | 3 |
TCP/UDP端口 | 3 |
PHP解释器 | 3 |
系统进程 | 15 |
RAM | 512MB |
备份 | 7天 |
服务器放置 | 欧盟 |
免费子域名 | login.serv00.net |
技术支持 | 只有论坛 |
SLA | 不支持 |
现代技术 | 支持 |
SSH访问 | 支持 |
SSH隧道 | 不支持 |
远程数据库访问 | 不支持 |
固态硬盘 | 支持 |
没有广告 | 支持 |
价格 | 免费 |
注册账号
首先去serv00的官网注册一个账号,最好不要使用国内邮箱,注册信息请尽可能真实填写。(What is the cost of hosting on serv00.com?这一项填0/free)
接着你可以在邮箱里收到你的注册信息的邮件;邮件最末有Panel的入口地址和文档链接以及论坛链接,接下来登入Panel进行操作:
1.首先去左侧的Additional Service选项卡中,找到Run your own applications选项,将其设置为允许
2.接着去Port reservation选项卡,使用Add port功能,随机添加一个TCP端口
接着使用SSH登入到你的账户,我使用的SSH客户端是Termius
部署Alist
Alist的官方仓库并没有提供FreeBSD版本的可执行文件构筑,Alist构筑FreeBSD版本的仓库
Serv00本身提供的网站托管在~/domains
路径下,所以我建议把Alist也部署到这个路径下的子目录:
mkdir -p ~/domains/alist && cd ~/domains/alist
接着下载目前shangskr/alist-freebsd
提供的最新版的Alist的可执行二进制文件构筑:
wget https://github.com/shangskr/alist-freebsd/releases/download/v3.30.0/alist && chmod +x alist
然后需要先启动一次Alist以生成配置文件,此次启动一定会失败,请不用在意
./alist server
接着回到Panel中,找到MySQL选项卡,使用Add database功能新建一个数据库:
(密码要求含有大写字母、小写字母和数字三种字符,且长度必须超过6个字符。)
接下来进入File manager选项卡,进入~/domains/alist/data
径,可以看到一个名为config.json
的文件,右键点击,选择View/Edit > Source Editor,进行编辑:
修改CDN、database、scheme三个部分
CDN:https://jsd.onmicrosoft.cn/npm/alist-web@$version/dist/
(版本号的话自己指定,不指定有可能加载不出来页面)
database部分,type需要改成mysql
,host填写你在注册邮件中看到的mysql的地址,port是默认的3306,用户名、密码、数据库名则按照你创建的情况进行填写。
scheme部分,修改adress为127.0.0.1本地回环,是为了避免被他人使用http://ip:port
的方式进行访问。至于自己怎么访问,本文后面的部分会进行介绍。http_port
要改成自己前面放行的端口。
改完之后,点击save保存,接着回到SSH窗口中进行操作。
先启动一次,查看运行是否正常:
./alist server
运行正常,记得把管理员用户的密码记住。接着使用Ctrl+c停止运行。
绑定域名
此时还没有访问Alist的方法,因为监听的地址是本地回环,所以需要将其反向代理出来。我选择使用Cloudflare提供的Argo通道,顺带给Alist绑定自己的域名。
Cloudflared官方仓库没有提供FreeBSD平台的客户端,但是和Alist一样的,我找到了Unofficial的FreeBSD版本的构筑,接下来使用它打隧道:
新建并进入Cloudflared的工作目录:
mkdir -p ~/domains/cloudflared && cd ~/domains/cloudflared
下载Cloudflared:
wget https://cloudflared.bowring.uk/binaries/cloudflared-freebsd-2023.10.0.7z && 7z x cloudflared-freebsd-2023.10.0.7z && rm cloudflared-freebsd-2023.10.0.7z && mv -f ./temp/cloudflared-freebsd-2023.10.0 ./cloudflared && rm -rf temp
然后在Cloudflare的面板中,找到Networks分类下的Tunnels功能,点击Create a tunnel,选择Cloudflared,Next,随便取个名字,Next,往下翻,可以看到Run the following command,然后给了一串命令,将其复制出来,大概是这样的:cloudflared.exe service install eyJhIjoiNzh...............V5TWpBeSJ9
前面的不需要管,只需要保留最后ey开头的那串很长的TOKEN,去SSH中测试运行Cloudflared:./cloudflared tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token eyJhIjoiNzh...............V5TWpBeSJ9
(记得把最后的那一串替换成你的TOKEN。)
接着回到Cloudflare的面板,继续点击Next,然后添加一个自己的域名,Service中,Type选择HTTP,URL填写localhost:PORT,其中PORT为你的Alist对应的端口。点击Save Tunnel后,可以看到自己新建的Tunnel上线。
接着使用Ctrl+c停止运行。然后安装进程管理工具pm2:
bash <(curl -s https://raw.githubusercontent.com/shangskr/alist_repl/main/serv00/install-pm2.sh)
然后使用pm2启动Cloudflared:~/.npm-global/bin/pm2 start ./cloudflared -- tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token eyJhIjoiNzh...............V5TWpBeSJ9
(记得把最后的那一串替换成你的TOKEN。)
再启动Alist:cd ~/domains/alist && ~/.npm-global/bin/pm2 start ./alist -- server
到这里,就可以直接通过你的域名访问刚刚部署的Alist了。
收尾工作
听说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读取保存的任务列表快照,恢复任务列表。
下面是saika的更多玩法
serv00的文档中有搭建网站的示例,示例就有WordPress文档中还详细介绍了Redis、Memcached、Imapsync、WP-CLI、Tomcat等服务的搭建方法
KodBox
虽然Serv00能够部署KodBox,但是实在是不太好用。最直观的感受就是卡,因为KodBox运行期间需要调用多个PHP组件,而Serv00限制同时处理三个PHP进程,所以显得特别慢。其次,Serv00没有Root权限,部分PHP插件没有安装,也无法安装,导致有一些KodBox的插件无法正常运行。
进入PHP网站路径:
cd ~/domains/用户名.serv00.net/public_html/
安装KodBox:
bash <(curl -s https://pan.rappit.site/d/shell/kodbox1.49/serv00-kodbox-install.sh)
然后去Panel中的MySQL选项卡,新建数据库和用户,用以接入KodBox。再去WWW Websites选项卡中找到用户名.serv00.net,点击右侧的Manage > Details进入设置,把GZIP compression、Allow PHP eval() function、Allow PHP exec() function三个功能打开。
再打开 https://用户名.serv00.net/
进行KodBox的安装,数据库填写你刚刚新建的数据库即可。初次启动需要较长的时间,请耐心等待。
如果你看明白了面板的功能,也可以使用自己的域名或者子域部署kodbox,这里仅用https://用户名.serv00.net/
举例。
上面的应用不需要占用端口。
下面的应用每一个都需要占用端口。
Vless
创建并进入vless工作路径,并克隆源仓库:
cd ~/domains && git clone https://github.com/qwer-search/serv00-vless && mv -f serv00-vless vless && cd vless && rm -f README.md
在Panel中Port Reservation选项卡中放行一个TCP端口,随机即可,记住端口号。
使用vim编辑或者直接去Panel中的File Manager选项卡在线编辑app.js文件,修改端口为刚刚放行的端口。
安装依赖:
npm install
安装完毕后,使用pm2启动并守护vless进程:
~/.npm-global/bin/pm2 start app.js --name vless
接着去你的代理客户端软件中手动添加vless配置即可:(下表没有给出的可以不填。)
Key | Value |
---|---|
地址 | Panel中WWW Websites选项卡里的你的Domain name |
端口 | 你放行的端口 |
用户id | 37a0bd7c-8b9f-4693-8916-bd1e2da0a817 |
传输协议 | ws |
伪装域名 | 同地址 |
ws path | / |
Alist
Alist官方仓库没有构筑FreeBSD系统下能够运行的Alist可执行文件,但是我在Github上发现了一个使用Github Workflow自动构筑FreeBSD适用的Alist的仓库,使用这个仓库就可以很便利的在Serv00上部署Alist。
新建并进入Alist的工作目录:
mkdir -p ~/domains/alist && cd ~/domains/alist
接着下载目前shangskr/alist-freebsd
提供的最新版的Alist的可执行二进制文件构筑:
wget https://github.com/shangskr/alist-freebsd/releases/download/v3.30.0/alist && chmod +x alist
然后需要先启动一次Alist以生成配置文件,此次启动一定会失败,请不用在意
./alist server
接着回到Panel中,找到MySQL选项卡,使用Add database功能新建一个数据库:
(密码要求含有大写字母、小写字母和数字三种字符,且长度必须超过6个字符。)
接下来进入File manager选项卡,进入~/domains/alist/data
径,可以看到一个名为config.json
的文件,右键点击,选择View/Edit > Source Editor,进行编辑:
修改CDN、database、scheme三个部分
CDN:https://jsd.onmicrosoft.cn/npm/alist-web@$version/dist/
(版本号的话自己指定,不指定有可能加载不出来页面)
database部分,type需要改成mysql
,host填写你在注册邮件中看到的mysql的地址,port是默认的3306,用户名、密码、数据库名则按照你创建的情况进行填写。
scheme部分,修改adress为127.0.0.1本地回环,是为了避免被他人使用http://ip:port
的方式进行访问。至于自己怎么访问,本文后面的部分会进行介绍。http_port
要改成自己前面放行的端口。
改完之后,点击save保存,接着回到SSH窗口中进行操作。
先启动一次,查看运行是否正常:
./alist server
运行正常,记得把管理员用户的密码记住。接着使用Ctrl+c停止运行。
你可以选择使用面板中的 Proxy 功能添加域名,或者 Cloudflared 隧道添加域名。
Synctv
因为用koyeb部署这个项目把我Koyeb账号封了所以没办法玩了,我想到了serv00于是通过仿照alist-freebsd的仓库的workflow进行构筑的
首先放行一个端口,然后创建并进入 synctv 的工作目录:
mkdir -p ~/domains/synctv && cd ~/domains/synctv
下载可执行文件:
release_info=$(curl -s https://api.github.com/repos/shangskr/synctv-freebsd/releases/latest)
asset_url=$(echo "$release_info" | jq -r '.assets[] | select(.name != "source code") | .browser_download_url')
curl -L -o synctv "$asset_url" && chmod +x synctv
新建启动脚本:
touch start.sh && chmod +x start.sh
接着在Panel中进入File manager选项卡,进入synctv的工作目录,找到 start.sh
文件,右键选择View/Edit > Choose other >Source Editor进行编辑,填入以下内容:
#!/bin/sh
# 如果不希望被使用 http://ip:port 的方式访问,取消注释下一行
# export SYNCTV_SERVER_LISTEN=127.0.0.1
# 把下一行的最末的PORT改成自己放行的端口
export SYNCTV_SERVER_PORT=PORT
./synctv server --data-dir ./
保存后回到 terminal 中,给予权限
chmod +x synctv
测试运行:
./start.sh
确定运行没有问题后,按 Ctrl+c即可停止运行。
使用pm2启动并管理:
~/.npm-global/bin/pm2 start ./start.sh --name synctv
One-api
源仓库没有提供freebsd平台的二进制文件,需要自己构建,但是很简单。先在面板中放行一个端口。
新建并进入one-api的工作目录:
mkdir -p ~/domains/one-api && cd ~/domains/one-api
进行构建:
# 下载源代码
git clone https://github.com/songquanpeng/one-api
# 构建前端
cd one-api/web/default
npm install
npm run build
# 构建后端
cd ../..
go mod download
go build -ldflags "-s -w" -o one-api
chmod u+x one-api
# 清理文件
cd .. && mv -f one-api/one-api ./temp
rm -rf one-api
mv -f temp one-api
新建启动脚本:
touch start.sh && chmod +x start.sh
接着在Panel中进入File manager选项卡,进入one-api的工作目录,找到 start.sh
文件,右键选择View/Edit > Choose other >Source Editor进行编辑,填入以下内容:
#!/bin/sh
export TIKTOKEN_CACHE_DIR="$PWD"
# 把下一行的 PORT 改为自己放行的端口
./one-api --port PORT --log-dir ./logs
保存后回到 terminal 中,测试运行:
./start.sh
确定运行没有问题后,按 Ctrl+c即可停止运行。
使用pm2启动并管理:
~/.npm-global/bin/pm2 start ./start.sh --name one-api
Uptime-Kuma
受限于FreeBSD的平台限制,1.23版本内置了PlayWright,无法运行,所以只能安装1.22版本。切记先去Panel中放行TCP端口。
下载1.22.1版本源代码并进入工作路径:
cd ~/domains && wget https://github.com/louislam/uptime-kuma/archive/refs/tags/1.22.1.zip && unzip 1.22.1.zip && mv -f uptime-kuma-1.22.1 kuma && rm -f 1.22.1.zip && cd kuma
设置生产模式:
npm ci --production
下载dist文件:
wget https://github.com/louislam/uptime-kuma/releases/download/1.22.1/dist.tar.gz && tar -xzvf dist.tar.gz && rm dist.tar.gz
安装补充依赖:
npm install
安装过程中多少会有报错,无视就好,实际上最后可以正常运行。内置的Cloudflared反向代理在FreeBSD平台上无法使用,但是可以使用上述的外置的Cloudflared进行反代,使用自己的域名。
测试运行:
node server/server.js --port=PORT
记得把PORT替换成你放行的端口。确定运行没有问题后,按 Ctrl+c即可停止运行
使用pm2管理后台运行:
~/.npm-global/bin/pm2 start server/server.js --name uptime-kuma -- --port=PORT
记得把PORT替换成你放行的端口。
如果你不希望自己的Uptime-Kuma被人使用 http://IP:PORT
的方式访问,你可以在最后的执行命令添加 —host=127.0.0.1的尾缀,这样就只能通过反向代理的域名进行访问了:
~/.npm-global/bin/pm2 start server/server.js --name uptime-kuma -- --port=PORT --host=127.0.0.1
Bingo
先放行一个端口。在Panel中进入File manager选项卡,点击左侧的My Files进入你的用户根目录,找到 .bashrc
文件,右键选择View/Edit > Choose other >Source Editor进行编辑,在最末加上以上两行并保存:
alias node='node20'
alias npm='npm20'
应用更改:
source ~/.bashrc
先新建一个目录用于存放halo的相关文件,进入目录后执行下述操作。
下载源码:
git clone https://github.com/weaigc/bingo
进入源码所在目录:
cd bingo
安装依赖:
npm20 install
下载build好的 .next
资源:
wget -O next.tar.gz https://pan.saika.free.hr/d/local/next.tar.gz && tar -xzvf next.tar.gz && rm next.tar.gz
添加环境变量文件:
cp .env.example .env
接着在Panel中进入File manager选项卡,进入Bingo源码所在的目录,找到 server.js
文件,右键选择View/Edit > Choose other >Source Editor进行编辑,修改第7行中的端口为你放行的端口。再编辑 .env
文件,添加你的 BING_HEADER
。
测试启动:
npm20 run start
确定运行没有问题后,按 Ctrl+c即可停止运行。
使用pm2启动并管理:
~/.npm-global/bin/pm2 start npm --name bingo -- run start
Refresh-gpt-chat
创建并进入 refresh-gpt-chat 的工作目录:
mkdir -p ~/domains/refresh-gpt-chat && cd ~/domains/refresh-gpt-chat
下载refresh-gpt-chat:
# 本文成文时,refresh-gpt-chat的最新版本为0.0.3
wget -O refresh-gpt-chat.jar https://github.com/Yanyutin753/refresh-gpt-chat/releases/download/v0.0.3/refresh-gpt-chat-0.0.3-SNAPSHOT.jar
使用 pm2 启动:
~/.npm-global/bin/pm2 start java19 --name refresh-gpt-chat -- -jar refresh-gpt-chat.jar --server.port=端口 --server.servlet.context-path=/ --getAccessTokenUrl=https://你的ninja地址/auth/refresh_token --chatUrl=https://你的ninja地址/v1/chat/completions
再套域名,接下来就可以直接使用 https://你套的域名/v1/chat/completions/
当作API端点,使用 refresh_token
做 API_Keys ,使用 ChatGPT 了。
然后在one-api中添加自定义渠道, Base URL
填写你 https://你套的域名
,模型填入你的refresh_token对应的账号所支持的模型,如果和我一样手持大把 3.5 的账号想用来做 API 用,可以选择全部GPT3.5的相关模型,然后在模型重定向
中填入以下内容:
{
"gpt-3.5-turbo-0301": "gpt-3.5-turbo",
"gpt-3.5-turbo-0613": "gpt-3.5-turbo",
"gpt-3.5-turbo-16k": "gpt-3.5-turbo",
"gpt-3.5-turbo-16k-0613": "gpt-3.5-turbo",
"gpt-3.5-turbo-1106": "gpt-3.5-turbo",
"gpt-3.5-turbo-instruct": "gpt-3.5-turbo"
}
密钥填写你的refresh_token
即可,如果你有多个账号,可以将批量勾选上,然后一行写一个refresh_token
。
gpt4-copilot-java
支持 cocopilot 的 ccu 和 copilot 的 ghu 调用 copilot 转 GPT-4 的接口转换工具。 Java 写的,可以在 Serv00 运行。依旧是在 Panel 中先开放端口。
新建并进入 gpt4-copilot-java 的工作目录:
mkdir -p ~/domains/gpt4-copilot-java && cd ~/domains/gpt4-copilot-java
下载 fat jar 包:
RELEASE_INFO=$(curl -s "https://api.github.com/repos/Yanyutin753/gpt4-copilot-java-sh/releases/latest")
JAR_DOWNLOAD_URL=$(echo "$RELEASE_INFO" | jq -r '.assets[] | select(.name|test(".jar$")) | .browser_download_url')
curl -L -o gpt4-copilot-java.jar "$JAR_DOWNLOAD_URL"
测试运行
# 把PORT改为自己放行的端口,最后的server.servlet.context-path参数可以改成自己喜欢的尾缀
java19 -jar gpt4-copilot-java.jar --server.port=PORT --server.servlet.context-path=/
测试没有问题之后,按 Ctrl+c即可停止运行。
使用 pm2 启动并管理:
~/.npm-global/bin/pm2 start java19 --name gpt4-copilot-java -- -jar gpt4-copilot-java.jar --server.port=PORT --server.servlet.context-path=/
始皇的公车:ghu_ThisIsARealFreeCopilotKeyByCoCopilot
免费公车白嫖请求示例:
curl --location 'http(s)://ip:port_or_URL/cocopilot/v1/chat/completions'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer ghu_ThisIsARealFreeCopilotKeyByCoCopilot'
--data '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "鲁迅打周树人"}]
}'
Zfile
同理,先放行端口。然后新建并进入zfile的工作路径:
mkdir -p ~/domains/zfile && cd ~/domains/zfile
下载 fat jar 包:
wget --no-check-certificate -O zfile.jar https://c.jun6.net/ZFILE/zfile-release.jar
测试运行:
java19 -jar -Duser.timezone=Asia/Shanghai zfile.jar --zfile.log.path=$PWD/logs --zfile.db.path=$PWD/zfile --server.port=PORT
记得把端口改成自己的。测试没有问题之后,按 Ctrl+c即可停止运行。
使用pm2启动并管理:
~/.npm-global/bin/pm2 start java19 --name zfile -- -jar -Duser.timezone=Asia/Shanghai zfile.jar --zfile.log.path=$PWD/logs --zfile.db.path=$PWD/zfile --server.port=PORT
Halo
慎重部署,内存会超100%,不知道会不会封号
halo自从升级2.0版本开始,很长时间内都没有提供构筑好的jar包,甚至于在GitHub上都出现了第三方的,使用GitHub workflow自动化构筑jar包的仓库但是,自从2.12.0-alpha.1版本开始,halo的官方仓库又开始提供构筑好的jar包了.
先放行一个端口,并新建一个目录用于存放halo的相关文件,进入目录后执行下述操作。
下载jar包:
wget -O halo.jar https://github.com/halo-dev/halo/releases/download/v2.12.0/halo-2.12.0.jar
在面板中新建MySQL数据库,用于填入 application.yaml
,application.yaml
的全部内容:
server:
port: 你在面板中放行的端口
# Response data gzip.
compression:
enabled: false
spring:
#sql:
# init.platform: mysql
r2dbc:
url: r2dbc:pool:mysql://数据库地址:3306/数据库名
username: 数据库用户名
password: 数据库密码
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level
cache: level
在 halo.jar
所在路径下新建 .halo2
文件夹,进入其中,新建文件 application.yaml
然后把上述内容填入其中。
在 halo.jar
所在路径下新建 run.sh
运行脚本,其全部内容为:
#!/bin/bash
export HALO_WORK_DIR="$PWD/.halo2"
export HALO_EXTERNAL_URL="https://你的域名"
java17 -server -Xms128m -Xmx256m -jar -Duser.timezone=Asia/Shanghai $PWD/halo.jar --spring.config.additional-location=$PWD/.halo2/application.yaml
测试运行:
chmod +x run.sh && ./run.sh
确定运行没有问题后,按 Ctrl+c即可停止运行。
使用pm2管理运行:
chmod +x run.sh && ~/.npm-global/bin/pm2 start ./run.sh --name halo
自动续期
可以用青龙面板的自动任务定期登录SSH解决。在青龙面板中添加Linux依赖 sshpass
,然后添加定时任务:名称随意,命令/脚本 sshpass -p '密码' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 "exit"
,定时规则1 1 1 * *
。这样就会每个月自动ssh连接一次,实现续期。
你还可以使用自身SSH自身的方式进行自动续期,操作如下:
在Panel中找到File manager选项卡,进入一个自己喜欢的路径,然后找到上方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
所在的路径:
cd xxx #其中xxx为你的auto-renew.sh文件的存放路径
给 auto-renew.sh添加可执行权限:
chmod +x auto-renew.sh
使用pm2启动:
~/.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读取保存的任务列表快照,恢复任务列表。