注意:群主发布的4.23.4.1.zip的实际版本号为4.23.4,请不要填错!建议将4.23.4.1.zip重命名为4.23.4.zip,再上传到自己存放文件的地方,同时版本号设置为4.23.4!
添加版本号与下载地址API
注意:下文网站目录以 /home/wwwroot/sspanel 为例,应用时需修改成你网站目录
编辑 /home/wwwroot/sspanel/config/routes.php
,找到
$app->get('/tos', App\Controllers\HomeController::class . ':tos');
在后面追加
$app->get('/latestVersionNumber', App\Controllers\HomeController::class . ':latestVersionNumber'); $app->get('/downloadLink', App\Controllers\HomeController::class . ':downloadLink');
编辑 /home/wwwroot/sspanel/app/Controllers/HomeController.php
,找到
public function tos($request, $response, $args): ResponseInterface { return $response->write($this->view()->fetch('tos.tpl')); }
在后面追加
public function latestVersionNumber($request, $response, $args): ResponseInterface { return $response->write($this->view()->fetch('latestVersionNumber.tpl')); } public function downloadLink($request, $response, $args): ResponseInterface { return $response->write($this->view()->fetch('downloadLink.tpl')); }
在目录 /home/wwwroot/sspanel/resources/views/material
下创建 latestVersionNumber.tpl
和 downloadLink.tpl
,使用 xftp
与 notepad++
或 vim
命令编辑这两个文件
latestVersionNumber.tpl
填写版本号(例如4.23.4
,该版本文件下载地址:点我)downloadLink.tpl
填写该版本号服务端文件的下载地址(请自行解决。推荐上传至网站目录/public
下,或使用云服务商的对象存储服务)
下载地址中的文件名格式应为:版本号+.zip。例如,版本号为4.23.4,下载地址应该像这样:https://file.com/4.23.4.zip。不规范的填写将导致无法正常自动更新!
添加更新记录API
注意:下文库名以 sspanel 为例,应用时需修改成你的库名
使用 phpmyadmin
登录,选择 sspanel
库,执行 sql
语句
注意:请修改“CREATE TABLE `sspanel`”中的“sspanel”为你的库名
CREATE TABLE `sspanel`.`v2rayUpdateLog` ( `recordId` INT(11) NOT NULL , `requestTime` DATETIME NOT NULL , `ipAddress` TEXT NOT NULL , `VersionInUse` TEXT NOT NULL , `updatedVersion` TEXT NOT NULL ) ENGINE = InnoDB; ALTER TABLE `v2rayUpdateLog` ADD PRIMARY KEY( `recordId`); ALTER TABLE `v2rayUpdateLog` CHANGE `recordId` `recordId` INT(11) NOT NULL AUTO_INCREMENT; ALTER TABLE `v2rayUpdateLog` CHANGE `requestTime` `requestTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; ALTER TABLE `v2rayUpdateLog` ADD `executiveFeedback` TEXT NOT NULL AFTER `updatedVersion`;
在 /home/wwwroot/sspanel/public
目录下创建文件 Record.php
注意:为了保障该 api 不会被恶意利用,成为 sql 注入的突破口,强烈建议将一个 16 位或 32 位的字符串替代 Record 作为文件名以确保安全。可前往 https://tool.chinaz.com/tools/md5.aspx 生成一个
代码内容详见附件中的Record.php
。使用时,需补齐文件中的 $db_passwd
和 $db_name
,即数据库密码,和数据库名称
在服务器后端上传脚本
打开压缩包内(详见附件)的 automaticUpdate.sh
,编辑如下项目,将对应的值填入两个英文单引号中
versionNumber
此项目值应为上文设置的latestVersionNumber
的http/https
地址。例如:https://xxx.com/latestVersionNumber
downloadLink
此项目值应为上文设置的downloadLink
的http/https
地址。例如:https://xxx.com/downloadLink
reportUpdate
此项目值为true
时将上报更新日志。设置为false
或其他值时不上报更新日志reportUpdateApiAddress
此项目值应为上文设置的Record.php
的http/https
地址。例如:https://xxx.com/Record.php
或https://xxx.com/60fa1f91cb810b63.php
保存修改,然后上传至服务端的 /root
目录下
使用教程
v2ray
后端的自动更新依赖automaticUpdate.sh
脚本的执行automaticUpdate.sh
脚本支持两种触发方式- 手动触发。请执行命令:
bash /root/automaticUpdate.sh
。如果脚本检测到当前运行的v2ray
版本号不同于网站设置的版本号,脚本将执行自动更新程序,并输出类似于如下文本的内容
当前版本为4.23.3,检测到新版本4.23.4 (1/7) 正在停止 v2ray 服务... (2/7) 正在下载新版本文件... (3/7) 正在删除旧文件... (4/7) 正在更新新文件... (5/7) 正在删除暂存目录及文件... (6/7) 正在启动 v2ray 服务... (7/7) 正在上报更新日志... 更新程序执行完毕.
- 自动触发。请执行命令(仅需执行一次):
bash /root/automaticUpdate.sh setScheduledTasks
- 上述命令会新添加一个每小时执行一次的定时任务,来执行它本身的检查更新程序
- 如果期望设置不同的执行时间间隔,请修改
automaticUpdate.sh
的第87
行的相关内容
查看更新记录
登录 phpmyadmin
查看 sspanel
库的 v2rayUpdateLog
表,你可以看到类似于如下文本的内容
- 如果 executiveFeedback 字段中出现了 failed 字样,请检查并确认下载地址中文件的命名是规范命名(详情请见上)
发表回复