☰
OpenClaw自托管自动化助手:Docker部署与配置全流程指南
2026/10/19 10:54:32 网站建设 项目流程

很多朋友私信问我“OpenClaw怎么部署”,尤其看到标题里“2026年”“1分钟搭建”这种说法,第一反应是下载个安装包双击就能跑起来,结果买了服务器才发现,真正伤脑筋的不是那行启动命令,而是启动之后怎么配置、怎么让它按你的想法干活。我这次就以一款自托管的开源自动化助手框架为例,项目代号就叫OpenClaw(社区里也有人喊它Clawdbot),从零开始走一遍部署和上手流程。这篇指南适合两类人:一类是刚接触自托管服务、对Linux和Docker还不太熟的新手,照着一步步操作就能跑通;另一类是本身有技术底子、想快速评估这套框架值不值得在自己的服务器上常驻的人。

先说结论:如果你的服务器上已经装好了Docker环境,公网上也有现成的域名和反代配置,那“1分钟搭建”并不是夸张——从我这边复制配置、执行命令到容器状态变成healthy,确实用不了60秒。但新手最容易忽略的是,工具“跑起来”和“能干活”是两回事。所以这篇文章会覆盖完整链路:环境准备、服务启动、首次配置、接入第一个技能、日常维护,以及我踩过的几个典型坑。

1. 先别急着敲命令:OpenClaw的定位和“1分钟搭建”的真实含义

1.1 这个项目解决什么问题

你可以把OpenClaw理解成一个跑在自己服务器上的自动化助手底座。它不像手机里的助手那样内置了一大堆技能,而是给你一套运行环境和管理界面,让你把“定时执行命令”“监听某个端口并回调”“按关键词触发脚本”这类任务用插件的方式挂进去。部署完之后,你得到的不是一个大而全的软件,而是一个带Web管理界面的、可以由你随意组装能力的机器人骨架。

它的几个典型使用场景包括:

  • 定时从某个接口拉取数据,处理后推送到内部群或文件;
  • 搭建一个统一入口,把散落在各台机器上的小脚本通过回调触发集中管理;
  • 作为团队内部的自助服务平台,给不同成员分配不同的操作权限。

它本质上是“自托管”的,意味着你的数据、日志、配置都在自己的服务器上,不依赖某个第三方平台。这一点对很多团队来说是硬需求,也是我当初选它的主要原因。

1.2 为什么1分钟能启动,但完整配置可能要半小时

所谓“1分钟搭建”,通常成立的前提有两个:一是服务器已经有Docker,二是你直接用官方编排文件启动默认配置。这种情况下确实只需要一条命令,镜像拉完容器就起来了。

但是接下来你至少要面对这几件事:

  1. 登录Web管理界面,设置管理员密码;
  2. 确认数据目录挂载正确、容器重启后配置不丢;
  3. 修改默认端口,或配置反向代理和HTTPS证书;
  4. 创建第一个真正有用的技能,并测试触发链路。

这几步加起来,新手花个20到40分钟属于正常范围。所以我更建议你把“1分钟搭建”理解为“启动服务只要1分钟”,而不是“整个项目1分钟搞定”。

1.3 部署方式怎么选:镜像编排还是裸进程运行

OpenClaw提供两种部署方式,一种是用Docker镜像跑,另一种是下载二进制文件直接执行。我自己强烈推荐新手用Docker方式,原因有三个:

  • 依赖隔离,服务器上的Node、Python版本都不会干扰它;
  • 日志和数据目录清晰,备份就是打包一个文件夹;
  • 升级和回滚方便,镜像tag切来切去就能完成版本管理。

二进制方式适合那种已经有一套进程管理经验、不想在服务器上装Docker的用户,但排查问题时会麻烦不少。下面的步骤全部基于Docker编排方式。

2. 动手之前的环境准备:服务器、Docker与基础网络

2.1 服务器配置怎么选

OpenClaw本身的资源占用不算高,一个2核4G内存的普通VPS就够跑日常任务。如果是个人使用、任务也不密集,2核2G也能带得动,只是遇到并发执行技能时会明显变慢。磁盘方面,系统盘加数据盘建议至少留出20G,因为日志文件增长比你预想的快,尤其是开启了调试级别日志后。

系统我建议用Ubuntu 22.04或者Debian 12。这两个系统的软件源里Docker版本比较新,而且网上随便一搜就能找到对应版本的排错方案。如果你手头是CentOS系列,其实也能装,只是部分命令细节不一样,需要自己稍微变通。

2.2 安装Docker和Compose插件

这一步直接决定后面“1分钟搭建”能不能成立,所以我建议你在部署OpenClaw之前先把Docker环境整利索。在Ubuntu上,我的习惯是先更新系统包索引,再安装几个必要依赖:

sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release

然后添加Docker官方仓库并完成安装:

sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

装完之后先验证一下是否正常:

sudo systemctl status docker --no-pager sudo docker --version sudo docker compose version

新手最容易在这里卡住:明明装了docker,但敲docker compose提示找不到命令。这通常是因为只装了docker-ce而没装docker-compose-plugin这个包。装好之后,docker compose这种新写法就能直接用了,不需要再单独去下载老版的docker-compose二进制文件。

2.3 数据目录与端口规划

我部署所有自托管服务都有一个固定习惯:先把目录结构想清楚,再动手启动。OpenClaw的目录我一般放在/opt/openclaw下面,里面分几个子目录:

sudo mkdir -p /opt/openclaw/{data,config,logs}

这三个目录的职责分别是:

  • data:保存任务执行记录、内部数据库文件,是备份的重点;
  • config:保存应用配置、技能定义,如果你迁移服务,把这里打包带走基本就能恢复;
  • logs:运行日志,排查问题主要看这里。

端口方面,服务默认监听8080。如果你服务器上8080已经有别的项目占用,那就要在编排文件里改成其他端口,比如18080。后面我会在编排文件里直接演示怎么改。

如果你买了国内云服务器,记得去安全组规则里放行需要用到的端口;如果服务器在海外或者是普通VPS,确认系统防火墙没有拦截就可以。这一步漏掉的话,经常会出现“容器已经启动了,但浏览器就是打不开”的情况。

3. 正式搭建:一条命令拉起服务,以及反向代理配置

3.1 编写编排文件

环境准备好之后,就可以正式部署了。先进入规划好的目录:

cd /opt/openclaw

然后创建一个编排文件,我习惯用docker-compose.yml。打开编辑器把下面这份配置粘贴进去:

services: openclaw: image: openclaw/core:2026.1 container_name: openclaw restart: unless-stopped ports: - "18080:8080" volumes: - ./data:/opt/openclaw/data - ./config:/opt/openclaw/config - ./logs:/opt/openclaw/logs environment: - TZ=Asia/Shanghai - OPENCLAW_WEB_PORT=8080

逐行解释一下关键配置,避免大家后面改起来不知道从哪下手。

  • restart: unless-stopped:如果服务器重启或者容器异常退出,守护进程会自动把服务拉起来。不写这一行,服务器一旦重启,OpenClaw就静悄悄地没了。
  • ports: "18080:8080":左边是宿主机暴露的端口,右边是容器内服务监听的端口。我这里演示的是把默认8080映射到宿主机18080,如果服务器8080没被占用,你也可以直接写"8080:8080"。
  • volumes:把三个目录挂载到宿主机,这是数据不丢的关键。
  • environment.TZ=Asia/Shanghai:时区配置。这个非常重要,不然定时任务执行时间会和你的本地时间对不上,后面坑的部分我也会再提。

3.2 启动并验证

编排文件保存好之后,启动就是一条命令:

sudo docker compose up -d

第一次启动会拉取镜像,具体耗时取决于你服务器到镜像仓库的网络状况,通常在1到3分钟内。镜像拉完并创建容器后,执行docker compose ps看一下状态:

sudo docker compose ps

输出里STATUS那一列应该显示Up或者healthy,这样服务就算起来了。如果状态异常,先别急着看复杂的东西,用日志命令定位:

sudo docker compose logs --tail=100 openclaw

日志里如果有权限报错,通常是挂载目录的属主不对,后面坑的章节我会展开说。

容器起来之后,在浏览器里访问http://你的服务器IP:18080,能看到初始化页面,说明Web服务正常。

3.3 用反向代理补全HTTPS访问

直接通过IP和端口访问可用,但你要长期使用,我建议尽早配上域名和HTTPS。尤其是Web界面里有执行命令、触发脚本这类功能,明文传输实在不放心。

我常用的做法是用Nginx做反向代理,把openclaw.example.com转发到本机的18080端口。核心配置片段如下:

server { listen 443 ssl; server_name openclaw.example.com; ssl_certificate /etc/nginx/ssl/example.crt; ssl_certificate_key /etc/nginx/ssl/example.key; location / { proxy_pass http://127.0.0.1:18080; 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; } }

证书部分我用的是自动续期的方案,这里不展开,你只要知道只要域名解析到位,配好反代之后,访问体验和安全性都能上个台阶就够了。

4. 首次配置:登录、目录权限和第一个技能

4.1 管理员的初始化流程

第一次打开Web界面,看到的是初始化向导。第一步一般是设置管理员账号和密码;有些版本会让选择数据存储方式,新手直接选内置的本地存储就好,后续规模大了再迁数据库也不迟。设置完成后,用刚创建的账号登录,就能看到控制台主界面了。

登录后先去右上角的“系统设置”里确认两项内容:一是时区显示是否和服务器一致,二是日志级别。新手阶段日志级别不要调成debug,否则日志增长很快,而且满屏的信息反而不利于排查问题。保持默认的info级别就够了。

4.2 配置目录里都有什么

如果你进服务器上看/opt/openclaw/config目录,会发现里面有类似这样的文件:

文件作用新手建议
app.yaml应用基础参数,如端口、时区优先通过界面修改
skills/存放各个技能的配置文件可以手动创建,但注意格式
secrets.env密钥环境变量千万不要提交到代码仓库

这里有一个特别重要的原则:能通过界面改的配置,就不要手动去改文件。原因很简单,界面会做参数校验和格式检查,手动改文件一旦写错,启动时直接报错。特别是secrets.env这种存密钥的文件,一定要严格限制权限,至少chmod 600,并且加入.gitignore,防止账号信息泄露。

4.3 创建第一个技能:定时执行一条命令

搞清楚配置之后,我们来创建一个真正能用的技能,让OpenClaw帮我们定时执行一条命令。这边以“每5分钟输出一次当前时间到日志”为例,在界面上操作:

  1. 进入“技能管理”,新建一个技能;
  2. 名称填show-time;
  3. 触发方式选择“定时任务”,表达式填*/5 * * * *;
  4. 动作类型选择“命令执行”,命令填date '+%Y-%m-%d %H:%M:%S';
  5. 保存并启用。

保存之后,回到“执行记录”页面,等上几分钟就能看到一条条成功记录。你可能觉得这个例子很简单,但它把完整链路打通了:定时触发、命令执行、结果记录、日志回看。后面你换成“拉取天气接口推送通知”“扫描目录并归档文件”,只是把命令变得复杂一些而已。

我想特别强调一个容易被忽略的细节:去“系统设置”里把“管理员通知”打开。这样每次技能执行失败,系统都会通过你配置的通知渠道告警,而不是等你某天心血来潮翻日志才发现已经失败很多次了。

5. 日常使用与维护:日志、备份、升级的完整流程

5.1 日常运维命令

服务跑起来之后,你实际每天会用到的基本命令就这几个:

# 查看状态 sudo docker compose ps # 查看最近日志 sudo docker compose logs --tail=100 -f # 重启服务 sudo docker compose restart # 进入容器内部做排查 sudo docker compose exec openclaw sh

我个人的习惯是先把docker compose ps和logs --tail这两个命令记熟,因为日常95%的问题,通过这两个命令就能定位个大概。容器内部别随便改东西,配置和数据都是挂载出来的,容器改了什么重启后就丢了。

5.2 备份与恢复

OpenClaw的备份思路比传统数据库服务简单得多,因为它所有持久化数据都在挂载出来的目录里。我用的备份命令是这样的:

cd /opt/openclaw sudo tar czf openclaw-backup-$(date +%Y%m%d-%H%M%S).tar.gz data config

这条命令会把数据目录和配置目录打包成一个带时间戳的压缩包。我建议配合一个简单的定时任务,比如每天凌晨打包一次,然后把压缩包同步到一个独立的存储位置。注意是“独立”位置——放在同一台服务器的另一个目录不算备份,因为服务器整体故障时,备份还是会跟着丢。

恢复的时候更简单,把压缩包解压回原位置,然后重启容器:

sudo tar xzf openclaw-backup-xxxx.tar.gz sudo docker compose restart

我多次强调这一点,是因为身边真的有同事辛辛苦苦配了大半个月的技能库,结果一次误删操作全部归零。还好他听了建议做了备份,恢复过程五分钟都不到。

5.3 版本升级与回滚

OpenClaw的版本迭代比较快,如果你想升级到新版本,标准的操作顺序是:

cd /opt/openclaw sudo docker compose pull sudo docker compose up -d

pull会拉取你编排文件里写的最新镜像,up -d则是基于新镜像重建容器。升级之前务必先做一次完整备份,因为你当前用的镜像tag在云端可能不会长期保留,一旦新版出了问题想回退,却把旧版本tag给覆盖了,就只能靠本地备份来回滚。

回滚的操作和升级类似,把编排文件里的镜像tag改回旧版本,然后执行:

sudo docker compose up -d

容器会基于旧镜像重新创建,数据区因为是挂载出来的,所以不会丢。但我要提醒一点:升级后如果配置文件格式有变化,回滚后可能会出现版本不兼容的情况,这也是为什么备份是整个操作里最重要的一步。

6. 新手最容易踩的5个坑:现象、原因和解决方法

6.1 容器起来了,但浏览器访问不到

这是最典型的问题。现象是docker compose ps里状态是Up,但浏览器一直转圈。

先查端口映射是否正确。如果编排文件写的是"18080:8080",那浏览器访问时要带18080端口,不是默认的80或8080。如果端口没错,再检查安全组和系统防火墙。很多云厂商默认安全组不放开非标端口:

sudo ufw status sudo iptables -L -n | grep 18080

只要端口在防火墙层面被放行,这个坑基本就绕过去了。

6.2 容器循环重启,日志提示权限不足

挂载目录的属主默认是root,但容器内运行的用户可能是UID 1000,导致它没有写权限。我遇到时,系统日志里反复出现Permission denied,容器一直处于“重启中”状态。

解决办法是把挂载目录的属主改成容器的运行用户,通常一条命令搞定:

sudo chown -R 1000:1000 /opt/openclaw

如果你不确定容器内用户到底是哪个UID,看日志里的报错文件名,或者到官方文档里查一下,不要盲目用chmod 777,那会造成更大的安全隐患。

6.3 定时任务执行时间不对

这个坑特别隐蔽。现象是技能明明设置的每天上午8点执行,结果日志里显示的是下午4点才触发。原因基本就是容器时区没设置成Asia/Shanghai。默认时区是UTC,比北京时间慢8小时,所以你设的“8点”实际上是UTC 8点,换算过来就是北京时间下午4点。

解决方式是在编排文件的environment里加一行:

environment: - TZ=Asia/Shanghai

改完执行sudo docker compose up -d重新创建容器,再验证一下date命令输出是否变成北京时间。

6.4 docker compose命令找不到

明明安装了Docker,但敲docker compose报“command not found”。这个我在前面环境准备部分提过,核心原因是新老版本的插件体系不一样。老版本包名叫docker-compose,命令是带横杠的;新版本包名叫docker-compose-plugin,命令是带空格的docker compose。两个不通用,直接安装docker-compose-plugin即可。

6.5 升级之后配置被重置

现象是升级到新版后,之前配置的技能和密钥都消失了。最常见的原因是用户手动修改了容器内部的文件,而不是修改宿主机上挂载出来的文件。容器重建时,内部修改全部丢失。

判断自己有没有踩这个坑,可以看config目录里的文件修改时间。如果某个文件的修改时间正好是启动容器的时刻,那基本能确定你改错了地方。正确做法是改宿主机/opt/openclaw/config下的对应文件,或者通过Web界面修改。

7. 最后说一点我的使用体会

OpenClaw这种自托管助手框架,和直接用现成的在线工具完全是两种思路。在线工具开箱即用,但数据不在自己手里,功能边界也由平台决定;自托管方案前期确实要花点时间搭环境、调配置,但一旦跑顺了,你掌控的是全部能力和数据。我在实际使用中的体会是,不要一上来就追求把所有功能都摸一遍,而是先把它当成一个“定时命令执行器”来用,让它替你跑起来一两个真正省时省力的任务。等习惯了这个节奏,再逐步加技能、接通知、上反代。部署这件事,最怕的不是踩坑,而是还没开始就被“1分钟搭建”这种说法误导,以为不用做任何准备就能直接跑通。把这篇文章里的步骤走一遍,你会发现自己不仅能把这个项目部署好,以后部署任何类似的Docker服务,心里都有底气了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询