OpenClaw on Hetzner (Docker, Production VPS Guide)
Goal
Docker를 사용하여 내구성 있는 상태, 기본 바이너리 및 안전한 재시작 동작을 제공하는 OpenClaw 게이트웨이를 Hetzner VPS에서 실행합니다. “OpenClaw 24/7 for ~$5”를 원한다면, 이것이 가장 간단하고 신뢰할 수 있는 설정입니다. Hetzner 가격은 변화할 수 있으므로, 가장 작은 Debian/Ubuntu VPS를 선택하고 OOM 문제가 발생할 경우 확장하십시오.What are we doing (simple terms)?
- 작은 Linux 서버(Hetzner VPS) 임대
- Docker 설치 (격리된 앱 런타임)
- Docker에서 OpenClaw 게이트웨이 시작
~/.openclaw+~/.openclaw/workspace를 호스트에 지속 (재시작/재구축 시 생존)- SSH 터널을 통해 노트북에서 제어 UI에 접근
- 노트북에서의 SSH 포트 포워딩
- 방화벽 및 토큰을 직접 관리할 경우 직접 포트 노출
다른 Linux VPS를 사용하는 경우, 패키지를 맞춰서 맵핑하십시오. 일반적인 Docker 흐름에 대해서는 Docker 를 참조하십시오.
Quick path (experienced operators)
- Hetzner VPS 프로비저닝
- Docker 설치
- OpenClaw 리포지토리 클론
- 지속적인 호스트 디렉토리 생성
.env와docker-compose.yml구성- 필요한 바이너리를 이미지에 반영
docker compose up -d- 지속성 및 게이트웨이 접근 확인
What you need
- Hetzner VPS의 루트 접근
- 노트북에서의 SSH 접근
- SSH + 복사/붙여넣기에 대한 기본 편안함
- 약 20분
- Docker 및 Docker Compose
- 모델 인증 자격 증명
- 선택적 프로바이더 자격 증명
- WhatsApp QR
- Telegram 봇 토큰
- Gmail OAuth
1) Provision the VPS
Hetzner에서 Ubuntu 또는 Debian VPS를 생성합니다. 루트 계정으로 연결:2) Install Docker (on the VPS)
3) Clone the OpenClaw repository
4) Create persistent host directories
Docker 컨테이너는 단기적인 존재입니다. 모든 장기 지속 상태는 호스트에 존재해야 합니다.5) Configure environment variables
리포지토리 루트에.env 파일 생성.
6) Docker Compose configuration
docker-compose.yml 생성 또는 업데이트.
--allow-unconfigured는 부트스트랩 편의성을 위한 것이며, 올바른 게이트웨이 구성을 대체하지 않습니다. 여전히 인증(예: gateway.auth.token 또는 비밀번호)을 설정하고 배포를 위한 안전한 바인드 설정을 사용하십시오.
7) Bake required binaries into the image (critical)
실행 중인 컨테이너에 바이너리를 설치하는 것은 함정입니다. 구동 중 설치된 것은 재시작 시 모두 사라집니다. 스킬에 필요한 모든 외부 바이너리는 이미지 빌드 시에 설치되어야 합니다. 아래 예는 세 가지 일반적인 바이너리만 보여줍니다:gogGmail 접근용goplacesGoogle Places 용wacliWhatsApp 용
- Dockerfile 업데이트
- 이미지 재구축
- 컨테이너 재시작
8) Build and launch
9) Verify Gateway
http://127.0.0.1:18789/
Paste your gateway token.
What persists where (source of truth)
OpenClaw는 Docker에서 실행되지만, Docker가 진실의 원천은 아닙니다. 모든 장기 지속 상태는 재시작, 재구축 및 재부팅을 견뎌야 합니다.| Component | Location | Persistence mechanism | Notes |
|---|---|---|---|
| Gateway config | /home/node/.openclaw/ | Host volume mount | Includes openclaw.json, tokens |
| Model auth profiles | /home/node/.openclaw/ | Host volume mount | OAuth tokens, API keys |
| Skill configs | /home/node/.openclaw/skills/ | Host volume mount | Skill-level state |
| Agent workspace | /home/node/.openclaw/workspace/ | Host volume mount | Code and agent artifacts |
| WhatsApp session | /home/node/.openclaw/ | Host volume mount | Preserves QR login |
| Gmail keyring | /home/node/.openclaw/ | Host volume + password | Requires GOG_KEYRING_PASSWORD |
| External binaries | /usr/local/bin/ | Docker image | Must be baked at build time |
| Node runtime | Container filesystem | Docker image | Rebuilt every image build |
| OS packages | Container filesystem | Docker image | Do not install at runtime |
| Docker container | Ephemeral | Restartable | Safe to destroy |
Infrastructure as Code (Terraform)
인프라를 코드로 관리하기를 선호하는 팀을 위해, 커뮤니티에서 유지하는 Terraform 설정은 다음을 제공합니다:- 원격 상태 관리가 포함된 모듈식 Terraform 구성
- cloud-init을 통한 자동 프로비저닝
- 배포 스크립트 (부트스트랩, 배포, 백업/복원)
- 보안 강화 (방화벽, UFW, SSH 전용 접근)
- 게이트웨이 접근을 위한 SSH 터널 구성
- Infrastructure: openclaw-terraform-hetzner
- Docker config: openclaw-docker-config
Note: 커뮤니티에서 유지관리. 문제나 기여는 위의 리포지토리 링크를 참조하십시오.