编译与部署
从源码编译
环境要求:
- 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-fence或llm-fence.exellm-fence.tomlLLM_FENCE_SECRET_KEY_ID和LLM_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.targetbash
sudo systemctl daemon-reload
sudo systemctl enable --now llm-fence
journalctl -u llm-fence -fWindows
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 通过运行配置写入后会加密存储。