Hetzner简介
Hetzner是一家德国老牌云服务商,以极高的性价比著称。一台位于欧洲的CX22实例(2核4GB内存)每月仅需几欧元,非常适合部署OpenClaw这样的AI Agent网关。本文将详细介绍如何在Hetzner Cloud上使用Docker Compose部署OpenClaw。
创建Hetzner云服务器
登录Hetzner Cloud Console(console.hetzner.cloud),点击创建新项目或在已有项目中添加服务器。
选择服务器配置
- 位置:根据你的用户分布选择,例如Falkenstein(德国)、Helsinki(芬兰)或Ashburn(美国)
- 镜像:选择Ubuntu 24.04 LTS
- 类型:推荐CX22(2 vCPU、4GB RAM)或更高配置
- SSH密钥:添加你的公钥用于安全登录
- 网络:启用IPv4和IPv6
创建完成后,记下服务器的公网IP地址。
连接服务器并安装Docker
通过SSH连接到你的新服务器:
ssh root@你的服务器IP
首先更新系统并安装Docker:
apt update && apt upgrade -y
apt install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /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" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
验证Docker安装成功:
docker --version
docker compose version
创建项目目录
为OpenClaw创建专用目录:
mkdir -p /opt/openclaw
cd /opt/openclaw
编写Docker Compose配置
创建docker-compose.yml文件:
version: "3.8"
services:
openclaw:
image: node:22-slim
container_name: openclaw-gateway
restart: unless-stopped
working_dir: /app
volumes:
- openclaw_config:/root/.openclaw
- openclaw_app:/app
ports:
- "3000:3000"
environment:
- NODE_ENV=production
command: >
bash -c "
npm install -g openclaw@latest &&
openclaw start
"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
volumes:
openclaw_config:
openclaw_app:
这个配置文件定义了一个基于Node.js 22的容器,自动安装最新版OpenClaw并启动服务。我们使用命名卷openclaw_config来持久化OpenClaw的配置目录~/.openclaw,确保容器重启时不会丢失配置数据。
注意这里我们没有使用Bun运行时。虽然Bun在某些场景下更快,但在处理WhatsApp和Telegram的WebSocket连接时存在已知bug,因此OpenClaw官方推荐使用Node.js。
启动服务
运行以下命令启动OpenClaw:
docker compose up -d
查看容器日志确认启动状态:
docker compose logs -f openclaw
首次启动时,容器会先安装OpenClaw,这个过程可能需要1-2分钟。看到服务启动成功的日志后,按Ctrl+C退出日志查看。
初始化OpenClaw配置
进入运行中的容器执行初始化:
docker compose exec openclaw bash
在容器内运行引导程序:
openclaw onboard --install-daemon
按照交互式提示完成以下配置:
- 选择并配置AI模型提供商(如OpenAI、Anthropic等)
- 设置要连接的聊天平台(WhatsApp、Telegram、Discord等)
- 配置Webhook URL和相关凭证
完成后运行诊断命令检查一切是否正常:
openclaw doctor
退出容器:
exit
配置防火墙
Hetzner Cloud提供了内置防火墙功能。在Cloud Console中配置以下规则:
- SSH:允许TCP 22端口入站
- HTTP:允许TCP 80端口入站
- HTTPS:允许TCP 443端口入站
- OpenClaw Dashboard:允许TCP 3000端口入站(或者通过反向代理转发)
你也可以使用UFW在服务器上配置:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 3000/tcp
ufw enable
配置Nginx反向代理(推荐)
为了启用HTTPS和更好的安全性,建议配置Nginx反向代理:
apt install -y nginx certbot python3-certbot-nginx
创建Nginx配置文件/etc/nginx/sites-available/openclaw:
server {
server_name openclaw.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}
启用配置并申请SSL证书:
ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d openclaw.yourdomain.com
自动更新OpenClaw
创建一个简单的更新脚本/opt/openclaw/update.sh:
#!/bin/bash
cd /opt/openclaw
docker compose down
docker compose pull
docker compose up -d
docker compose exec -T openclaw npm install -g openclaw@latest
docker compose restart openclaw
添加到crontab实现定期自动更新:
chmod +x /opt/openclaw/update.sh
crontab -e
# 添加以下行,每周日凌晨3点自动更新
0 3 * * 0 /opt/openclaw/update.sh >> /var/log/openclaw-update.log 2>&1
备份策略
OpenClaw的关键数据存储在~/.openclaw/目录中。利用Hetzner的快照功能可以对整个服务器进行备份,也可以手动备份配置文件:
docker compose exec -T openclaw tar czf - /root/.openclaw > /opt/openclaw/backup-$(date +%Y%m%d).tar.gz
总结
Hetzner Cloud搭配Docker Compose是部署OpenClaw的高性价比方案。通过本文的配置,你可以获得一个稳定运行的OpenClaw AI Agent网关,连接各类聊天平台与AI模型。Hetzner在欧洲的数据中心对于服务欧洲用户特别有优势,同时其美国节点也能满足全球部署需求。