10-deployment.md 2.9 KB

10 部署与运维

1. 目标环境(当前服务器)

  • Ubuntu 22.04.5 LTS,systemd 249,12 核 / 30GB 内存
  • Node 22.15、Python 3.10
  • claude(~/.local/bin/claude)、codex 0.154.0(~/.local/bin/codex),均由本人在终端登录
  • unprivileged user namespace 已开启,bwrap 可正常运行(已验证)

2. 依赖安装状态(2026-10-22 已完成)

依赖 状态 用途
bubblewrap ✅ 已有 两个引擎的沙箱
socat ✅ 新装 Claude 沙箱网络代理
ripgrep ✅ 新装 资料检索、Codex 搜索
pandoc ✅ 新装(2.9) docx 读取与转换
fonts-noto-cjk ✅ 新装 中文图表、PDF
LibreOffice、poppler-utils ✅ 已有 Office 转换、公式重算、PDF 渲染
/srv/agent-server/{data,workspaces,knowledge,skills,runtime,logs} ✅ 已创建(属主 jerry-remote,0750) 服务数据目录
Python venv /srv/agent-server/runtime/py ✅ 已创建 pandas 2.3、numpy、pyarrow、duckdb 1.5、matplotlib 3.10、seaborn、plotly、openpyxl、xlsxwriter、python-docx、python-pptx、pypdf、pdfplumber、reportlab、markitdown
/srv/agent-server/runtime/requirements.lock ✅ 锁定的 Python 依赖版本,用于重建环境
/srv/agent-server/runtime/matplotlibrc ✅ 已验证中文渲染 默认字体为 Noto Sans CJK
Node 依赖(docx 等) ⏳ M1 随项目 package.json 安装
官方技能(xlsx/docx/pdf/pptx) ⏳ M1 核对许可证后放入 skills/

重建 Python 环境:

python3 -m venv /srv/agent-server/runtime/py
/srv/agent-server/runtime/py/bin/pip install -r /srv/agent-server/runtime/requirements.lock

3. 运行方式

  • 开发期:在项目目录直接 pnpm dev 运行,不经过 systemd,用于快速迭代。
  • 常驻运行:使用 systemd 系统服务,User=jerry-remote,加固配置见 06 §5.1。构建产物部署到 /srv/agent-server/app(因为 ProtectHome 会隐藏 home 下的项目目录)。

4. 对外访问

  • AgentServer 只监听 127.0.0.1:8787
  • 前面放 Caddy 或 Nginx 做 HTTPS 和反向代理;需要为 SSE 关闭缓冲(Nginx 用 proxy_buffering off,并加大读超时)
  • 只在内网或 VPN(如 Tailscale)中开放

5. 运维

  • 日志:pino JSON 输出到 journald;journalctl -u agent-server
  • 备份:每天对 data/agent.db 做 SQLite 在线备份;CLI 登录态不备份
  • 健康检查:GET /healthz(进程存活)、GET /readyz(数据库、两个 CLI 的登录状态、app-server 进程、Codex 个人插件是否已禁用的自检结果)
  • 登录过期:后台"引擎状态"页和状态栏显示红色徽标;在终端重新登录即可,服务不需要重启
  • 升级:见 03 §5
  • 定时任务(进程内):工作区清理、用量日汇总、引擎健康检查(每 10 分钟)、资料库可见性复检