ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenClaw Linux 部署手册:常规安装、Docker 与 Docker Compose 配 TaoToken

OpenClaw Linux 部署手册:常规安装、Docker 与 Docker Compose 配 TaoToken 1. 为什么要在 Linux 上给 OpenClaw 接统一 Key 通道OpenClaw 是一个跑在本地或服务器上的 AI Agent 网关它本身不绑定某一家模型服务而是通过配置去调用外部大模型接口。你在 Linux 上把它部署起来之后真正决定它能不能干活、干活稳不稳的其实是后面那层模型通道。很多人卡在部署完成、Control UI 能打开但一发消息就报鉴权失败或者超时问题基本都出在 Key 和 Base URL 这一层。这篇手册面向的是已经在 Linux 上折腾 OpenClaw 的开发者把常规安装、Docker、Docker Compose 三条部署路径都走一遍重点不是重复官方安装步骤而是每一步之后怎么把 TaoToken 的统一 Key/API 通道接进去。TaoToken 在这里扮演的角色是一个统一的模型调用入口你拿到一个 Key配好 Base URLOpenClaw 就能通过它去请求背后的模型不用在多个厂商的 Key 之间来回切换。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 这两个地址后面配置里会反复用到。适合谁看已经在 Ubuntu、Debian 或者 CentOS 上装过 OpenClaw或者正准备装并且希望把模型调用收敛到一个统一通道的人。如果你还没拿到 Key先去控制台建一个后面所有配置都围绕它展开。整篇的节奏是先讲清楚三种部署方式各自怎么落地再给出可复制的 config.toml 和 settings.json 骨架最后用连通性命令验证调用真的生效了。2. 部署前的准备TaoToken Key 与系统要求2.1 拿到统一 Key 和 API 地址在开始装 OpenClaw 之前先把 TaoToken 这边的信息准备好。你需要两样东西一个 API Key一个 Base URL。Key 在控制台的 API Keys 页面创建地址是 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。创建的时候给它起个能认出来的名字比如 openclaw-linux方便以后轮换或者吊销。Base URL 统一用 https://taotoken.net/api 注意这个地址后面不要多加斜杠也不要在末尾拼 /v1OpenClaw 的配置里会自己处理路径拼接。我见过有人手动补成 /api/v1 结果 404这个坑后面排障章节会再提。注意Key 只在创建时完整显示一次复制下来存到密码管理器或者临时环境变量里别直接写进会提交到 Git 的文件。2.2 系统与依赖要求三种部署方式对系统的要求不完全一样先对照一下自己的机器项目常规安装DockerDocker Compose操作系统Ubuntu 20.04 / Debian 11 / CentOS 等同左同左Node.js24 推荐22.19 可用不需要不需要Docker不需要Engine Compose v2Engine Compose v2内存≥ 1 GB本地构建镜像 ≥ 2 GB本地构建镜像 ≥ 2 GB磁盘预留配置与日志空间预留镜像空间预留镜像与卷空间默认端口记住两个Gateway 是 18789Bridge 是 18790。后面健康检查和 Control UI 都走 18789。2.3 环境变量先摆好不管走哪条路建议先把 Key 和地址放进环境变量避免散落在各个配置文件里。在 ~/.bashrc 或者一个单独的 env 文件里写export TAOTOKEN_API_KEYsk-你的Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api改完执行 source ~/.bashrc 让它生效。Docker 和 Compose 场景下这些变量会通过 compose 的 environment 段传进容器所以命名保持一致能省很多事。3. 方式一常规安装并接入 TaoToken3.1 安装 OpenClaw常规安装适合本机开发或者单机调试。一键脚本最省事curl -fsSL https://openclaw.ai/install.sh | bash如果你不想走交互式引导加个参数跳过curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard不想依赖系统 Node 的话用本地 prefix 安装OpenClaw 和 Node 都会装到 ~/.openclaw 下面curl -fsSL https://openclaw.ai/install-cli.sh | bash也可以用 npm、pnpm 或 bun 全局装npm install -g openclawlatest openclaw onboard --install-daemon装完先确认版本和健康状态openclaw --version openclaw doctor openclaw gateway status3.2 配置 config.toml 接入统一通道OpenClaw 的模型通道配置集中在 config.toml 里。常规安装下它一般在 ~/.openclaw/config.toml。下面是一个可以直接改的骨架把 provider 指向 TaoToken[gateway] mode local bind lan port 18789 [providers.taotoken] type openai-compatible base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} default_model claude-sonnet-4-20250514 [agents.default] provider taotoken model claude-sonnet-4-20250514几个关键点解释一下。type 用 openai-compatible因为 TaoToken 的接口是兼容 OpenAI 调用格式的OpenClaw 里选这个类型就能直接对接。base_url 写 https://taotoken.net/api 不要带尾斜杠。api_key 用 ${TAOTOKEN_API_KEY} 引用环境变量这样配置文件本身可以安全地放进版本管理。default_model 填你实际要用的模型名具体可用列表在模型对话页面能看到地址是 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。3.3 settings.json 补充运行时参数有些运行时参数放在 settings.json 里更顺手路径通常是 ~/.openclaw/settings.json。骨架如下{ gateway: { token: ${OPENCLAW_GATEWAY_TOKEN}, allowedOrigins: [ http://localhost:18789, http://127.0.0.1:18789 ] }, providers: { taotoken: { baseUrl: https://taotoken.net/api, apiKeyEnv: TAOTOKEN_API_KEY, timeoutMs: 60000, maxRetries: 2 } } }timeoutMs 给到 60 秒是因为有些模型首 token 返回慢设太短会误判成失败。maxRetries 设 2 次网络抖动时能自动重试但别设太大否则真出错时会等很久。3.4 启动守护进程并验证配置写好后装守护进程让它开机自启openclaw onboard --install-daemonLinux 和 WSL2 下会创建 systemd user service。然后跑连通性检查curl -fsS http://127.0.0.1:18789/healthz返回 ok 之类的健康标识就说明 Gateway 起来了。接着验证模型通道是否真的通用 OpenClaw 自带的诊断openclaw doctor --provider taotoken如果这一步返回模型列表或者成功响应说明 Key 和 Base URL 都对了。浏览器打开 http://127.0.0.1:18789/ 在 Settings 里粘贴 Gateway Token就能进 Control UI 发消息测试。4. 方式二Docker 部署并接入 TaoToken4.1 前置检查Docker 方式适合不想污染宿主机环境或者在 VPS 上做隔离运行的场景。先确认 Docker 和 Compose v2 都在docker --version docker compose version两个命令都能输出版本号再往下走。4.2 用官方 setup 脚本拉起克隆仓库后执行官方脚本git clone https://github.com/openclaw/openclaw.git cd openclaw ./scripts/docker/setup.sh小内存 VPS 强烈建议用预构建镜像避免本地构建时 OOMexport OPENCLAW_IMAGEghcr.io/openclaw/openclaw:latest ./scripts/docker/setup.sh脚本会自动拉镜像、跑交互式 onboarding、生成 .env 和 Gateway Token最后用 Compose 把 Gateway 启动起来。4.3 把 TaoToken 配置注入容器Docker 场景下配置目录是 bind-mount 进容器的所以你在宿主机改 ~/.openclaw/config.toml容器里立刻生效。config.toml 的内容和 3.2 节一样重点是环境变量要传进去。在仓库根目录的 .env 文件里加TAOTOKEN_API_KEYsk-你的Key TAOTOKEN_BASE_URLhttps://taotoken.net/api OPENCLAW_GATEWAY_TOKEN你生成的Token然后在 docker-compose.yml 的 openclaw-gateway 服务 environment 段引用environment: HOME: /home/node OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} TAOTOKEN_API_KEY: ${TAOTOKEN_API_KEY} TAOTOKEN_BASE_URL: ${TAOTOKEN_BASE_URL}这样容器里的 config.toml 用 ${TAOTOKEN_API_KEY} 就能取到值。4.4 手动 Docker 流程可选如果你想完全手动控制不用 setup 脚本可以这样docker build -t openclaw:local -f Dockerfile . docker compose run --rm --no-deps --entrypoint node openclaw-gateway \ dist/index.js onboard --mode local --no-install-daemon docker compose up -d openclaw-gateway启动后拿 dashboard 链接docker compose run --rm openclaw-cli dashboard --no-open4.5 健康检查Docker 下有两个检查端点liveness 和 readiness 分开curl -fsS http://127.0.0.1:18789/healthz curl -fsS http://127.0.0.1:18789/readyzhealthz 通说明进程活着readyz 通说明依赖都就绪了。如果 healthz 通但 readyz 不通多半是模型通道没配好回去检查 config.toml 里的 base_url 和 Key。5. 方式三Docker Compose 生产部署与统一通道5.1 标准 Compose 结构官方 docker-compose.yml 里有两个服务分工明确服务作用openclaw-gateway常驻 Gateway对外暴露 18789/18790openclaw-cli一次性 CLI 容器执行管理命令核心结构长这样services: openclaw-gateway: image: ${OPENCLAW_IMAGE:-openclaw:local} environment: HOME: /home/node OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} TAOTOKEN_API_KEY: ${TAOTOKEN_API_KEY} TAOTOKEN_BASE_URL: ${TAOTOKEN_BASE_URL} volumes: - ${OPENCLAW_CONFIG_DIR:-~/.openclaw}:/home/node/.openclaw - ${OPENCLAW_WORKSPACE_DIR:-~/.openclaw/workspace}:/home/node/.openclaw/workspace ports: - ${OPENCLAW_GATEWAY_PORT:-18789}:18789 - ${OPENCLAW_BRIDGE_PORT:-18790}:18790 restart: unless-stopped command: [node, dist/index.js, gateway, --bind, lan, --port, 18789] openclaw-cli: image: ${OPENCLAW_IMAGE:-openclaw:local} network_mode: service:openclaw-gateway volumes: - ${OPENCLAW_CONFIG_DIR:-~/.openclaw}:/home/node/.openclaw - ${OPENCLAW_WORKSPACE_DIR:-~/.openclaw/workspace}:/home/node/.openclaw/workspace entrypoint: [node, dist/index.js]完整文件以官方仓库为准这里只是把和 TaoToken 相关的环境变量标出来。5.2 一键启动cd openclaw export OPENCLAW_IMAGEghcr.io/openclaw/openclaw:latest ./scripts/docker/setup.sh5.3 常用 Compose 命令docker compose up -d openclaw-gateway docker compose logs -f openclaw-gateway docker compose down docker compose run --rm openclaw-cli channels add --channel telegram --token token docker compose run --rm openclaw-cli devices list docker compose run --rm openclaw-cli devices approve requestId5.4 环境变量速查变量用途OPENCLAW_IMAGE使用远程预构建镜像OPENCLAW_GATEWAY_TOKENGateway 认证 TokenOPENCLAW_CONFIG_DIR配置目录挂载路径OPENCLAW_WORKSPACE_DIR工作区挂载路径TAOTOKEN_API_KEY统一通道 KeyTAOTOKEN_BASE_URL统一通道地址OPENCLAW_SANDBOX启用 Agent Sandbox1/true5.5 持久化与权限容器 bind-mount 两个路径替换容器后数据保留~/.openclaw 存配置和 openclaw.json~/.openclaw/workspace 存 Agent 工作区。容器以 uid 1000node运行宿主机挂载目录权限要对sudo chown -R 1000:1000 ~/.openclaw权限不对会报 EACCES这是 Compose 部署里最常见的坑之一。5.6 启用 Agent Sandbox想让 Agent 工具在独立容器里执行加个环境变量export OPENCLAW_SANDBOX1 ./scripts/docker/setup.shSandbox 在独立 Docker 容器中跑 Agent 工具Gateway 仍在主容器里隔离性更好。6. 验证请求与成功结果配置写完不算完得确认调用真的生效。分三层验证。第一层Gateway 健康curl -fsS http://127.0.0.1:18789/healthz curl -fsS http://127.0.0.1:18789/readyz第二层直接打 TaoToken 的接口确认 Key 和地址本身没问题curl -fsS https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY返回模型列表 JSON 就说明 Key 有效、地址正确。如果这里就失败先别折腾 OpenClaw去控制台确认 Key 状态。第三层通过 OpenClaw 发一条测试消息。在 Control UI 里发一句简单的话或者在 CLI 容器里执行docker compose run --rm openclaw-cli agents run --message ping成功的话你会看到模型返回的文本日志里也能看到请求打到了 https://taotoken.net/api 。实测下来三层都通之后OpenClaw 的模型调用就稳定了。7. 本篇常见错误排查7.1 构建镜像 OOMexit 1371 GB 内存的 VPS 本地构建镜像会失败。改用预构建镜像export OPENCLAW_IMAGEghcr.io/openclaw/openclaw:latest ./scripts/docker/setup.sh7.2 EACCES 权限错误容器以 uid 1000 运行宿主机目录属主不对就会报错sudo chown -R 1000:1000 ~/.openclaw7.3 Gateway 重启循环检查 gateway.bind 的值用 lan 或 loopback不要写 0.0.0.0 作为 bind 值。写错了 Gateway 起不来会一直重启。7.4 模型调用 404 或鉴权失败最常见的是 base_url 写错。正确写法是 https://taotoken.net/api 不要补 /v1不要加尾斜杠。鉴权失败则检查环境变量有没有真的传进容器用 docker compose exec openclaw-gateway env | grep TAOTOKEN 确认。7.5 Docker 内访问宿主机 Ollama/LM Studio如果你同时用本地模型容器内不能用 127.0.0.1要换成 host.docker.internalProviderDocker 内 URLOllamahttp://host.docker.internal:11434LM Studiohttp://host.docker.internal:1234宿主机服务需监听 0.0.0.0。7.6 openclaw 命令找不到常规安装npm 全局 bin 不在 PATH 里export PATH$(npm prefix -g)/bin:$PATH echo export PATH$(npm prefix -g)/bin:$PATH ~/.bashrc8. 按场景选路径并接入统一通道三条路走下来选择其实很清楚。本机开发调试用常规安装curl install.sh 或者 npm 全局装改 config.toml 最快。单容器验证或者 VPS 隔离用 Docker 加预构建镜像省内存也省心。生产环境直接上 Docker Compose配合预构建 GHCR 镜像和持久化卷升级就是 compose pull 加 up。不管哪条路接入 TaoToken 的动作是一样的拿到 Key把 base_url 指向 https://taotoken.net/api 在 config.toml 里配好 provider环境变量传进容器最后用 healthz、readyz 和模型列表接口三层验证。Key 在 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 建接入细节看文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你后面要长期跑编码类 Agent可以了解下 Coding Plan地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 把通道和额度一起规划好省得中途换 Key 打断工作流。
返回列表