Hosting
GCP
Dayanıklı durum, imaja yerleştirilmiş ikili dosyalar ve güvenli yeniden başlatma davranışıyla Docker kullanarak bir GCP Compute Engine sanal makinesinde kalıcı bir OpenClaw Gateway çalıştırın.
Fiyatlandırma makine türüne ve bölgeye göre değişir; iş yükünüze uygun en küçük sanal makineyi seçin ve bellek yetersizliğiyle karşılaşırsanız ölçeği büyütün.
Gateway'e dizüstü bilgisayarınızdan SSH bağlantı noktası yönlendirmesiyle veya güvenlik duvarını ve token'ları kendiniz yönetiyorsanız bağlantı noktasını doğrudan açarak erişebilirsiniz.
Bu kılavuzda GCP Compute Engine üzerinde Debian kullanılır. Ubuntu da kullanılabilir; paketleri buna göre eşleştirin. Genel Docker akışı için Docker sayfasına bakın.
Gereksinimler
- GCP hesabı (
e2-microücretsiz katmana uygundur) gcloudCLI veya Cloud Console- Dizüstü bilgisayarınızdan SSH erişimi
- Docker ve Docker Compose
- Model kimlik doğrulama bilgileri
- İsteğe bağlı sağlayıcı kimlik bilgileri (WhatsApp QR, Telegram bot token'ı, Gmail OAuth)
- Yaklaşık 20-30 dakika
Hızlı yol
- Bir GCP projesi oluşturun, faturalandırmayı ve Compute Engine API'yi etkinleştirin
- Bir Compute Engine sanal makinesi oluşturun (
e2-small, Debian 12, 20 GB) - Sanal makineye SSH ile bağlanıp Docker'ı yükleyin
- OpenClaw deposunu klonlayın
- Kalıcı ana makine dizinlerini oluşturun
.envvedocker-compose.ymldosyalarını yapılandırın- Gerekli ikili dosyaları imaja yerleştirin, derleyin ve başlatın
gcloud CLI'yi yükleyin (veya Console'u kullanın)
cloud.google.com/sdk/docs/install adresinden yükleyin, ardından:
gcloud initgcloud auth loginAlternatif olarak aşağıdaki tüm adımları Cloud Console web arayüzü üzerinden gerçekleştirin.
Bir GCP projesi oluşturun
gcloud projects create my-openclaw-project --name="OpenClaw Gateway"gcloud config set project my-openclaw-projectgcloud services enable compute.googleapis.comconsole.cloud.google.com/billing adresinden faturalandırmayı etkinleştirin (Compute Engine için gereklidir).
Console'daki eşdeğeri: IAM & Admin > Create Project yolunu izleyin, faturalandırmayı etkinleştirin, ardından APIs & Services > Enable APIs > "Compute Engine API" > Enable yolunu izleyin.
Sanal makineyi oluşturun
| Tür | Özellikler | Maliyet | Notlar |
|---|---|---|---|
| e2-medium | 2 vCPU, 4 GB RAM | Aylık yaklaşık 25 ABD doları | Yerel Docker derlemeleri için en güvenilir seçenek |
| e2-small | 2 vCPU, 2 GB RAM | Aylık yaklaşık 12 ABD doları | Docker derlemesi için önerilen en düşük seçenek |
| e2-micro | 2 vCPU (paylaşımlı), 1 GB RAM | Ücretsiz katmana uygun | Docker derlemesi sırasında bellek yetersizliği nedeniyle sık sık başarısız olur (çıkış 137) |
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-cloudSanal makineye SSH ile bağlanın
gcloud compute ssh openclaw-gateway --zone=us-central1-aConsole: Compute Engine panosunda sanal makinenin yanındaki "SSH" seçeneğine tıklayın.
Sanal makine oluşturulduktan sonra SSH anahtarının yayılması 1-2 dakika sürebilir; bağlantı reddedilirse bekleyip yeniden deneyin.
Docker'ı yükleyin (sanal makinede)
sudo apt-get updatesudo apt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | sudo shsudo usermod -aG docker $USERGrup değişikliğinin geçerli olması için oturumu kapatıp yeniden açın, ardından SSH ile tekrar bağlanın:
exitgcloud compute ssh openclaw-gateway --zone=us-central1-aDoğrulayın:
docker --versiondocker compose versionOpenClaw deposunu klonlayın
git clone https://github.com/openclaw/openclaw.gitcd openclawBu kılavuz, imaja yerleştirdiğiniz ikili dosyaların yeniden başlatmalardan sonra korunması için özel bir imaj derler.
Kalıcı ana makine dizinlerini oluşturun
Docker konteynerleri geçicidir; uzun ömürlü tüm durum ana makinede bulunmalıdır.
mkdir -p ~/.openclawmkdir -p ~/.openclaw/workspaceOrtam değişkenlerini yapılandırın
Depo kökünde .env dosyasını oluşturun:
OPENCLAW_IMAGE=openclaw:latestOPENCLAW_GATEWAY_TOKEN=OPENCLAW_GATEWAY_BIND=lanOPENCLAW_GATEWAY_PORT=18789 OPENCLAW_CONFIG_DIR=/home/$USER/.openclawOPENCLAW_WORKSPACE_DIR=/home/$USER/.openclaw/workspace GOG_KEYRING_PASSWORD=XDG_CONFIG_HOME=/home/node/.openclawKararlı Gateway token'ını .env üzerinden yönetmek için OPENCLAW_GATEWAY_TOKEN
değerini ayarlayın; aksi takdirde yeniden başlatmalar boyunca istemcilere
güvenmeden önce gateway.auth.token değerini yapılandırın. İkisi de
ayarlanmamışsa OpenClaw bu başlatma için yalnızca çalışma zamanına özgü bir
token kullanır. GOG_KEYRING_PASSWORD için bir anahtarlık parolası oluşturun:
openssl rand -hex 32Bu dosyayı commit etmeyin. Dosya, OPENCLAW_GATEWAY_TOKEN gibi
konteyner/çalışma zamanı ortam değişkenlerini içerir. Saklanan sağlayıcı
OAuth/API anahtarı kimlik doğrulama bilgileri, bağlanan
~/.openclaw/agents/<agentId>/agent/auth-profiles.json dosyasında bulunur.
Docker Compose yapılandırması
docker-compose.yml dosyasını oluşturun veya güncelleyin:
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: # Önerilen: Gateway'i sanal makinede yalnızca loopback üzerinden erişilebilir tutun; SSH tüneliyle erişin. # Herkese açık hâle getirmek için `127.0.0.1:` önekini kaldırın ve güvenlik duvarını buna göre yapılandırın. - "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 yalnızca ilk kurulum kolaylığı içindir; gerçek Gateway yapılandırmasının yerine geçmez. Dağıtımınız için yine de kimlik doğrulamayı (gateway.auth.token veya parola) ve güvenli bir bağlama modunu ayarlayın.
Paylaşılan Docker sanal makinesi çalışma zamanı adımları
Genel Docker ana makine akışı için paylaşılan çalışma zamanı kılavuzunu izleyin:
GCP'ye özgü başlatma notları
pnpm install --frozen-lockfile sırasında derleme Killed veya exit code 137 hatasıyla başarısız olursa sanal makinenin belleği tükenmiştir. En az e2-small, ilk derlemelerin daha güvenilir olması için ise e2-medium kullanın.
LAN'a bağlanırken (OPENCLAW_GATEWAY_BIND=lan) devam etmeden önce güvenilir bir tarayıcı kökeni yapılandırın:
docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-jsonDeğiştirdiyseniz 18789 değerini yapılandırdığınız bağlantı noktasıyla değiştirin.
Dizüstü bilgisayarınızdan erişin
Gateway bağlantı noktasını yönlendirmek için bir SSH tüneli oluşturun:
gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789Tarayıcınızda http://127.0.0.1:18789/ adresini açın.
Temiz bir pano bağlantısını yeniden yazdırın:
docker compose run --rm openclaw-cli dashboard --no-openKullanıcı arayüzü paylaşılan gizli anahtarla kimlik doğrulaması isterse yapılandırılmış token'ı veya parolayı Control UI ayarlarına yapıştırın (bu Docker akışı varsayılan olarak bir token yazar; parola ile kimlik doğrulamaya geçtiyseniz bunun yerine yapılandırdığınız parolayı kullanın).
Control UI unauthorized veya disconnected (1008): pairing required gösterirse tarayıcı cihazını onaylayın:
docker compose run --rm openclaw-cli devices listdocker compose run --rm openclaw-cli devices approve <requestId>Paylaşılan kalıcılık eşlemesi için Docker Sanal Makinesi Çalışma Zamanı ve güncelleme akışı bölümlerine bakın.
Sorun giderme
SSH bağlantısı reddedildi
Sanal makine oluşturulduktan sonra SSH anahtarının yayılması 1-2 dakika sürebilir. Bekleyip yeniden deneyin.
OS Login sorunları
OS Login profilinizi kontrol edin:
gcloud compute os-login describe-profileHesabınızın gerekli IAM izinlerine (Compute OS Login veya Compute OS Admin Login) sahip olduğundan emin olun.
Bellek yetersizliği (OOM)
Docker derlemesi Killed ve exit code 137 hatasıyla başarısız olursa sanal makine bellek yetersizliği nedeniyle sonlandırılmıştır:
# Önce sanal makineyi durdurungcloud compute instances stop openclaw-gateway --zone=us-central1-a # Makine türünü değiştiringcloud compute instances set-machine-type openclaw-gateway \ --zone=us-central1-a \ --machine-type=e2-small # Sanal makineyi başlatıngcloud compute instances start openclaw-gateway --zone=us-central1-aHizmet hesapları (güvenlik için en iyi uygulama)
Kişisel kullanım için varsayılan kullanıcı hesabınız yeterlidir. Otomasyon veya CI/CD için en az izinlere sahip özel bir hizmet hesabı oluşturun:
gcloud iam service-accounts create openclaw-deploy \ --display-name="OpenClaw Deployment" gcloud projects add-iam-policy-binding my-openclaw-project \ --member="serviceAccount:openclaw-deploy@my-openclaw-project.iam.gserviceaccount.com" \ --role="roles/compute.instanceAdmin.v1"Otomasyon için Owner rolünü kullanmaktan kaçının; çalışan en dar kapsamlı rolü kullanın. Rolleri anlama sayfasına bakın.
Sonraki adımlar
- Mesajlaşma kanallarını ayarlayın: Kanallar
- Yerel cihazları Node olarak eşleştirin: Node'lar
- Gateway'i yapılandırın: Gateway yapılandırması