乐于分享
好东西不私藏

本地部署OpenClaw安装配置使用【测试成功】

本地部署OpenClaw安装配置使用【测试成功】

本地部署方式后面详细了解了下,这个功能其实就是一个npm包,不用买单独的云服务器。作为程序员,可以用的服务器可是有一堆,或者自己开个虚拟机在上面安装就行了。

官网地址: https://github.com/openclaw/openclaw

1.安装npm(第一种安装方式)首先你得安装22.0以上版本的npm,此版本的npm不支持在类似centos7的低版本系统中运行。

例如,以下我是在centos8系统安装的。

# centos8、ubuntu22等系统用高版本的

# centos8、ubuntu22等系统用高版本的wget https://nodejs.org/dist/v24.13.0/node-v24.13.0-linux-x64.tar.xz# 解压缩tar -xf node-v24.13.0-linux-x64.tar.xz# 把这个解压缩的文件放到用户目录/usr/localmv node-v24.13.0-linux-x64 /usr/local/node# 配置软连接方便进行全局调用sudo ln -s /usr/local/node/bin/node /usr/bin/nodesudo ln -s /usr/local/node/bin/npm /usr/bin/npm
2.安装openclaw
# 执行安装npm install -g openclaw@latest# 配置软连接sudo ln -s /usr/local/node/bin/openclaw /usr/bin/openclaw# 查看是否安装成功openclaw --help

出现以下类似界面说明安装成功

我竟然安装失败了。可能因为网络原因吧。

2.使用脚本安装(第2种安装方式)

curl -fsSL https://openclaw.ai/install.sh | bash
这种安装方式还是有可能失败,解决方案如下:
###这样会输出安装的所有日志,方便查看到底哪里报错curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh \  | CLAWDBOT_NPM_LOGLEVEL=verbose bash -s -- --verbose###可以将报错信息丢给大模型去分析常见原因:Git Key 问题(高频)典型特征:日志中出现:git@github.comPermission denied (publickey)npm ERR! code 128根本原因:npm 表面失败,但根因在 git clone 私有仓库Git SSH Key 没配置 / 配错了四、解决步骤1. 检查 SSH Key 配置# 查看现有 SSH Keyls -la ~/.ssh# 测试 GitHub 连接ssh -T git@github.com2. 生成或配置 SSH Key如果没有 SSH Key:# 生成新的 SSH Keyssh-keygen -t ed25519 -C "your_email@example.com"# 将公钥添加到 GitHubcat ~/.ssh/id_ed25519.pub3. 将公钥添加到 GitHub复制公钥内容登录 GitHub → Settings → SSH and GPG keys → New SSH key粘贴公钥并保存五、其他常见问题1. 网络问题# 配置 npm 镜像(如果在中国大陆)npm config set registry https://registry.npmmirror.com2. Node 版本不兼容# 检查 Node 版本node -v# 推荐使用 nvm 管理 Node 版本nvm install 24nvm use 24

出现下面安装

3.运行指引并安装守护进程(1)手动配置OpenClaw与常见的应用模板不同,官方提供了若干需用户自行手动配置的步骤,在首次登入服务器后,输入并回车运行如下命令开始配置:
openclaw onboard --install-daemon

运行上面的命令后,出现同意免责声明,将会出现一个问题:是否知晓风险,选择Yes就行。

(2)配置模式选择:快速入门接下来需要选择Onboarding的模式。

第一个是快速启动,后续通过 openclaw configure 配置信息。

第二个是先手动配置。

我们选择QuickStart。

(3)模型配置然后它会让你配置AI大模型。

你有什么就选什么吧,网上说智谱的GLM4.7比较好用,但是这个太火爆了,买不到。我自己目前用的是阿里的Qwen。【这不不想配置,可以直接跳过】

(4)选择频道配置好模型后,会让你选择聊天频道。

这些全是海外的,我们用不了。

选择最后一个,直接跳过。

(5)配置Skills然后会问你要不要配置技能。选YES

依赖Homebrew也选Yes装上。

然后会让你选择用什么管理器安装。

一般用npm,前面也安装过了。

再然后,会给你一堆Skills:

直接跳过吧,后续跟它对话也能装。

(6)配置Hooks继续下一步,会问你要不要配置hooks。

可以理解为三个插件:

boot-md:启动时自动加载一段markdown文本当默认引导内容。常用于把你的规则、偏好、项目背景在每次启动时塞进去。

command-logger:把你在Clawdbot里执行过的命令和关键操作记一份日志,方便排查问题和复盘。如果你比较在意隐私或不想留痕,就别开它。

session-memory:保存会话相关的状态或记忆,让它下次能延续上下文,体验会更连贯。

建议都开,都非常实用。

(7)选择交互方式它问你想要用什么方式孵化你的机器人?

命令行方式(推荐)web界面方式稍后选择

肯定有图形化界面最好了!这个新手选web界面方式吧。除非你是老手,只想用命令行界面方式交互。

4.配置web界面这时候如果是用ubuntu系统安装的,不一定能打开网页界面。它只能本地http ://127.0.0.1:18789进行访问,所以现在我们改下

(1)配置远程访问首先防火墙放行端口

# 放行TCP端口sudo ufw allow 18789/tcp# 查看规则sudo ufw status numbered
运行项目并下载源码bash

然后修改~/.openclaw/openclaw.json配置文件

vi openclaw.json把bind的配置改为lan

  "gateway": {    "mode": "local",    "auth": {      "mode": "token",      "token": "***********"    },    "port": 18789,    "bind": "loopback",  // 改为lan    "tailscale": {      "mode": "off",      "resetOnExit": false    }  },

保存退出后重启应用

openclaw gateway restart

现在就能在浏览器通过http://你的IP:18789进行访问了。

(2)解决报错这里发现报错了,openclaw提示 disconnected (1008): control ui requires HTTPS or localhost (secure context)所以什么都操作不了。

继续编辑配置,修改~/.openclaw/openclaw.json配置文件

备注:这个测试不管用、解决不了。。

 "gateway": {    "port": 18789,    "mode": "local",    "bind": "lan",    // 加入下面这行配置    "controlUi": {      "allowInsecureAuth": true    },    "auth": {      "mode": "token",      "token": "*************************************"    },    "tailscale": {      "mode": "off",      "resetOnExit": false    },    "http": {      "endpoints": {        "responses": {          "enabled": true        }      }    }  }

然后重启应用

openclaw gateway restart

现在就不报错,能正常访问了。

(3)修改模型选择

如果要修改模型选择,需要在配置文件进行修改。【使用云平台模型】

openclaw config set 'models.providers.mass' --json '{  "baseUrl""https://api.modelarts-maas.com/openai/v1",  "apiKey""api值",  "api""openai-completions",  "models": [    { "id""DeepSeek-V3""name""DeepSeek-V3" },    { "id""deepseek-r1-250528""name""deepseek-r1-250528" }  ]}'设置 models.mode 为 mergeopenclaw config set models.mode merge设置默认模型(以deepseek-chat为例)openclaw models set mass/DeepSeek-V3openclaw gateway restart
{"agents": { "defaults": {   "model": { "primary""bailian/qwen3-max-2026-01-23" },   "models": {     "bailian/qwen3-max-2026-01-23": { "alias""通义千问 Max Thinking 版" }   } }},"models": { "mode""merge", "providers": {   "bailian": {     "baseUrl""https://dashscope.aliyuncs.com/compatible-mode/v1",     "apiKey""${DASHSCOPE_API_KEY}",     "api""openai-completions",     "models": [       {         "id""qwen3-max-2026-01-23",         "name""通义千问 Max Thinking 版",         "reasoning"false,         "input": ["text"],         "cost": { "input": 0.0025, "output": 0.01, "cacheRead": 0, "cacheWrite": 0 },         "contextWindow": 262144,         "maxTokens": 65536       }     ]   } }}}

第二种:使用本地ollama平台

"my-ollama": {  "baseUrl": "http://127.0.0.1:11434/v1",  "apiKey": "ollama",  "api": "openai-completions",  "models": [    {      "id": "qwen3:32b",      "name": "Local Qwen3 32B",      "reasoning": false,      "input": ["text"],      "contextWindow": 32000,      "maxTokens": 4096,      "cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0}    }  ]}

3.使用

openclaw dashboard --no-open    ###查看token

浏览器里访问上面截图中带token的那个URL就可以了

再来看看如何用Openclaw来远程登录Linux机器,并执行任务。

首先,你要让Openclaw生成密钥对,并将公钥给到我们

我要远程登录一台Linux机器,我要使用SSH密钥验证的方式,请生成一对密钥对,并提供给我公钥

它不仅提供了公钥内容,还告诉我们如何配置,我把公钥放到了目标服务器上后,然后告诉它可以登录服务器了

然后我再次发出需求

4.nginx反向代理

sudo apt install nginxsudo vim /etc/nginx/nginx.conf 注释掉如下行 #include /etc/nginx/sites-enabled/*;上传SSL证书至/etc/nginx/ssl/cd /etc/nginx/conf.d/sudo vim openclaw_nginx_reverse_proxy.conf添加如下行server {     # 将原有 listen 80 修改为 listen 80 改为 listen 443 ssl    listen 443 ssl;    # 原有 server_name,可继续新增更多当前证书支持的域名    server_name openclaw.openjarvis.net;    # ======================= 证书配置开始 =======================    # 指定证书文件(中间证书可以拼接至该pem文件中),请将 /etc/ssl/cert/ssl.pem 替换为您实际使用的证书文件的绝对路径    ssl_certificate /etc/nginx/ssl/openclaw.openjarvis.net.pem;    # 指定私钥文档,请将 /etc/ssl/cert/ssl.key 替换为您实际使用的私钥文件的绝对路径    ssl_certificate_key /etc/nginx/ssl/openclaw.openjarvis.net.key;    # 配置 SSL 会话缓存,提高性能    ssl_session_cache shared:SSL:1m;    # 设置 SSL 会话超时时间    ssl_session_timeout 5m;    # 自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    # 指定允许的 TLS 协议版本,TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差    ssl_protocols TLSv1.2 TLSv1.3;    # 优先使用服务端指定的加密套件    ssl_prefer_server_ciphers on;    # ======================= 证书配置结束 =======================    # 其它配置    location / {        proxy_pass http://127.0.0.1:18789;        # WebSocket升级头        proxy_http_version 1.1;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection 'upgrade';        # 客户端真实信息        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;        # 缓冲区设置        proxy_buffering off;        # 超时设置        proxy_read_timeout 86400s;        proxy_send_timeout 86400s;        proxy_connect_timeout 30s;    }}

5.接入钉钉

安装openclaw-channel-dingtalk插件

插件Github地址:https://github.com/soimy/openclaw-channel-dingtalk

git clone https://github.com/soimy/openclaw-channel-dingtalk.gitcd openclaw-channel-dingtalkopenclaw plugins install -l .

钉钉应用及机器人

  • 创建钉钉应用

  1. 访问 钉钉开发者后台

  2. 创建企业内部应用

  3. 添加「机器人」能力

  4. 配置消息接收模式为 Stream 模式

  5. 发布应用

  • 配置权限管理

在应用的权限管理页面,需要开启以下权限:

✅ Card.Instance.Write — 创建和投放卡片实例

✅ Card.Streaming.Write — 对卡片进行流式更新 步骤:

进入应用 → 权限管理 搜索「Card」相关权限 勾选上述两个权限 保存权限配置

  • 建立卡片模板 如需使用 AI 互动卡片功能,需要在钉钉卡片平台创建模板:

  1. 访问 钉钉卡片平台

  2. 进入「我的模板」

  3. 点击「创建模板」

  4. 卡片模板场景选择 「AI 卡片」

  5. 无需选择预设模板,直接点击保存

  6. 复制模板 ID(格式如:xxxxx-xxxxx-xxxxx.schema)

  7. 在OpenClaw控制台的Channel标签->Dingtalk配置面板-> Card Template Id填入

  • 获取凭证 从开发者后台获取:

Client  ID (AppKey) 

Client Secret (AppSecret) 

Robot Code (与 Client ID 相同) 

Corp ID (企业 ID) 

Agent ID (应用 ID)

9. 重启 Gateway

openclaw gateway restart

10、与机器人进行对话进行验证

Docker 部署 OpenClaw 程教程

 使用 Docker Compose

version: '3.8'services:  openclaw:    image: 1186258278/openclaw-zh:latest    container_name: openclaw    ports:      - "18789:18789"    volumes:      - openclaw-data:/root/.openclaw    restart: unless-stopped    command: openclaw gateway run    # 新增优化配置    environment:      - TZ=Asia/Shanghai  # 统一时区,避免日志时间错乱      - NODE_ENV=production    logging:  # 日志配置(限制日志大小,避免占满磁盘)      driver: "json-file"      options:        max-size: "100m"  # 单个日志文件最大100M        max-file: "3"     # 最多保留3个日志文件    privileged: false     # 非特权模式(提升安全性)    mem_limit: 1G         # 限制容器内存使用(避免占用过多资源)volumes:  openclaw-data:    driver: local ###先执行初始化基础数据的命令//1. 手动初始化docker-compose run --rm openclaw openclaw setupdocker-compose run --rm openclaw openclaw config set gateway.mode local//2. 配置绑定和认证docker-compose run --rm openclaw openclaw config set gateway.bind landocker-compose run --rm openclaw openclaw config set gateway.auth.token YOUR_TOKEN//3. 设置模型配置,newapiapp是自定义的供应商名称,配置相应的apikey、baseurl、默认Id,可以设置多个docker-compose run --rm openclaw openclaw config set models.providers.newapiapp '{  "api": "openai-completions",  "apiKey": "sk-xxxx",  "baseUrl": "https://api.openai.com/v1",  "models": [    {      "id": "modelscope-k2.5",      "name": "modelscope-k2.5"    }  ]}'//设置默认主模型,后面的对话就可以默认使用对应供应商的模型了docker-compose run --rm openclaw openclaw config set agents.defaults.model.primary "newapiapp/modelscope-k2.5"//4. 允许不完全访问,可以通过ip、域名反代等远程访问docker-compose run --rm openclaw openclaw config set gateway.controlUi.allowInsecureAuth true###配置初始化完成后,可以启动服务,执行如下命令docker-compose up -d

使用 Docker Compose 部署

# 启动服务 docker-compose up -d 

 # 查看日志 docker-compose logs -f 

 # 停止服务 docker-compose down  

# 重启服务 docker-compose restart

8.2 Nginx 反向代理 + HTTPS

# HTTP 80端口:强制跳转到HTTPSserver {    listen 80;    listen [::]:80;  # 兼容IPv6(可选,建议加)    server_name your-domain.com;  # 替换为你的实际域名(如openclaw.example.com)    # 强制HTTPS跳转(保留原请求路径和参数)    return 301 https://$server_name$request_uri;}# HTTPS 443端口:代理到openclaw容器(18789端口)server {    listen 443 ssl http2;    listen [::]:443 ssl http2;  # 兼容IPv6    server_name your-domain.com;  # 必须和证书域名一致    # SSL证书路径(certbot自动生成,无需手动改)    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;    # 可选:SSL安全配置(提升HTTPS安全性,建议添加)    ssl_protocols TLSv1.2 TLSv1.3;  # 禁用低版本TLS    ssl_prefer_server_ciphers on;    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;    ssl_session_cache shared:SSL:10m;    ssl_session_timeout 10m;    # 反向代理到openclaw容器(localhost:18789)    location / {        proxy_pass http://localhost:18789;        proxy_http_version 1.1;        # WebSocket兼容(openclaw若用WebSocket,这两行必须加)        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection "upgrade";        # 传递客户端真实IP/域名/协议        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;        # 禁用缓存(适配动态服务)        proxy_cache_bypass $http_upgrade;        proxy_connect_timeout 30s;  # 连接超时(可选优化)        proxy_send_timeout 30s;        proxy_read_timeout 30s;    }}完整实操步骤(从安装证书到验证生效)前置条件域名 your-domain.com 已解析到宿主机公网 IP(必须!否则 certbot 无法验证);宿主机 80/443 端口已开放(防火墙 / 安全组需放行);Nginx 已安装并运行(systemctl status nginx 确认 active)。步骤 1:安装 Certbot(获取 Let's Encrypt 证书)bash运行# 更新apt源(避免安装失败)sudo apt update# 安装certbot和Nginx插件(自动配置Nginx)sudo apt install -y certbot python3-certbot-nginx步骤 2:获取 SSL 证书(自动配置 Nginx)bash运行# 替换为你的实际域名(如openclaw.example.com)sudo certbot --nginx -d your-domain.com执行后按提示操作:输入邮箱 → 同意条款 → 是否共享邮箱(选 N) → 选择是否自动跳转 HTTPS(选 2,强制跳转);成功后,certbot 会自动修改 Nginx 配置,无需手动改ssl_certificate路径。步骤 3:验证证书配置bash运行# 检查Nginx配置语法(避免格式错误)sudo nginx -t# 重载Nginx配置(无需重启,平滑生效)sudo systemctl reload nginx# 验证HTTPS是否生效curl -I https://your-domain.com# 输出包含「Server: nginx」「Strict-Transport-Security」即为成功步骤 4:配置证书自动续期(Let's Encrypt 证书 90 天过期)bash运行# 测试自动续期(仅测试,不实际续期)sudo certbot renew --dry-run# 添加定时任务(每天自动检查续期)sudo crontab -e# 粘贴以下内容(每天凌晨3点检查,证书快过期则自动续期)0 3 * * * /usr/bin/certbot renew --quiet && systemctl reload nginx

运维管理

日常管理命令

操作类型

命令

说明

启动

docker start openclaw

启动已停止的容器

停止

docker stop openclaw

优雅停止容器

重启

docker restart openclaw

重启容器

删除

docker rm -f openclaw

强制删除容器(数据卷保留)

查看日志

docker logs -f openclaw

实时查看日志

进入容器

docker exec -it openclaw bash

进入容器 Shell

9.2 版本更新

更新到最新版本

# 1. 停止并删除旧容器 docker stop openclaw && docker rm openclaw 

 # 2. 拉取最新镜像 docker pull 1186258278/openclaw-zh:latest  

# 3. 启动新容器

docker run -d --name openclaw -p 18789:18789 \ 

 -v openclaw-data:/root/.openclaw --restart unless-stopped \ 

 1186258278/openclaw-zh:latest \ 

 openclaw gateway run

9.3 监控与日志

查看容器资源使用

# 查看资源使用情况 docker stats openclaw  

# 查看详细信息 docker inspect openclaw

日志管理

# 查看最近 100 行日志 docker logs --tail 100 openclaw  

# 查看最近 10 分钟的日志 docker logs --since 10m openclaw  

# 导出日志到文件 docker logs openclaw > openclaw.log

# 清理日志(谨慎使用)

docker run --rm -v /var/lib/docker/containers :/containers \   

     ubuntu find /containers -name "*.json" -type f -size +100M -delete

9.4 完全卸载

# 1. 停止并删除容器 docker stop openclaw && docker rm -f openclaw  

# 2. 删除数据卷(⚠️ 会删除所有配置和日志) docker volume rm openclaw-data 

 # 3. 删除镜像 docker rmi 1186258278/openclaw-zh:latest 

 # 4. 清理悬空镜像和容器 docker system prune -a

📚 参考资源

官方文档:

•OpenClaw 汉化官网: https://openclaw.qingtong.cloud

•GitHub 仓库: https://github.com/1186258278/OpenClawChineseTranslation

•Docker Hub: https://hub.docker.com/r/1186258278/openclaw-zh

版权声明:本文内容转载自自稀土CSDN博客:qq_31292011,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。原文链接:https://blog.csdn.net/qq_31292011/article/details/157899970如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处