Hosting
Hetzner
Tujuan
Menjalankan OpenClaw Gateway yang persisten di VPS Hetzner menggunakan Docker, dengan state yang tahan lama, biner yang sudah disertakan, dan perilaku restart yang aman.
Jika Anda menginginkan "OpenClaw 24/7 seharga sekitar $5", ini adalah penyiapan andal yang paling sederhana. Harga Hetzner dapat berubah; pilih VPS Debian/Ubuntu terkecil dan tingkatkan skalanya jika Anda mengalami OOM.
Pengingat model keamanan:
- Agen yang dibagikan di perusahaan tidak masalah ketika semua orang berada dalam batas kepercayaan yang sama dan runtime hanya untuk bisnis.
- Pertahankan pemisahan ketat: VPS/runtime khusus + akun khusus; jangan gunakan profil Apple/Google/browser/password-manager pribadi di host tersebut.
- Jika pengguna saling tidak tepercaya, pisahkan berdasarkan gateway/host/pengguna OS.
Lihat Keamanan dan hosting VPS.
Apa yang kita lakukan (dalam istilah sederhana)?
- Menyewa server Linux kecil (VPS Hetzner)
- Menginstal Docker (runtime aplikasi terisolasi)
- Memulai OpenClaw Gateway di Docker
- Mempertahankan
~/.openclaw+~/.openclaw/workspacedi host (tetap ada setelah restart/rebuild) - Mengakses Control UI dari laptop Anda melalui tunnel SSH
State ~/.openclaw yang di-mount tersebut mencakup openclaw.json, per agen
agents/<agentId>/agent/auth-profiles.json, dan .env.
Gateway dapat diakses melalui:
- Penerusan port SSH dari laptop Anda
- Paparan port langsung jika Anda mengelola firewall dan token sendiri
Panduan ini mengasumsikan Ubuntu atau Debian di Hetzner.
Jika Anda menggunakan VPS Linux lain, sesuaikan paketnya.
Untuk alur Docker generik, lihat Docker.
Jalur cepat (operator berpengalaman)
- Sediakan VPS Hetzner
- Instal Docker
- Clone repositori OpenClaw
- Buat direktori host persisten
- Konfigurasikan
.envdandocker-compose.yml - Sertakan biner yang diperlukan ke dalam image
docker compose up -d- Verifikasi persistensi dan akses Gateway
Yang Anda perlukan
- VPS Hetzner dengan akses root
- Akses SSH dari laptop Anda
- Kenyamanan dasar dengan SSH + salin/tempel
- ~20 menit
- Docker dan Docker Compose
- Kredensial auth model
- Kredensial provider opsional
- QR WhatsApp
- Token bot Telegram
- OAuth Gmail
Provision the VPS
Buat VPS Ubuntu atau Debian di Hetzner.
Hubungkan sebagai root:
ssh root@YOUR_VPS_IP
Panduan ini mengasumsikan VPS bersifat stateful. Jangan perlakukan sebagai infrastruktur sekali pakai.
Install Docker (on the VPS)
apt-get update
apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sh
Verifikasi:
docker --version
docker compose version
Clone the OpenClaw repository
git clone https://github.com/openclaw/openclaw.git
cd openclaw
Panduan ini mengasumsikan Anda akan membangun image kustom untuk menjamin persistensi biner.
Create persistent host directories
Container Docker bersifat sementara. Semua state jangka panjang harus berada di host.
mkdir -p /root/.openclaw/workspace
# Set ownership to the container user (uid 1000):
chown -R 1000:1000 /root/.openclaw
Configure environment variables
Buat .env di root repositori.
OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_CONFIG_DIR=/root/.openclaw
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace
GOG_KEYRING_PASSWORD=
XDG_CONFIG_HOME=/home/node/.openclaw
Atur OPENCLAW_GATEWAY_TOKEN ketika Anda ingin mengelola token gateway
stabil melalui .env; jika tidak, konfigurasikan gateway.auth.token sebelum
mengandalkan klien lintas restart. Jika kedua sumber tidak ada, OpenClaw menggunakan
token khusus runtime untuk startup tersebut. Buat kata sandi keyring dan tempelkan
ke GOG_KEYRING_PASSWORD:
openssl rand -hex 32
Jangan commit file ini.
File .env ini untuk env container/runtime seperti OPENCLAW_GATEWAY_TOKEN.
Auth OAuth/API-key provider yang disimpan berada di
~/.openclaw/agents/<agentId>/agent/auth-profiles.json yang di-mount.
Docker Compose configuration
Buat atau perbarui docker-compose.yml.
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE}
build: .
restart: unless-stopped
env_file:
- .env
environment:
- HOME=/home/node
- NODE_ENV=production
- TERM=xterm-256color
- 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}
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
ports:
# Recommended: keep the Gateway loopback-only on the VPS; access via SSH tunnel.
# To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"${OPENCLAW_GATEWAY_BIND}",
"--port",
"${OPENCLAW_GATEWAY_PORT}",
"--allow-unconfigured",
]
--allow-unconfigured hanya untuk kemudahan bootstrap, bukan pengganti konfigurasi gateway yang benar. Tetap atur auth (gateway.auth.token atau kata sandi) dan gunakan pengaturan bind yang aman untuk deployment Anda.
Shared Docker VM runtime steps
Gunakan panduan runtime bersama untuk alur host Docker umum:
Hetzner-specific access
Setelah langkah build dan peluncuran bersama, selesaikan penyiapan berikut untuk membuka tunnel:
Prasyarat: Pastikan konfigurasi sshd VPS Anda mengizinkan penerusan TCP. Jika Anda
telah memperketat konfigurasi SSH, periksa /etc/ssh/sshd_config dan atur:
AllowTcpForwarding local
local mengizinkan penerusan lokal ssh -L dari laptop Anda sekaligus memblokir
penerusan jarak jauh dari server. Mengaturnya ke no akan membuat tunnel gagal
dengan:
channel 3: open failed: administratively prohibited: open failed
Setelah mengonfirmasi penerusan TCP diaktifkan, restart layanan SSH
(systemctl restart ssh) dan jalankan tunnel dari laptop Anda:
ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP
Buka:
http://127.0.0.1:18789/
Tempel rahasia bersama yang dikonfigurasi. Panduan ini menggunakan token gateway secara default; jika Anda beralih ke auth kata sandi, gunakan kata sandi tersebut.
Peta persistensi bersama berada di Runtime VM Docker.
Infrastructure as Code (Terraform)
Untuk tim yang lebih memilih alur kerja infrastructure-as-code, penyiapan Terraform yang dikelola komunitas menyediakan:
- Konfigurasi Terraform modular dengan manajemen state jarak jauh
- Provisioning otomatis melalui cloud-init
- Skrip deployment (bootstrap, deploy, backup/restore)
- Pengerasan keamanan (firewall, UFW, akses khusus SSH)
- Konfigurasi tunnel SSH untuk akses gateway
Repositori:
- Infrastruktur: openclaw-terraform-hetzner
- Konfigurasi Docker: openclaw-docker-config
Pendekatan ini melengkapi penyiapan Docker di atas dengan deployment yang dapat direproduksi, infrastruktur yang dikontrol versi, dan pemulihan bencana otomatis.
Langkah berikutnya
- Siapkan channel perpesanan: Channel
- Konfigurasikan Gateway: Konfigurasi Gateway
- Tetap perbarui OpenClaw: Memperbarui