mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-09-19 12:06:40 +08:00
fix(config): 完成生产配置向 config.toml 的迁移
This commit is contained in:
@@ -367,6 +367,18 @@ sudo ln -sfn \
|
||||
|
||||
如果 Rust `bat` 和 Go `bat-api` 使用同一个 release 目录发布,也可以把二者放在同一个 `<version-or-git-sha>` 目录下,分别通过 `/opt/bluearchive-toolkit/bin/bat` 和 `/opt/bluearchive-toolkit/bin/bat-api` 暴露稳定 symlink。
|
||||
|
||||
### 共享配置文件
|
||||
|
||||
两个二进制都从各自真实可执行文件所在目录读取同一个 `config.toml`。发布新版本时,可以从仓库模板创建并设置权限:
|
||||
|
||||
```bash
|
||||
sudo install -o bat -g bat -m 0600 \
|
||||
cmd/bat-api/config.toml.example \
|
||||
/opt/bluearchive-toolkit/releases/"${VERSION}"/config.toml
|
||||
```
|
||||
|
||||
Rust `bat` 消费自身的 `[runtime]`、`[resource]`、`[localized]`、`[repository]`、`[network]`、`[translation.worker]`;Go `bat-api` 消费 `[api]`。每个程序忽略另一个程序的 section,但各自 section 中的未知字段会使启动失败。优先级为 `CLI > 进程环境变量 > config.toml > 内置默认值`。首次启动只生成 `config.toml.example`,应用不会读取或生成二进制旁 `.env`。
|
||||
|
||||
### bat 侧前置条件
|
||||
|
||||
`bat-api` 依赖 live RPC,而不是直接读取 daemon 状态文件。部署 `bat-api` 前,部署所在生产主机上应已有 socket 形态的 Rust `bat`:
|
||||
@@ -416,6 +428,8 @@ BAT_API_RATE_LIMIT_RPS=30
|
||||
BAT_API_RATE_LIMIT_BURST=120
|
||||
```
|
||||
|
||||
上面的 `bat-api.env` 是 systemd `EnvironmentFile`,systemd 将其中的 `BAT_API_*` 作为进程环境变量注入;它不是应用读取的 dotenv 文件。需要固定的共享配置应写入二进制旁 `config.toml` 的 `[api]`,secret 优先通过 systemd credential 或环境变量注入。
|
||||
|
||||
生产反向代理公开后,把 `BAT_API_PUBLIC_BASE_URL` 改成客户端实际访问的 HTTPS 根,例如:
|
||||
|
||||
```env
|
||||
@@ -466,7 +480,7 @@ curl -fsS http://127.0.0.1:18080/admin/
|
||||
```bash
|
||||
make test-go-api
|
||||
make build-go-api
|
||||
BAT_API_SKIP_ENV_FILE=1 go run ./cmd/bat-api \
|
||||
go run ./cmd/bat-api \
|
||||
--listen 127.0.0.1:18080 \
|
||||
--public-base-url http://127.0.0.1:18080 \
|
||||
--resource-root internal/api/testdata/release \
|
||||
|
||||
Reference in New Issue
Block a user