34.5 部署上线

生成模型:Claude Opus 4.6 (anthropic/claude-opus-4-6) Token 消耗:输入 ~370k tokens,输出 ~5k tokens(本节)


MiniClaw 的功能开发完成后,本节将指导读者将其部署到生产环境。我们将覆盖 Docker 容器化、守护进程配置和安全加固三个方面。

34.5.1 Docker 容器化

Dockerfile

参考 OpenClaw 的多阶段构建(第 29 章),为 MiniClaw 编写 Dockerfile:

# Dockerfile

# 阶段 1:构建
FROM node:22-slim AS builder
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY . .
RUN pnpm build

# 阶段 2:运行
FROM node:22-slim AS runtime
RUN groupadd -r miniclaw && useradd -r -g miniclaw -m miniclaw
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json .
COPY --from=builder /app/ui ./ui

# 非 root 用户运行
USER miniclaw

# 数据目录
VOLUME /home/miniclaw/.miniclaw
ENV NODE_ENV=production

EXPOSE 3000 8080
CMD ["node", "dist/index.js"]

关键安全措施:

措施
说明

多阶段构建

生产镜像不包含构建工具和源码

非 root 用户

使用 miniclaw 用户运行,降低权限

--frozen-lockfile

确保依赖版本与开发环境一致

VOLUME 挂载

数据持久化在宿主机上

docker-compose.yml

启动命令

34.5.2 守护进程配置

对于不使用 Docker 的部署方式,需要将 MiniClaw 配置为系统守护进程。

systemd(Linux)

launchd(macOS)

34.5.3 安全加固

参考 OpenClaw 的安全模型(第 24 章),MiniClaw 的最小安全清单:

1. 认证保护

2. 工具安全

3. 输入消毒

4. 反向代理

在生产环境中,建议使用 Caddy 或 Nginx 作为反向代理:

安全检查清单

项目
状态
说明

Gateway Token 认证

必需

防止未授权访问

HTTPS / WSS

必需

加密传输

非 root 运行

必需

最小权限

工具命令白名单

建议

限制危险操作

文件路径限制

建议

限制在工作目录内

输入消毒

建议

防止提示词注入

速率限制

建议

防止滥用

日志审计

可选

记录所有工具调用

自动备份

可选

定期备份会话和记忆数据


本节小结

  1. Docker 容器化 使用多阶段构建,以非 root 用户运行,数据通过 volume 持久化。

  2. 守护进程 支持 systemd(Linux)和 launchd(macOS),配置自动重启和资源限制。

  3. 安全加固 覆盖四个层面:Gateway 认证、工具安全、输入消毒、反向代理。

  4. 反向代理 推荐 Caddy(自动 HTTPS),配置 WebSocket 代理和速率限制。

  5. 部署后应逐项检查安全清单,确保生产环境的安全性。

Last updated