ss panel v3
ss panel v3

部署 V2ray 自动更新后端

注意:群主发布的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.tpldownloadLink.tpl ,使用 xftpnotepad++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 语句

https://sspanel3.com/wp-content/uploads/2020/06/Snipaste_2020-06-04_01-59-19.png

注意:请修改“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 此项目值应为上文设置的 latestVersionNumberhttp/https 地址。例如:https://xxx.com/latestVersionNumber
  • downloadLink 此项目值应为上文设置的 downloadLinkhttp/https 地址。例如:https://xxx.com/downloadLink
  • reportUpdate 此项目值为 true 时将上报更新日志。设置为 false 或其他值时不上报更新日志
  • reportUpdateApiAddress 此项目值应为上文设置的 Record.phphttp/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 表,你可以看到类似于如下文本的内容

https://sspanel3.com/wp-content/uploads/2020/06/Snipaste_2020-06-04_02-06-24.png
  • 如果 executiveFeedback 字段中出现了 failed 字样,请检查并确认下载地址中文件的命名是规范命名(详情请见上)

附件下载

附件下载

发表回复

textsms
account_circle
email

ss panel v3

部署 V2ray 自动更新后端
注意:群主发布的4.23.4.1.zip的实际版本号为4.23.4,请不要填错!建议将4.23.4.1.zip重命名为4.23.4.zip,再上传到自己存放文件的地方,同时版本号设置为4.23.4! 添加版本号与下载地址…
扫描二维码继续阅读
2020-06-04