Hosting
GCP
شغّل Gateway دائمًا لـ OpenClaw على جهاز افتراضي في GCP Compute Engine باستخدام Docker، مع حالة دائمة، وملفات تنفيذية مضمّنة في الصورة، وسلوك آمن عند إعادة التشغيل.
تختلف الأسعار حسب نوع الجهاز والمنطقة؛ اختر أصغر جهاز افتراضي يلائم عبء عملك، وزِد موارده إذا واجهت حالات نفاد الذاكرة.
يمكن الوصول إلى Gateway عبر إعادة توجيه منفذ SSH من حاسوبك المحمول، أو عبر كشف المنفذ مباشرةً إذا كنت تدير جدار الحماية والرموز المميزة بنفسك.
يستخدم هذا الدليل Debian على GCP Compute Engine. يعمل Ubuntu أيضًا؛ استخدم الحزم المناظرة وفقًا لذلك. للاطلاع على مسار Docker العام، راجع Docker.
ما تحتاج إليه
- حساب GCP (
e2-microمؤهل للطبقة المجانية) - CLI
gcloud، أو Cloud Console - وصول SSH من حاسوبك المحمول
- Docker وDocker Compose
- بيانات اعتماد مصادقة النموذج
- بيانات اعتماد اختيارية لموفري الخدمات (رمز QR لـ WhatsApp، والرمز المميز لبوت Telegram، وOAuth لـ Gmail)
- نحو 20-30 دقيقة
المسار السريع
- أنشئ مشروع GCP، وفعّل الفوترة وواجهة Compute Engine API
- أنشئ جهازًا افتراضيًا في Compute Engine (
e2-small، وDebian 12، و20GB) - اتصل بالجهاز الافتراضي عبر SSH، وثبّت Docker
- استنسخ مستودع OpenClaw
- أنشئ أدلة دائمة على المضيف
- اضبط
.envوdocker-compose.yml - ضمّن الملفات التنفيذية المطلوبة في الصورة، وابنِها، وشغّلها
تثبيت CLI gcloud (أو استخدام Console)
ثبّته من cloud.google.com/sdk/docs/install، ثم نفّذ:
gcloud initgcloud auth loginأو نفّذ جميع الخطوات أدناه بدلًا من ذلك من خلال واجهة الويب Cloud Console.
إنشاء مشروع GCP
gcloud projects create my-openclaw-project --name="OpenClaw Gateway"gcloud config set project my-openclaw-projectgcloud services enable compute.googleapis.comفعّل الفوترة على console.cloud.google.com/billing (مطلوبة لـ Compute Engine).
المسار المكافئ في Console: IAM & Admin > Create Project، ثم فعّل الفوترة، وبعدها APIs & Services > Enable APIs > "Compute Engine API" > Enable.
إنشاء الجهاز الافتراضي
| النوع | المواصفات | التكلفة | ملاحظات |
|---|---|---|---|
| e2-medium | وحدتا vCPU، وذاكرة RAM بسعة 4GB | نحو $25 شهريًا | الأكثر موثوقية لعمليات بناء Docker المحلية |
| e2-small | وحدتا vCPU، وذاكرة RAM بسعة 2GB | نحو $12 شهريًا | الحد الأدنى الموصى به لبناء Docker |
| e2-micro | وحدتا vCPU (مشتركتان)، وذاكرة RAM بسعة 1GB | مؤهل للطبقة المجانية | غالبًا ما يفشل بناء Docker بسبب نفاد الذاكرة (exit 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-cloudالاتصال بالجهاز الافتراضي عبر SSH
gcloud compute ssh openclaw-gateway --zone=us-central1-aفي Console: انقر على "SSH" بجوار الجهاز الافتراضي في لوحة معلومات Compute Engine.
قد يستغرق نشر مفتاح SSH من دقيقة إلى دقيقتين بعد إنشاء الجهاز الافتراضي؛ انتظر وأعد المحاولة إذا رُفض الاتصال.
تثبيت Docker (على الجهاز الافتراضي)
sudo apt-get updatesudo apt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | sudo shsudo usermod -aG docker $USERسجّل الخروج ثم ادخل مجددًا لتفعيل تغيير المجموعة، ثم أعد الاتصال عبر SSH:
exitgcloud compute ssh openclaw-gateway --zone=us-central1-aتحقّق:
docker --versiondocker compose versionاستنساخ مستودع OpenClaw
git clone https://github.com/openclaw/openclaw.gitcd openclawينشئ هذا الدليل صورة مخصصة كي تبقى أي ملفات تنفيذية تضمّنها فيها بعد عمليات إعادة التشغيل.
إنشاء أدلة دائمة على المضيف
حاويات Docker مؤقتة؛ يجب أن تكون كل الحالة طويلة الأمد محفوظة على المضيف.
mkdir -p ~/.openclawmkdir -p ~/.openclaw/workspaceضبط متغيرات البيئة
أنشئ .env في جذر المستودع:
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/.openclawاضبط OPENCLAW_GATEWAY_TOKEN لإدارة الرمز المميز الثابت لـ Gateway من خلال
.env؛ وإلا فاضبط gateway.auth.token قبل الاعتماد على العملاء عبر
عمليات إعادة التشغيل. إذا لم يُضبط أي منهما، يستخدم OpenClaw رمزًا مميزًا
خاصًا بوقت التشغيل لعملية بدء التشغيل تلك فقط. أنشئ كلمة مرور لحلقة المفاتيح من أجل GOG_KEYRING_PASSWORD:
openssl rand -hex 32لا تودع هذا الملف في المستودع. فهو يحتوي على متغيرات بيئة الحاوية/وقت التشغيل مثل
OPENCLAW_GATEWAY_TOKEN. تُحفظ بيانات مصادقة OAuth/مفتاح API الخاصة بموفري الخدمات في
الملف المركّب ~/.openclaw/agents/<agentId>/agent/auth-profiles.json.
إعداد Docker Compose
أنشئ 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: # يُوصى بإبقاء Gateway مقتصرًا على local loopback في الجهاز الافتراضي، والوصول إليه عبر نفق SSH. # لكشفه للعامة، أزل البادئة `127.0.0.1:` واضبط جدار الحماية وفقًا لذلك. - "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 مخصص فقط لتسهيل التمهيد، وليس بديلًا عن إعداد Gateway فعلي. يجب مع ذلك ضبط المصادقة (gateway.auth.token أو كلمة مرور) ووضع ربط آمن لعملية النشر.
خطوات وقت التشغيل المشتركة لجهاز Docker الافتراضي
اتبع دليل وقت التشغيل المشترك لمسار مضيف Docker العام:
ملاحظات تشغيل خاصة بـ GCP
إذا فشل البناء برسالة Killed أو exit code 137 أثناء pnpm install --frozen-lockfile، فهذا يعني نفاد ذاكرة الجهاز الافتراضي. استخدم e2-small كحد أدنى، أو e2-medium للحصول على عمليات بناء أولية أكثر موثوقية.
عند الربط بشبكة LAN (OPENCLAW_GATEWAY_BIND=lan)، اضبط أصل متصفح موثوقًا قبل المتابعة:
docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-jsonاستبدل 18789 بالمنفذ الذي ضبطته إذا كنت قد غيّرته.
الوصول من حاسوبك المحمول
أنشئ نفق SSH لإعادة توجيه منفذ Gateway:
gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789افتح http://127.0.0.1:18789/ في متصفحك.
أعد طباعة رابط نظيف للوحة المعلومات:
docker compose run --rm openclaw-cli dashboard --no-openإذا طلبت واجهة المستخدم مصادقة باستخدام سر مشترك، فألصق الرمز المميز أو كلمة المرور المضبوطة في إعدادات واجهة التحكم (يكتب مسار Docker هذا رمزًا مميزًا افتراضيًا؛ استخدم كلمة المرور التي ضبطتها بدلًا منه إذا انتقلت إلى المصادقة بكلمة مرور).
إذا عرضت واجهة التحكم unauthorized أو disconnected (1008): pairing required، فوافق على جهاز المتصفح:
docker compose run --rm openclaw-cli devices listdocker compose run --rm openclaw-cli devices approve <requestId>راجع وقت تشغيل جهاز Docker الافتراضي للاطلاع على خريطة الاستمرارية المشتركة ومسار التحديث.
استكشاف الأخطاء وإصلاحها
رُفض اتصال SSH
قد يستغرق نشر مفتاح SSH من دقيقة إلى دقيقتين بعد إنشاء الجهاز الافتراضي. انتظر وأعد المحاولة.
مشكلات OS Login
تحقّق من ملف تعريف OS Login:
gcloud compute os-login describe-profileتأكد من أن حسابك يمتلك أذونات IAM المطلوبة (Compute OS Login أو Compute OS Admin Login).
نفاد الذاكرة
إذا فشل بناء Docker برسالة Killed وexit code 137، فهذا يعني أن الجهاز الافتراضي أُنهي بسبب نفاد الذاكرة:
# أوقف الجهاز الافتراضي أولًاgcloud compute instances stop openclaw-gateway --zone=us-central1-a # غيّر نوع الجهازgcloud compute instances set-machine-type openclaw-gateway \ --zone=us-central1-a \ --machine-type=e2-small # شغّل الجهاز الافتراضيgcloud compute instances start openclaw-gateway --zone=us-central1-aحسابات الخدمة (أفضل ممارسة أمنية)
للاستخدام الشخصي، يعمل حساب المستخدم الافتراضي لديك جيدًا. للأتمتة أو CI/CD، أنشئ حساب خدمة مخصصًا بأدنى قدر من الأذونات:
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"تجنّب دور Owner للأتمتة؛ استخدم أضيق دور يفي بالغرض. راجع فهم الأدوار.
الخطوات التالية
- إعداد قنوات المراسلة: القنوات
- إقران الأجهزة المحلية باعتبارها عُقدًا: العُقد
- إعداد Gateway: إعداد Gateway