IDX 第二弹 —— 用 NPM 包简化部署过程

IDX 第二弹 —— 用 NPM 包简化部署过程

由于 singbox 的更新,旧配置不兼容,导致原先在 idx 部署的 nodejs 节点不通,本文教大家以 npm 包的方式部署 nodejs-argo(xray)内核,救活已经失联的 idx 节点。这种部署方式更为简单便捷

相关资源

先去给上述项目点个免费的 ⭐ 以表支持

清理旧部署

  • 依次执行以下命令以清理旧的部署:
1
2
rm -rf node_modules tmp
rm -f package.json package-lock.json

部署新项目

以 nodejs-argo 包作为示例

  • 此仓库 下载 start.sh 文件,并上传到 IDX 工作区,还没创建工作区的,创建一个 nodejs 类型的工作区
  • 在工作区中打开 start.sh 文件,填写其中的环境变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TARGET_MODULE="nodejs-argo" # 若需sb内核则改为 node-sbx

# 安装依赖
if [ ! -d "node_modules" ]; then
echo "node_modules 目录不存在,正在安装 ${TARGET_MODULE}…"
npm install "${TARGET_MODULE}"
elif ! npm list "${TARGET_MODULE}" --depth=0 >/dev/null 2>&1; then
echo "检测到 ${TARGET_MODULE} 未安装或版本不匹配,正在安装 ${TARGET_MODULE}…"
npm install "${TARGET_MODULE}"
else
echo "${TARGET_MODULE} 依赖已安装且版本匹配,跳过 npm install"
fi

# 配置环境变量
export UUID="40ec34e0-6971-4583-8b78-961a80fe3269"
export NEZHA_SERVER="nezha.333444.xyz:8008" # v0不要后面的端口
export NEZHA_PORT="5555" # v0在此填写端口,v1直接删除这一行
export NEZHA_KEY="14334fhhgdds"
export ARGO_DOMAIN="idx-us.333444.xyz"
export ARGO_AUTH="eyxxxxxxxxxxxxxxxxxxxxxxxx"
export CFIP="cf.090227.xyz"
export NAME="IDX"

# 启动服务
npx "${TARGET_MODULE}"
  • 在工作区打开 .idx/dev.nix 文件,修改以下两处:

第一处:

1
2
3
4
  packages = [
    pkgs.nodejs_20 // 新增这一行
    pkgs.openssl_3_3.bin
  ];

第二处:

1
2
3
4
5
6
 previews = {
web = {
command = ["bash" "start.sh"]; // 这一行改成这样
manager = "web";
};
};
  • 右下角会出现 rebuild… 字样的按钮,点击它开始部署,耐心等待部署完成
  • 部署完成后,在工作区找到 tmp/sub.txt 文件,其中 b64 编码的内容就是节点信息

如何更新 Npm 包

在工作区终端输入以下命令,重新部署

1
2
3
npm update nodejs-argo  # xray 内核
# 或
npm update node-sbx # singbox 内核

关于保活

保活还是一样的套路,通过搭建的 docker 版 firefox,定时刷新工作区项目,即可保活节点

#科学 #容器