2026年从零开始的Openclaw源码部署(一)
本文详细介绍了OpenClaw开源项目的源码部署流程。主要内容包括: 环境配置:创建用户角色、配置Git、安装Node.js环境(使用nvm管理版本)和pnpm包管理器。 OpenClaw部署步骤: 克隆源码仓库 使用pnpm安装依赖 构建UI和项目 通过交互式命令完成初始化配置 HTTPS配置: 域名解析设置 使用Certbot申请Let's Encrypt证书 获取证书文件路径(fullcha
从零开始的Openclaw源码部署
文章目录
由于这个Openclaw更新的很快,可能半个月一个版本,如果不是确实只是测试,建议 源码部署!同时 由于权限极高建议给他单独整一台服务器或者单独拿一台机子运行。
今天这篇,就是为真正想动手的人准备的——让你即使第一次接触也能快速了解并实现本地部署使用,避免你少走弯路节省时间。
第一、OpenClaw 是什么
OpenClaw 是一个开源、可本地部署的个人AI智能体(Personal AI Agent),核心能力是“真正做事”——能操作软件、执行终端命令、管理文件、发邮件、写代码,并具备两周记忆与跨平台交互能力。
第二、OpenClaw 架构与能力
OpenClaw 不是普通聊天机器人,而是一个可长期运行、具备系统级权限的本地AI代理**,其四层架构明确分工:
| 组件 | 功能说明 | 关键细节 |
|---|---|---|
| Gateway(网关) | 连接外部交互入口 | 支持 Telegram、iMessage、WhatsApp等,将消息路由至Agent(国内的目前只有飞书有开源插件,其他都是云厂商自己对接实现部署在云服务里的) |
| Agent(智能体) | 核心推理与决策单元 | 接入 Claude、OpenAI 或本地大模型,处理上下文、调用记忆与技能(也可以国内的千问、MinMax、GLM) |
| Skills(技能) | 可扩展的操作能力 | 支持网页调研、邮箱读写、浏览器自动化;用户可要求其“自主开发新技能”,包括写代码、安装模块、运行脚本 |
| Memory(记忆) | 持久化用户知识库 | 存储两周内对话记录与工作习惯,以 Markdown 文件形式本地保存;支持主动推送提醒 |
一、环境配置
ubuntu24.04
1、增加服务器donxu的角色
# 创建角色
sudo useradd -m -s /bin/bash newuser
#修改密码
passwd newuse
# 将用户 "bihui" 添加到 root权限
sudo usermod -aG sudo newuser
然后退出root 用这个newuser重新登录。
注:如果本身就是已经被分配的角色则不需要新建角色
2、配置git
# 配置基本信息
git config --global user.name YangHao
git config --global user.email waitKey1@outlook.com
# 生成公匙
ssh-keygen -t rsa -C waitKey1@outlook.com

将上面的公匙复制
进入github–>Settings->SSH and GPG keys—>New SSH key
将公匙复制进去,到这里git配置完毕
3、配置node
# 1、nvm的安装
curl -o- https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh | bash
# 2、赋予执行权限
chmod +x ~/.nvm/nvm.sh
# 3、刷新环境变量让nvm可执行
source ~/.bashrc
# 4、node 安装
nvm install --lts
# 5、node 使用
nvm use --lts
# 6、node 确定
node -v
# 7、安装pnpm
npm install -g pnpm
# 8、增加淘宝源
pnpm config set registry https://registry.npmmirror.com/
npm config set registry https://registry.npmmirror.com/
二、Openclaw部署
1、源码部署
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # auto-installs UI deps on first run
pnpm build
pnpm openclaw onboard --install-daemon
下面对面板配置选择可以参考博主的选项
在这里因为是国内,配置qwen的更方便一些,如果有其他的选择看情况选
渠道和skill这里跳过。
最后到这里就结束,可以通过如下的url访问 http://localhost:18789/#token=298b377956e401d8acd9888d5722473d7239ca4ee7544ede
到这里就结束了ctrl+z 退出
复制链接
http://localhost:18789/#token=298b377956e401d8acd9888d5722473d7239ca4ee7544ede
可以正常进去,不过如果是在云服务中配置,想要通过远程访问则不行
在这里如果不是本地使用需要调整配置

重启刷新配置
pnpm openclaw gateway restart
在输入网址可以看到就能进去了,如果还不行可以看看防火墙。
这时候可以看到报错disconnected (1008): control ui requires HTTPS or localhost (secure context),这是因为只支持HTTPS或localhost使用,下面我们开始配置域名!
2、加SSl证书配置https
前置条件:我默认你已经有域名了,如果没有需要在国内的阿里云、腾讯云、华为云,国外的Hostinger等云服务商都提供域名注册和域名解析服务。找一个你喜欢的就可以,在这里我用的是阿里云注册的域名进行演示。
(国内的域名需要提前备案,15天左右。如果比较着急且只是演示可以用香港或者国外如Hostinger 云服务厂商提供的域名这样可以免掉备案的步骤)
(1)将域名解析到你的服务器

(2)验证该域名是否解析成功
执行 nslookup + 域名,即可查询域名解析对象
nslookup bak.sligenai.cn

看到解析到你的公网服务器的ip就完成了
(3)let’s Encrypt 证书申请
(1)certbot安装
我们需要安装Certbot并用于申请let’s Encrypt 。
打开终端,运行以下命令:
sudo apt update
sudo apt install certbot python3-certbot-nginx
(2)let’s Encrypt 证书申请
sudo certbot --nginx -d bak.sligenai.cn
如果是第一次,可能会要你输入你的邮箱和让你输入A或Yes同意一些条款你按着输入就行。
然后就生成好证书了。记得保存好fullchain.pem和private.pem的路径,这个等下会用到。
下面是我的fullchain.pem和private.pem的路径
/etc/letsencrypt/live/bak.sligenai.cn/fullchain.pem
/etc/letsencrypt/live/bak.sligenai.cn/privkey.pem
fullchain.pem和privkey.pem这两个文件对于配置Web服务器以安全地提供服务是非常重要的。下面是这两个文件的详细说明:
fullchain.pem
- 含义:
fullchain.pem文件包含了你的域名证书以及任何中间证书的完整链,但不包括根证书。这个文件是将你的证书(cert.pem)和中间证书(chain.pem)合并而成的。在大多数Web服务器的SSL配置中,使用这个文件可以确保客户端(如Web浏览器)能够信任你的证书,即能够通过证书链验证到达一个根CA,该根CA已被客户端信任。 - 用途:在配置SSL/TLS时,
fullchain.pem通常用于服务器配置中指定证书文件。例如,在Nginx中,会用它来设置ssl_certificate指令。
privkey.pem
- 含义:
privkey.pem文件包含了你的私钥,这是在生成CSR(证书签名请求)时创建的。私钥是安全通信的基础,用于在SSL/TLS握手过程中对服务器端信息进行加密,确保只有对应的公钥(即你的服务器证书)能够解密。私钥必须保密,任何泄露都可能导致通信被解密。 - 用途:在Web服务器的SSL配置中,
privkey.pem用于设置私钥文件的位置。例如,在Nginx配置中,会用它来设置ssl_certificate_key指令。
总结
- fullchain.pem:包含你的域名证书和中间证书的全部内容,用于服务器配置中指定证书链。
- privkey.pem:包含你的私钥,用于服务器配置中指定私钥文件的位置。
在配置SSL/TLS时,确保正确使用这些文件,同时保护好你的私钥,避免安全风险。
注1:如果你没有开放443,80端口,申请的时候会报错
注2:如果你没有将域名解析到这个服务器的ip也会报错,会出现类似下面的回复。
注3:如果报错如下是因为标准证书在80端口不可用,可以降级到DNS验证。
用 DNS 验证申请单域名证书:
sudo certbot certonly --manual --preferred-challenges=dns -d *.silengene.com


添加完后等待一分钟,然后Enter继续,就可以申请成功了
3、配置nginx
1、nginx安装
sudo apt update
sudo apt install nginx
2、配置nginx.conf
打开nginx.conf
vim /etc/nginx/nginx.conf
下面是一个nginx.conf模版
# nginx.conf
worker_processes auto; # 与worker_connections乘积表示实际处理事件的总数
events {
worker_connections 1024; # 每个工作进程连接数
}
http {
include mime.types; # 文件扩展名与文件类型映射表
default_type application/octet-stream;
client_max_body_size 10M;
sendfile on; # 减少网络报文数量
keepalive_timeout 65; # 链接超时时间,自动断开,如果为0则无限时长。
# HTTP 强制跳转 HTTPS(必须配置)
server {
listen 80;
server_name bak.sligenai.cn www.bak.sligenai.cn;
return 301 https://$server_name$request_uri;
}
# HTTP server配置(重定向到HTTPS)
server {
listen 80; # 监听80端口
server_name bak.sligenai.cn; # 替换为你的域名
return 301 https://$host$request_uri; # 强制重定向到HTTPS
}
# HTTPS server配置
server {
listen 443 ssl; # 监听443端口
server_name bak.sligenai.cn; # 替换为你的域名
ssl_certificate /etc/letsencrypt/live/bak.sligenai.cn/fullchain.pem; #替换为你的fuuchian.pem
ssl_certificate_key /etc/letsencrypt/live/bak.sligenai.cn/privkey.pem; #替换为你的privkey.pem
root /usr/share/nginx/html;
location / {
proxy_pass http://localhost:18789/;
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_read_timeout 86400s;
proxy_send_timeout 86400s;
}
location /vue-test { #替换为你的项目路由,注意需要一开头的base一致
index index.html index.htm;
try_files $uri $uri/ /vue-test/index.html; #这个则是/路由/index.html 前面的部分一致不用动。
}
error_page 404 /404.html; # 自定义404页面
location = /404.html {
internal;
}
error_page 500 502 503 504 /50x.html; # 自定义500页面
location = /50x.html {
internal;
}
}
}
注1:上面一共两个路由 /vue-test、 /abc ,分别为前端和后端,用自己的域名替换掉bak.sligenai.cn 即可。
注2:如果有多个项目则复制/vue-test 在旁边粘贴一个,改掉路由即可。
注3: 如果有其他域名,则额外把上面这个server复制一遍,即可。
3、重新运行nginx
检测nginx.conf是否配置正常
nginx -t
如果报错,则按照提示修改即可。
重新运行nginx
sudo systemctl reload nginx
然后我们从域名进去就发现可以正常访问了
同时报错信息从:disconnected (1008): control ui requires HTTPS or localhost (secure context) 变为disconnected (1008): pairing required
这是因为,controlUi没有予许https可以通过验证进入,只需要在openclaw的配置文件中加入
"controlUi": {
"allowedOrigins": [
"http://localhost:18789",
"http://127.0.0.1:18789",
"https://openclaw4.sligenai.cn"
],
"allowInsecureAuth": true
},
即可具体位置如下:
改完之后重启一下服务完成配置:
pnpm openclaw gateway restart
访问url类似如下:
https://域名/#token=xxxx
https://openclaw4.sligenai.cn/#token=ae189074e3dba332f56ccded303172d1xxxxx
4、配置web_search(可选)
openclaw configure --section web

Brave Search API密钥可以通过以下方式获得:
访问Brave Search API官方网站:https://brave.com/search/api/
在网站上找到API密钥申请的相关页面
注册并申请API密钥,您将获得一个API密钥。
这里比较麻烦的一点就是,你需要整一个可以支付外币的卡,这里建议直接申请Visa实体卡,然后就可以用于支付。
三、结语
到这里你就可以开始愉快的和你的AI助手交流了,整个流程走完大概需要2~3个小时恭喜你可以坚持下来,专注是AI时代宝贵的能力。
下一章则是演示如何配置企业微信的channel、飞书,在通讯工具上去和openclaw进行交互。
更多推荐

所有评论(0)