<aside> 💡 Surgio,一款高度自定义各类App策略组的托管工具,例如比较热门的Surge、QuantumultX、Clash等,您甚至可以使Surge自动同步远程Rewrite、Hostname部分。
</aside>
- 项目地址https://github.com/geekdada/surgio,首先感谢作者geekdada。
- 本教程由sjh完成,观看教程需具备一定的汉语能力,您只需要一字不差照搬,无需VPS即可部署
- [ ] 如有疑问可留言至Telegram频道https://t.me/cloudtest
- [ ] Surgio交流群:https://t.me/surgiotg
- 演示地址:
accessToken:YOUR_PASSWORD
👆最终效果展示
教程macOS/Windows通用,废话不多说,下面进入正题。
- 1、准备本地环境
- 1⃣️ 安装node.js
下载地址:https://nodejs.org/zh-cn/download/
选择长期支持版LTS
强烈建议选择LTS版,最新版后续会报错
- 2⃣️ 准备一个现代化的编辑器
本教程使用VSCode
创建一个文件夹备用,名字请便,
此处为命名为demo
文件夹任意目录,无特定要求
DEMO为新创建的目录
- 1⃣️ 安装node.js
- 2、安装surgio本体
- 1⃣️ 使用命令安装Surgio
在上一步创建的文件夹demo中启动终端,以下命令二选一
# 安装 npm init surgio-store my-rule-store # 使用国内镜像安装 npm init surgio-store my-rule-store --use-cnpm
此处提示是否配置将配置文件上传至阿里云 OSS,选择否
部署失败请使用国内镜像或代理终端
至此Surgio本地版已经完成
- 1⃣️ 使用命令安装Surgio
- 3 、测试Surgio在本地生成Surge/QuantumultX/Clash完整配置(非必要,可略过)
- 1⃣️ 使用命令生成完整配置
在上一步创建的my-rule-store目录输入以下命令,即可生成完整策略组配置
# 生成规则(Surge/Quantumult/X/Clash) npx surgio generate
- 2⃣️ 查看已生成的配置
已生成完整策略组配置,可在**my-rule-store/dist/**目录下查看
此处即为Surge/Quantumult(X)/Clash完整策略组配置
测试完成,选取对应App配置后可见熟悉的配置文件。
- 1⃣️ 使用命令生成完整配置
- 4、安装策略组托管API组件(⚠️核心步骤)
- 1⃣️ 修改/my-rule-store/surgio.conf.js
复制下面这段到136行,添加accessToken,注意修改引号‘’里面的内容,俗称改密码
// 接口鉴权 gateway: { auth: true, accessToken: 'YOUR_PASSWORD', },
为防止订阅信息在公网泄露,强烈建议设置密码
- 2⃣️ 修改/my-rule-store/package.json
⚠️新建文件后缀为.json,不是.js
⚠️如果你不想花费数小时修正后续错误,此步骤请严格按照示例操作
第9行起,添加以下内容,别忘了加上英文逗号,
, "@surgio/gateway": "^0.7.0" }, "engines": { "node": "10.x" } }
请仔细对比示例
- 3⃣️ /my-rule-store/目录下新建now.json
⚠️新建文件后缀为.json,不是.js
输入以下内容
{ "version": 2, "public": false, "builds": [ { "src": "/gateway.js", "use": "@now/node", "config": { "includeFiles": [ "provider/**", "template/**", "*.js", "*.json" ] } } ], "routes": [ { "src": "/(.*)", "dest": "/gateway.js" } ] }
关键步骤,请仔细对比示例
- 4⃣️ /my-rule-store/目录下新建gateway.js
⚠️新建文件后缀为.js,不是.json
输入以下内容
'use strict'; const gateway = require('@surgio/gateway'); module.exports = gateway.createHttpServer();
关键步骤,请仔细对比示例
- 5⃣️ /my-rule-store/目录下打开终端
运行以下命令
npm i @surgio/gateway --save
关键步骤,请仔细对比示例
至此API组件部署完成,接下来将本地仓库推送到GitHub并且关联now.sh网关即可
- 1⃣️ 修改/my-rule-store/surgio.conf.js
- 5、将Surgio本体推送至GitHub仓库
- 1⃣️ 新建一个空仓库
选择私有,注意不要勾选初始化仓库
⚠️当然你也可以选择公仓,机场主不封你号问题就不大。
复制新建仓库的这条命令备用
- 2⃣️ 本地项目Surgio推送GitHub仓库
/my-rule-store/目录下新建名为.gitignore的文件,输入内容,如文件已存在则替换全部内容
.env node_modules dist .DS_Store
关键步骤,请仔细对比示例
以上步骤完成后保存文件,接下来连接远程仓库,依次在/my-rule-store/目录输入以下命令,注意,你不要把汉字也输进去,过程会提示输入你的GitHub账户邮箱及密码
# 初始化仓库 git init # 配置user.name(如已配置,请忽略) git config --global user.name "你的GitHub用户名" # 配置user.email(如已配置,请忽略) git config --global user.email "你的GitHub账户邮箱" # 连接GitHub仓库,此命令每个仓库不相同,你需要在你的仓库里找到,参考上一步 git remote add origin <https://github.com/oss-net/demo.git>
⚠️未安装Git此处会报错,可通过以下地址安装
⚠️收到反馈此处会提示“fatal: remote origin already exists.”,无视即可,接着进行下一步。
远程仓库连接成功
本地项目推送GitHub仓库
点击带数字的蓝色圈,再点击右边的+,暂存更改
暂存更改完成
这里随便输几个字,点击右上角的✓,提交
提交完成
接下来推送到仓库,点击上图✓旁边的...,选择推送,过程可能会提示输入你的GitHub账户邮箱及密码,没有上游分支,确定发布
推送完成
查看仓库
至此你的Surgio已推送到GitHub仓库,接下来需要关联now.sh网关
- 1⃣️ 新建一个空仓库
- 6、now.sh关联GitHub仓库
- 1⃣️ 登陆Zeit
登陆地址:https://zeit.co/
使用你的GitHub登陆即可
步骤过于简单,这里不演示
- 2⃣️ 关联GitHub项目
点击Import Project
选择From Git Repository,点击Continue
点击Import Project From GitHub,从你的GitHub仓库选择关联
名字、路径默认即可,无需修改
项目关联成功
- 3⃣️ 保存API地址
这几条连接即为你的Surgio面板访问连接,保存备用
复制到浏览器打开,并且输入token,即可成功访问
至此你的Surgio已经全部完成
- 4⃣️ 同步托管地址
修改/my-rule-store/surgio.conf.js,第123行
urlBase: '[<https://example.com/>](<https://example.com/>)', # 替换为你的API地址,必须以/结尾 urlBase: '<https://demo-beta.now.sh/get-artifact/>',
修改完成后提交推送,这里不再敖述
- 1⃣️ 登陆Zeit
- 7、使用Surgio网关API
- 1⃣️ 登陆面板
浏览器输入:https://demo-beta.now.sh/
输入accessToken
- 1⃣️ 登陆面板
文章评论