1. 项目概述:闲置Mac变身OpenClaw开发环境
去年我把2015款的MacBook Pro升级到M1机型后,那台Intel处理器的老机器就一直吃灰。直到上个月在GitHub偶然发现OpenClaw项目——这个号称"开发者瑞士军刀"的开源工具集,正好需要持续运行的服务端环境。于是花了两个周末,成功把旧Mac改造成了7x24小时运行的OpenClaw服务器,现在连显示器都不用接,纯当开发工具服务器用。
OpenClaw本质上是一套集成化的开发辅助工具链,包含代码片段管理、API调试、数据库可视化等模块。相比单独部署各类工具,它的优势在于组件间数据互通,比如可以直接把API调试结果保存为代码模板。目前项目在GitHub已有3k+星,最近半年更新频繁,对macOS的支持也相对完善。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础配置
2.1 系统环境检查
首先确认你的闲置Mac满足:
- macOS 10.15及以上(Catalina到最新Sonoma都验证过)
- 至少8GB内存(实测运行Docker后占用约4GB)
- 50GB可用存储空间
- 已安装Xcode Command Line Tools
检查方法:
bash复制# 查看系统版本
sw_vers -productVersion
# 检查内存
sysctl hw.memsize | awk '{print $2/1024/1024" GB"}'
# 磁盘空间
df -h /
如果没装Xcode工具链,会提示你安装:
bash复制xcode-select --install
2.2 必备软件安装
通过Homebrew一站式安装依赖:
bash复制# 安装Homebrew(已安装可跳过)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 添加常用仓库
brew tap homebrew/cask
brew tap homebrew/cask-versions
# 基础工具链
brew install git python@3.9 docker node@16
特别注意:
- Python建议用3.9版本(OpenClaw部分插件兼容性问题最少)
- Node.js选择16.x LTS版
- Docker必须安装桌面版(官网下载dmg),因为需要GUI配置资源限制
3. OpenClaw核心部署流程
3.1 源码获取与初始化
推荐使用SSH方式克隆(避免后续提交代码时的认证问题):
bash复制mkdir -p ~/Projects/openclaw && cd $_
git clone git@github.com:openclaw/OpenClaw.git
cd OpenClaw
初始化虚拟环境:
bash复制python3.9 -m venv venv
source venv/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
3.2 数据库配置
OpenClaw默认使用SQLite,但建议改用PostgreSQL:
bash复制# 通过Docker启动PostgreSQL
docker run --name openclaw-db \
-e POSTGRES_PASSWORD=clawpass \
-e POSTGRES_USER=clawuser \
-e POSTGRES_DB=openclaw \
-p 5432:5432 \
-v ~/docker_volumes/openclaw_db:/var/lib/postgresql/data \
-d postgres:13-alpine
修改config.py中的数据库配置:
python复制SQLALCHEMY_DATABASE_URI = 'postgresql://clawuser:clawpass@localhost:5432/openclaw'
3.3 服务启动与验证
启动开发服务器:
bash复制flask run --host=0.0.0.0 --port=5000
测试各模块是否正常:
bash复制# API测试
curl http://localhost:5000/api/v1/ping
# 前端检查
open http://localhost:5000
4. 生产环境优化配置
4.1 使用Gunicorn+Supervisor
安装生产级WSGI服务器:
bash复制pip install gunicorn
创建Supervisor配置(/etc/supervisor/conf.d/openclaw.conf):
ini复制[program:openclaw]
command=/Users/yourname/Projects/openclaw/venv/bin/gunicorn -w 4 -b 0.0.0.0:5000 "app:create_app()"
directory=/Users/yourname/Projects/openclaw
user=yourname
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
stderr_logfile=/var/log/openclaw.err.log
stdout_logfile=/var/log/openclaw.out.log
4.2 资源限制与自动启动
为防止闲置Mac休眠影响服务:
bash复制# 禁用睡眠
sudo systemsetup -setcomputersleep Never
# 设置Docker内存限制(在Docker Desktop的Preferences -> Resources中调整)
推荐配置:
- CPUs: 2核
- Memory: 4GB
- Swap: 1GB
创建开机启动项:
bash复制# Supervisor自启
sudo brew services start supervisor
# Docker自启
ln -sfv /usr/local/opt/docker/*.plist ~/Library/LaunchAgents
5. 常见问题排查手册
5.1 端口冲突问题
如果5000端口被占用,修改启动命令:
bash复制flask run --host=0.0.0.0 --port=5001
同时需要修改前端config.js中的API_BASE_URL
5.2 数据库连接失败
典型错误信息:
code复制sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server
解决方案:
- 检查PostgreSQL容器是否运行:
docker ps - 验证网络连通性:
telnet localhost 5432 - 重置数据库密码:
docker exec -it openclaw-db psql -U postgres -c "ALTER USER clawuser WITH PASSWORD 'newpassword'"
5.3 前端资源加载异常
表现为页面样式错乱或404错误,通常需要:
bash复制cd frontend && npm install
npm run build
6. 进阶使用技巧
6.1 外网访问配置
通过SSH隧道安全访问:
bash复制ssh -N -L 5000:localhost:5000 yourname@your-mac-ip
然后在本地浏览器访问http://localhost:5000
6.2 插件开发环境
创建插件模板:
bash复制python scripts/create_plugin.py my_plugin
调试模式启动:
bash复制FLASK_DEBUG=1 flask run
6.3 数据备份策略
设置每日自动备份(添加到crontab):
bash复制0 3 * * * docker exec openclaw-db pg_dump -U clawuser openclaw > ~/backups/openclaw_$(date +\%Y\%m\%d).sql
7. 性能优化实测数据
在我的2015款MacBook Pro(i5/8GB)上运行效果:
- 冷启动时间:8.2秒
- 内存占用:
- 基础服务:420MB
- 运行代码分析插件后:1.2GB
- API响应速度:
- /api/v1/ping:23ms
- 复杂查询接口:156ms
对比同样配置的Linux服务器(Ubuntu 22.04):
- 冷启动时间快1.8秒
- 内存占用少15%
- 但长时间运行稳定性略差(建议每周重启服务)
