Skip to content

部署说明

onxss edited this page Oct 11, 2023 · 3 revisions

一、 登陆Cloudflare控制台

  • One XSS前后端/数据库均部署于Cloudflare中,若无Cloudflare账户,请 前往注册
    • 用户/项目/日志/等均存储于Cloudflare D1数据库
    • KV中缓存用户Token 及 项目JS代码、TelegramToken

二、 创建D1数据库

image-20231011125526562

  • 数据库名称: platform-db
  • 位置: 自动 或勾选 亚太地区

数据库若为其他名称,请自行修改相关代码,不进行介绍。

  • 创建后记录D1数据库ID

    image-20231011134144341


三、 创建KV

image-20231011125918227

  • 命名空间名称: JSKV

KV命名空间若为其他名称,请自行修改相关代码,不进行介绍。

  • 创建后记录KV命名空间ID

    image-20231011134221684


四、 部署 OneXSS API 项目

OneXSS平台中,生成的XSS JS代码为API项目的域名。

当用户访问XSS代码或数据需要回传时,将回传到API项目中,并由API负责入库及Telegram通知。

由于API项目中使用了部分nodejs模块,需要手动npm install,因此暂时仅展示命令行部署方式

若存在大陆地区网络问题,请自行配置代理

1. 配置部署环境

  • 操作系统版本: Ubuntu 20.04 或 Ubuntu 22.04均可 (仅测试x64可行,其余平台未测试)

  • Node.js版本: v18.17.1 官网下载地址

    # Node.js安装及环境变量配置脚本,以下均为root权限
    wget https://nodejs.org/dist/v18.17.1/node-v18.17.1-linux-x64.tar.xz
    tar -xf node-v18.17.1-linux-x64.tar.xz
    mv node-v18.17.1-linux-x64 /opt/node
    cat >>/etc/profile<<EOF
    export NODE_HOME=/opt/node
    export PATH=\$PATH:\$NODE_HOME/bin
    export NODE_PATH=\$NODE_HOME/lib/node_modules
    EOF
    source /etc/profile
    node -v
    bash 
  • 安装相关依赖

    # 以下均为root权限
    apt update 
    apt install gcc make g++ git -y

2. API项目配置

  • 拉取API项目

    git clone https://github.com/onxss/OneXSS-API.git
    cd OneXSS-API
  • 修改配置文件 wrangler.toml.example, 并将其重命名为wrangler.toml

    name = "onexss-api"
    main = "src/index.ts"
    compatibility_date = "2022-11-31"
    compatibility_flags = [ "nodejs_compat" ]
    usage_model = "bundled"
    minify = true
    send_metrics =false
    
    kv_namespaces = [
        { binding = "JSKV", id = "KV的ID" , preview_id="KV的ID"},
    ]
    
    d1_databases = [
        {binding = "DB", database_name = "platform-db" , database_id = "D1数据库ID",preview_id = "D1数据库ID"}
    ]
    
    [triggers]
    crons = [ ]

3. 安装项目依赖

npm install 

4. wrangler 登陆cloudflare账户

npx wrangler login
# 会出现cloudflare的登陆连接,请先在浏览器中登陆并授权 Allow
# 授权后,浏览器会重定向到 http://localhost:8976/oauth/callback?code=xxxxxx
# 请使用部署环境系统,curl该URL 例如
curl 'http://localhost:8976/oauth/callback?code=xxxxxx'

# 登陆成功将会提示 Successfully logged in.

image-20231011135130362

5. wrangler部署API项目

npx wrangler deploy

image-20231011135627990

6. 前往Cloudflare控制面板查看该Workers项目部署情况

image-20231011140011305

7. 设置自定义域名(可选)

  • 默认为workers.dev的子域名,大陆地区基本无法访问,使用自己的域名即可

  • 该域名的主域名必须在该账户中

    image-20231011141915566


五、 部署 OneXSS 项目

1. 创建Pages应用程序

  • Fork OneXSS项目 => 点击前往

  • 点击 连接到Git -> 连接到Github

  • 在Github授权页面中,授权所有仓库 或 授权Fork的OneXSS项目,并点击Install & Authorize

    image-20231011140745073

  • 在Cloudflare页面中点击开始设置

    image-20231011141051146

  • 修改部署构建设置,修改后点击部署和保存

    • 框架预设: Next.js

    • 变量名称有以下两个

      • TOKEN_SALT : 随机字母数字,尽量保持在16-32位

      • PASSWORD_SALT : 随机字母数字,尽量保持在16-32位

      • 部署成功后,请尽量不要修改PASSWORD_SALT,否则会出现登陆异常

    image-20231011141258182

  • 等待部署到Cloudflare全球网络完成

2. 配置项目

  • 在Cloudflare OneXSS项目的设置-函数中,需要进行以下修改:

    • 生产兼容日期 修改为2022-11-30

    • 生产兼容性标志 新增 nodejs_compat

      image-20231011142515966

    • KV命名空间绑定

      image-20231011142737484

    • D1数据库绑定

      image-20231011142807507

3. 重新部署项目

Cloudflare现行版本中, Workers若更改了部分设置,需要重新部署才能生效。

  • 等待部署完成,即可进入使用

    image-20231011143357130


六、 初始化One XSS平台

  • 以上部分部署完毕后,可通过One XSS项目的域名进入到XSS平台

  • 首次进入XSS平台需要初始化相关设置

    • JS接口域名: 填写OneXSS API项目的域名
    • 用户名/密码/邮箱 请自行填写

    image-20231011143842053

  • 提交后稍等几秒即可初始化完毕