以下是在单机环境下部署和使用OpenClaw的详细指南:

核心概念
- SAST: 直接扫描你的源代码(如 Java, Go, Python, JavaScript 等),找出编码模式中的安全缺陷(如 SQL 注入、XSS、硬编码密码等)。
- SCA: 扫描项目依赖的文件(如
package.json,pom.xml,go.mod),分析第三方库的版本是否存在已知的公开漏洞(基于 NVD 等漏洞库)。
单机版部署步骤
使用 Docker(推荐,最简单)
这是最快、最干净的方式,避免了复杂的本地环境配置。
-
拉取镜像:
docker pull ghcr.io/openclaw/openclaw:latest
-
准备目录: 在你的机器上创建一个工作目录,
/path/to/scan,并将需要扫描的代码放在里面。 -
运行扫描:
docker run -v /path/to/scan:/src ghcr.io/openclaw/openclaw:latest
-v /path/to/scan:/src将本地代码目录挂载到容器的/src目录。- 容器启动后会自动扫描
/src下的代码。
-
获取报告: 扫描完成后,报告会生成在容器的
/src/reports目录下,为了在本地查看,你可以在运行时将其挂载出来:docker run -v /path/to/scan:/src -v /path/to/output:/src/reports ghcr.io/openclaw/openclaw:latest
扫描后,报告就会出现在本地的
/path/to/output目录中,通常是 JSON、HTML 或 SARIF 格式。
从源码本地构建和运行
适合需要深度定制或开发贡献者。
-
系统要求:
- Go 1.19+: OpenClaw 后端是用 Go 编写的。
- Node.js 16+ & npm: 前端界面需要。
- Git
-
获取源码:
git clone https://github.com/openclaw/openclaw.git cd openclaw
-
配置环境变量(可选但重要): 创建
.env文件,设置数据库和缓存路径(确保目录存在且有写权限)。# 使用本地SQLite数据库,这是单机版的关键 DB_DRIVER=sqlite DB_FILE=/path/to/your/data/openclaw.db CACHE_DRIVER=file CACHE_PATH=/path/to/your/cache
注意: 生产环境单机部署,强烈建议使用 SQLite(轻量、文件形式)作为数据库,而不是 MySQL/PostgreSQL。
-
下载漏洞数据库: OpenClaw 的 SCA 功能依赖于漏洞数据,首次运行前需要下载。
# 进入后端目录 cd backend # 下载最新的漏洞数据库(这是一个离线数据包) go run cmd/update/main.go
这个过程会从官方源下载一个压缩包并解压到本地,供后续离线使用。
-
构建并运行后端:
# 在 backend 目录下 go build -o openclaw cmd/server/main.go ./openclaw
后端 API 服务默认会在
http://localhost:8080启动。 -
构建并运行前端:
# 新开一个终端,进入 frontend 目录 cd frontend npm install npm run build # 开发模式运行 npm run serve # 或者构建生产静态文件,由后端服务(如Gin)托管
-
使用: 打开浏览器,访问
http://localhost:8080(如果前端由后端托管)或前端开发服务器的地址(如http://localhost:3000)。- 在界面上创建项目。
- 上传代码或指定代码仓库地址(如果是内网Gitlab等,需在配置中设置)。
- 启动扫描任务。
- 查看详细的扫描结果和报告。
单机版特点与优势
- 数据完全私有: 所有代码、扫描结果、漏洞数据都保存在你自己的机器上,无数据出域风险。
- 离线能力: 在配置好本地的漏洞数据库后,SCA扫描可以完全离线进行,SAST扫描本身不依赖网络。
- 自定义规则: 你可以根据自身业务需求,编写或修改专用的SAST检测规则(通常支持 YAML、XML 或自定义格式)。
- 集成到CI/CD: 可以将单机版OpenClaw作为一个服务,在 Jenkins、GitLab Runner 等内网CI/CD流水线中调用,实现自动化的代码安全门禁。
注意事项
- 首次漏洞数据更新: 需要联网下载完整的漏洞库,数据量可能较大(几百MB到GB级)。
- 定期更新: 为了发现新的依赖漏洞,需要定期(例如每周)联网更新本地的漏洞数据库,可以设置一个定时任务(Cron Job)来执行
go run cmd/update/main.go。 - 性能: 扫描大型项目或依赖极多的项目时,会消耗较多的CPU和内存资源,请根据机器配置合理安排。
- 规则库更新: SAST的规则引擎本身也可能更新,需要关注项目Release,及时升级版本以获得更好的检测能力。
部署OpenClaw单机版,Docker方式是最快捷的选择,适合快速试用和标准使用,而从源码构建的方式则提供了最大的灵活性和控制权,适合需要长期、定制化部署的团队。
对于企业内网安全建设,OpenClaw单机版是一个强大且可控的代码安全守护工具,部署成功后,记得规划好漏洞数据库的更新机制和扫描任务的调度策略。