Skip to content

编译与部署

从源码编译

环境要求:

  • Rust 工具链
  • Node.js 与 pnpm,用于构建内置管理端前端
bash
pnpm -C app install --frozen-lockfile
pnpm -C app build
cargo build --release

本地打包:

bash
bash build_linux.sh
bash build_windows.sh

打包脚本会先构建前端,再构建 Cargo release。app/build 会嵌入二进制,不需要作为独立目录随包部署。

启动文件

部署目录至少需要:

  • llm-fencellm-fence.exe
  • llm-fence.toml
  • LLM_FENCE_SECRET_KEY_IDLLM_FENCE_SECRET_KEY 环境变量
  • 可连接的 MongoDB 副本集或分片集群

Linux systemd

ini
[Unit]
Description=LLM Fence
After=network-online.target mongod.service
Wants=network-online.target

[Service]
Type=simple
WorkingDirectory=/opt/llm-fence
ExecStart=/opt/llm-fence/llm-fence
Restart=on-failure
RestartSec=5
Environment=RUST_LOG=info
Environment=LLM_FENCE_SECRET_KEY_ID=prod-v1
Environment=LLM_FENCE_SECRET_KEY=<base64-encoded-32-byte-key>

[Install]
WantedBy=multi-user.target
bash
sudo systemctl daemon-reload
sudo systemctl enable --now llm-fence
journalctl -u llm-fence -f

Windows

PowerShell 临时运行:

powershell
$env:LLM_FENCE_SECRET_KEY_ID = "prod-v1"
$env:LLM_FENCE_SECRET_KEY = "<base64-encoded-32-byte-key>"
.\llm-fence.exe

需要长期运行时,可使用 Windows Service、NSSM 或其他进程管理工具。

管理 API 文档

Debug 构建默认开启 /api/admin/docs。Release 构建默认关闭,如需临时查看:

bash
./llm-fence --admin-docs

本地前后端开发

Debug 构建下可临时开启跨域:

bash
cargo run -- --dev-cors

该开关只用于本地调试。面向用户部署时应使用同源部署或反向代理处理前后端访问路径。

日志级别

bash
RUST_LOG=info ./llm-fence
RUST_LOG=debug ./llm-fence

不设置时默认 info

运维注意事项

  • llm-fence.toml 和主密钥不要提交到版本控制。
  • MongoDB 必须具备事务能力;生产环境建议副本集或托管 MongoDB。
  • cookie_secure 在 HTTPS 部署中应设为 true
  • 主密钥首次部署后不要随意更换。
  • Provider API Key 和审计 LLM API Key 通过运行配置写入后会加密存储。