首页 资讯 下载 教程 Skills 社群

Hetzner Docker 部署教程

方案概述

Hetzner 是欧洲主流 VPS 提供商,入门机型性价比极高(月费约 $5)。本方案使用 Docker Compose 运行 OpenClaw Gateway,配合持久化目录和自动重启策略,将 VPS 作为有状态的长期基础设施运营,而非一次性容器。全程约需 20 分钟完成部署。

前置条件

  • Hetzner VPS,操作系统为 Ubuntu 或 Debian,已开启 root SSH 访问
  • 模型提供商 API Key
  • 可选:WhatsApp、Telegram、Gmail OAuth 等渠道凭据

第一步:安装 Docker

apt-get update
apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sh
docker --version
docker compose version

第二步:克隆仓库并创建持久化目录

git clone https://github.com/openclaw/openclaw.git
cd openclaw
mkdir -p /root/.openclaw/workspace
chown -R 1000:1000 /root/.openclaw

这两个目录在容器重启和重建后依然保留状态,是 Gateway 的持久化存储根目录。

第三步:创建环境变量文件

在项目目录下创建 .env 文件:

OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=<用 openssl rand -hex 32 生成>
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_CONFIG_DIR=/root/.openclaw
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace
GOG_KEYRING_PASSWORD=<用 openssl rand -hex 32 生成>
XDG_CONFIG_HOME=/home/node/.openclaw

安全提醒: .env 文件包含密钥,绝对不要提交到 Git 仓库。

第四步:配置 Docker Compose

创建 docker-compose.yml

services:
  openclaw-gateway:
    image: ${OPENCLAW_IMAGE}
    build: .
    restart: unless-stopped
    env_file:
      - .env
    environment:
      - HOME=/home/node
      - NODE_ENV=production
      - OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND}
      - OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT}
      - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
      - GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
      - XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
    volumes:
      - ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
      - ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
    ports:
      - "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
    command:
      - "node"
      - "dist/index.js"
      - "gateway"
      - "--bind"
      - "${OPENCLAW_GATEWAY_BIND}"
      - "--port"
      - "${OPENCLAW_GATEWAY_PORT}"
      - "--allow-unconfigured"

注意 ports 配置为 127.0.0.1:18789:18789——Gateway 仅监听 loopback,不对外网暴露。

第五步:构建并启动

docker compose build
docker compose up -d
docker compose logs -f

远程访问控制台

在本地机器上建立 SSH 端口转发:

ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP

浏览器访问 http://127.0.0.1:18789/,输入 Gateway Token 登录控制台。

基础设施即代码(可选)

社区维护了两个 Terraform 仓库可实现全自动化部署:

  • openclaw-terraform-hetzner:VPS 创建、安全加固、防火墙配置
  • openclaw-docker-config:容器编排配置

功能包括远程状态管理、cloud-init 自动化、灾难恢复脚本等,适合需要版本化管理基础设施的团队。

安全与隔离原则

  • 团队内部共用 Gateway 时,确保所有人在同一信任边界内,且运行时仅用于工作用途
  • 不同业务或不同信任级别的用户应使用独立的 VPS 实例
  • Gateway 始终保持 loopback 绑定,通过 SSH 隧道或 Tailscale 访问,避免公网暴露