赛衡智能体
Competition Intelligence
Operations

部署、运维与备份恢复

开发环境
安装 Node.js 22+,执行 npm install。
配置 .env.local:DATABASE_URL、JWT_SECRET、种子管理员账号和 LLM Key;共享管理口令默认禁用。
执行 npm run db:migrate、npm run build、npm run start。
接口文档:/api/openapi;功能缺口矩阵:/api/system/status。
部署指南
仓库提供 Dockerfile、Compose、Caddy 和 Nginx 模板;反代需保留 50MB 请求体上限。
当前部署使用 PostgreSQL、Redis/BullMQ 和本地 storage 持久卷;任务由数据库租约与 fencing 防止重叠执行,中断后按连续成功步骤自动续跑。
生产启动使用 npx prisma migrate deploy 后再 npm run start;compose.server.yaml 已包含 PostgreSQL 服务和持久卷。
健康检查:/api/health;数据库、storage、Redis producer 或任一持久 Worker down 时返回 503。
短信、OAuth 和在线支付已移除;邮件未配置时,超级管理员可签发 15 分钟一次性恢复凭证,离线 CLI 可连接 PostgreSQL 执行恢复。
Skill 仓库同步
先执行 npm run skills:sync -- --dry-run 检查方案中的仓库和目标路径,不会修改文件。
执行 npm run skills:sync 完成首次同步;后续运行使用 git pull --ff-only 安全快进更新。
默认目录为 storage/skills;可通过 SKILLS_DIR 或 --skills-dir <path> 指向持久化目录。
服务进程必须对仓库目录具备只读权限;同步任务使用独立部署账号,并在失败汇总后处理网络或 Git 问题。
备份恢复
npm run backup:local 使用 pg_dump custom 格式备份 PostgreSQL,并以 tar.gz 尽力复制在线 storage,校验后原子发布归档和 SHA-256。
npm run restore:local -- <backup.tar.gz> <空目录> 会校验相邻 .sha256、归档路径、文件类型、manifest、dump 哈希和 pg_restore 列表,只恢复到隔离目录。
严格跨卷一致性需要先停写或使用卷快照,并把加密副本同步到独立主机或对象存储后定期演练。
生产替换顺序:停机 -> pg_restore 数据库 -> storage -> 环境变量 -> 启动 -> 健康检查。
用户注销后项目进入 30 天软删除保留期,清理前必须保留审计记录。
安全运维
必须使用 HTTPS、强 JWT_SECRET、管理员 RBAC 和最小权限数据库账号;共享管理口令保持禁用。
开启 CSP、SameSite Cookie、Origin 校验、上传白名单和大小限制。
只有请求必经受控反代时才设置 TRUST_PROXY_HEADERS=true;公网反代必须保留硬请求体上限。
生产接入 Sentry/APM/日志平台,并为 /api/health 配置告警。
不要用 --force 自动升级依赖;先审计破坏性变更再处理漏洞。