Hosting

GCP

Jalankan OpenClaw Gateway yang persisten di VM GCP Compute Engine menggunakan Docker, dengan state yang tahan lama, biner yang sudah dibundel, dan perilaku restart yang aman.

Jika Anda menginginkan "OpenClaw 24/7 dengan biaya sekitar ~$5-12/bln", ini adalah penyiapan yang andal di Google Cloud. Harga bervariasi berdasarkan tipe mesin dan region; pilih VM terkecil yang sesuai dengan beban kerja Anda dan tingkatkan skalanya jika mengalami OOM.

Apa yang kita lakukan (secara sederhana)?

  • Membuat project GCP dan mengaktifkan billing
  • Membuat VM Compute Engine
  • Menginstal Docker (runtime aplikasi terisolasi)
  • Memulai OpenClaw Gateway di Docker
  • Menyimpan ~/.openclaw + ~/.openclaw/workspace secara persisten di host (tetap ada setelah restart/rebuild)
  • Mengakses UI Kontrol dari laptop Anda melalui tunnel SSH

State ~/.openclaw yang di-mount tersebut mencakup openclaw.json, per-agent agents/<agentId>/agent/auth-profiles.json, dan .env.

Gateway dapat diakses melalui:

  • Penerusan port SSH dari laptop Anda
  • Eksposur port langsung jika Anda mengelola firewall dan token sendiri

Panduan ini menggunakan Debian di GCP Compute Engine. Ubuntu juga berfungsi; petakan paketnya sesuai kebutuhan. Untuk alur Docker generik, lihat Docker.


Jalur cepat (operator berpengalaman)

  1. Buat project GCP + aktifkan Compute Engine API
  2. Buat VM Compute Engine (e2-small, Debian 12, 20GB)
  3. SSH ke VM
  4. Instal Docker
  5. Clone repositori OpenClaw
  6. Buat direktori host persisten
  7. Konfigurasikan .env dan docker-compose.yml
  8. Bundel biner yang diperlukan, build, dan jalankan

Yang Anda perlukan

  • Akun GCP (memenuhi syarat free tier untuk e2-micro)
  • gcloud CLI terinstal (atau gunakan Cloud Console)
  • Akses SSH dari laptop Anda
  • Kenyamanan dasar dengan SSH + salin/tempel
  • ~20-30 menit
  • Docker dan Docker Compose
  • Kredensial auth model
  • Kredensial provider opsional
    • WhatsApp QR
    • Token bot Telegram
    • Gmail OAuth

  • Instal gcloud CLI (atau gunakan Console)

    Opsi A: gcloud CLI (direkomendasikan untuk otomatisasi)

    Instal dari https://cloud.google.com/sdk/docs/install

    Inisialisasi dan autentikasi:

    gcloud init
    gcloud auth login
    

    Opsi B: Cloud Console

    Semua langkah dapat dilakukan melalui UI web di https://console.cloud.google.com

  • Buat project GCP

    CLI:

    gcloud projects create my-openclaw-project --name="OpenClaw Gateway"
    gcloud config set project my-openclaw-project
    

    Aktifkan billing di https://console.cloud.google.com/billing (diperlukan untuk Compute Engine).

    Aktifkan Compute Engine API:

    gcloud services enable compute.googleapis.com
    

    Console:

    1. Buka IAM & Admin > Create Project
    2. Beri nama dan buat
    3. Aktifkan billing untuk project
    4. Buka APIs & Services > Enable APIs > cari "Compute Engine API" > Enable
  • Buat VM

    Tipe mesin:

    Tipe Spesifikasi Biaya Catatan
    e2-medium 2 vCPU, 4GB RAM ~$25/bln Paling andal untuk build Docker lokal
    e2-small 2 vCPU, 2GB RAM ~$12/bln Minimum yang direkomendasikan untuk build Docker
    e2-micro 2 vCPU (shared), 1GB RAM Memenuhi syarat free tier Sering gagal dengan OOM build Docker (exit 137)

    CLI:

    gcloud compute instances create openclaw-gateway \
      --zone=us-central1-a \
      --machine-type=e2-small \
      --boot-disk-size=20GB \
      --image-family=debian-12 \
      --image-project=debian-cloud
    

    Console:

    1. Buka Compute Engine > VM instances > Create instance
    2. Nama: openclaw-gateway
    3. Region: us-central1, Zone: us-central1-a
    4. Tipe mesin: e2-small
    5. Boot disk: Debian 12, 20GB
    6. Buat
  • SSH ke VM

    CLI:

    gcloud compute ssh openclaw-gateway --zone=us-central1-a
    

    Console:

    Klik tombol "SSH" di samping VM Anda pada dasbor Compute Engine.

    Catatan: Propagasi kunci SSH dapat memerlukan 1-2 menit setelah VM dibuat. Jika koneksi ditolak, tunggu dan coba lagi.

  • Instal Docker (di VM)

    sudo apt-get update
    sudo apt-get install -y git curl ca-certificates
    curl -fsSL https://get.docker.com | sudo sh
    sudo usermod -aG docker $USER
    

    Logout dan login kembali agar perubahan grup berlaku:

    exit
    

    Lalu SSH kembali:

    gcloud compute ssh openclaw-gateway --zone=us-central1-a
    

    Verifikasi:

    docker --version
    docker compose version
    
  • Clone repositori OpenClaw

    git clone https://github.com/openclaw/openclaw.git
    cd openclaw
    

    Panduan ini mengasumsikan Anda akan membuat image kustom untuk menjamin persistensi biner.

  • Buat direktori host persisten

    Container Docker bersifat efemeral. Semua state jangka panjang harus berada di host.

    mkdir -p ~/.openclaw
    mkdir -p ~/.openclaw/workspace
    
  • Konfigurasikan variabel lingkungan

    Buat .env di root repositori.

    OPENCLAW_IMAGE=openclaw:latest
    OPENCLAW_GATEWAY_TOKEN=
    OPENCLAW_GATEWAY_BIND=lan
    OPENCLAW_GATEWAY_PORT=18789
    
    OPENCLAW_CONFIG_DIR=/home/$USER/.openclaw
    OPENCLAW_WORKSPACE_DIR=/home/$USER/.openclaw/workspace
    
    GOG_KEYRING_PASSWORD=
    XDG_CONFIG_HOME=/home/node/.openclaw
    

    Setel 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 password 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.

  • Konfigurasi Docker Compose

    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 VM; 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 tepat. Tetap setel auth (gateway.auth.token atau password) dan gunakan pengaturan bind yang aman untuk deployment Anda.

  • Langkah runtime VM Docker bersama

    Gunakan panduan runtime bersama untuk alur host Docker umum:

  • Catatan peluncuran khusus GCP

    Di GCP, jika build gagal dengan Killed atau exit code 137 selama pnpm install --frozen-lockfile, VM kehabisan memori. Gunakan minimum e2-small, atau e2-medium untuk build pertama yang lebih andal.

    Saat bind ke LAN (OPENCLAW_GATEWAY_BIND=lan), konfigurasikan origin browser tepercaya sebelum melanjutkan:

    docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-json
    

    Jika Anda mengubah port gateway, ganti 18789 dengan port yang Anda konfigurasikan.

  • Akses dari laptop Anda

    Buat tunnel SSH untuk meneruskan port Gateway:

    gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789
    

    Buka di browser Anda:

    http://127.0.0.1:18789/

    Cetak ulang tautan dasbor yang bersih:

    docker compose run --rm openclaw-cli dashboard --no-open
    

    Jika UI meminta auth shared-secret, tempelkan token atau password yang dikonfigurasi ke pengaturan UI Kontrol. Alur Docker ini menulis token secara default; jika Anda mengubah konfigurasi container ke auth password, gunakan password tersebut sebagai gantinya.

    Jika UI Kontrol menampilkan unauthorized atau disconnected (1008): pairing required, setujui perangkat browser:

    docker compose run --rm openclaw-cli devices list
    docker compose run --rm openclaw-cli devices approve <requestId>
    

    Perlu referensi persistensi dan pembaruan bersama lagi? Lihat Runtime VM Docker dan pembaruan Runtime VM Docker.


  • Pemecahan masalah

    Koneksi SSH ditolak

    Propagasi kunci SSH dapat memerlukan 1-2 menit setelah VM dibuat. Tunggu dan coba lagi.

    Masalah OS Login

    Periksa profil OS Login Anda:

    gcloud compute os-login describe-profile
    

    Pastikan akun Anda memiliki izin IAM yang diperlukan (Compute OS Login atau Compute OS Admin Login).

    Kehabisan memori (OOM)

    Jika build Docker gagal dengan Killed dan exit code 137, VM dihentikan karena OOM. Upgrade ke e2-small (minimum) atau e2-medium (direkomendasikan untuk build lokal yang andal):

    # Stop the VM first
    gcloud compute instances stop openclaw-gateway --zone=us-central1-a
    
    # Change machine type
    gcloud compute instances set-machine-type openclaw-gateway \
      --zone=us-central1-a \
      --machine-type=e2-small
    
    # Start the VM
    gcloud compute instances start openclaw-gateway --zone=us-central1-a
    

    Akun layanan (praktik terbaik keamanan)

    Untuk penggunaan pribadi, akun pengguna default Anda sudah cukup.

    Untuk otomatisasi atau pipeline CI/CD, buat akun layanan khusus dengan izin minimal:

    1. Buat akun layanan:

      gcloud iam service-accounts create openclaw-deploy \
        --display-name="OpenClaw Deployment"
      
    2. Berikan role Compute Instance Admin (atau role kustom yang lebih sempit):

      gcloud projects add-iam-policy-binding my-openclaw-project \
        --member="serviceAccount:[email protected]" \
        --role="roles/compute.instanceAdmin.v1"
      

    Hindari menggunakan role Owner untuk otomatisasi. Gunakan prinsip hak akses paling sedikit.

    Lihat https://cloud.google.com/iam/docs/understanding-roles untuk detail role IAM.


    Langkah berikutnya

    Terkait