# bot-forge 内网部署包
本目录用于作为一个静态 HTTP/HTTPS 目录发布。入口支持 Linux x86_64 GNU、Linux ARM64 GNU 和 Windows x86_64 MSVC;Linux ARM64 发布时必须提供对应二进制文件。
## 服务器地址
发布前,将 `bootstrap.sh` 和 `bootstrap.ps1` 中的:
```text
https://REPLACE-WITH-INTERNAL-SERVER/bot-forge
```
替换为实际静态目录地址。也可以在调用 bootstrap 前设置 `BOT_FORGE_BASE_URL`。
可以运行交互式脚本同时修改 Linux 和 Windows bootstrap。脚本会先展示地址示例以及服务器目录所需文件:
```bash
chmod +x set-server-url.sh
./set-server-url.sh
```
## 用户命令
Linux:
```bash
该命令可以通过管道启动 bootstrap;bootstrap 在进入组件选择时会改为从 `/dev/tty` 读取输入,因此用户仍可交互选择。命令必须在真实终端中运行,CI 或无 TTY 会话不能使用交互选择。
Windows PowerShell:
```powershell
两个入口都会进入 `advanced` 的交互式组件选择界面。`advanced` 用于提供完整候选范围,不表示自动全选;用户可以勾选需要安装的组件,并在执行前确认:
```text
bot-forge install advanced --config <安装后的配置路径>
```
## 配置更新规则
一键安装渠道将本目录的 `bot-forge.toml` 作为云端配置。每次运行都会先校验下载文件的 SHA-256,再用新安装的二进制验证配置;验证通过后备份并原子覆盖用户默认配置。旧配置保存在同目录的 `bot-forge.toml.bot-forge.bak`。
自行编译二进制的用户仍可显式指定个人配置,不受一键安装渠道限制:
```bash
./target/release/bot-forge install advanced --config ./my-bot-forge.toml
```
也可以通过独立的 `BOT_FORGE_CONFIG_DIR` 隔离个人默认配置目录。
默认位置:
- Linux 二进制:`$HOME/.local/bin/bot-forge`
- Linux 配置:`$HOME/.config/bot-forge/bot-forge.toml`
- Windows 二进制:`%LOCALAPPDATA%\bot-forge\bin\bot-forge.exe`
- Windows 配置:`%APPDATA%\bot-forge\bot-forge.toml`
## 修改发布文件后
修改二进制或 `bot-forge.toml` 后必须重新生成 `SHA256SUMS` 和 `SHA256SUMS.sha256`,并将新的清单摘要同步写入两个 bootstrap 的 `CHECKSUMS_SHA256`/`checksumsSha256` 常量。
在部署目录运行以下脚本即可自动完成生成、回填和验证,每一步都会输出实际执行情况:
```bash
chmod +x generate-sha256.sh
./generate-sha256.sh
```
当前配置来自 `D:\PR\Rust\bot-forge-y.toml`。其中证书检测地址、证书安装脚本地址、PyPI 镜像、npm registry 和 GitNexus 内网包地址仍包含待替换内容,正式部署前必须填写。