كيفية نشر OpenClaw على مثيلات Cloud Run

1. مقدمة

نظرة عامة

في هذا الدرس التطبيقي، ستنشر مثيلاً آمنًا ومستمرًا بالكامل من OpenClaw، وهو إطار عمل مفتوح المصدر لوكيل الذكاء الاصطناعي، إلى مثيلات Cloud Run. يمكنك التفاعل مع وكيل الذكاء الاصطناعي مباشرةً باستخدام واجهة مستخدم الويب المضمّنة في OpenClaw (مع خيار ربط قنوات المراسلة مثل Telegram أو WhatsApp)، والاحتفاظ بنسخة احتياطية من مساحة العمل الرئيسية باستخدام Google Cloud Storage، وإدارة بيانات اعتماد واجهة برمجة التطبيقات بشكل آمن باستخدام Google Cloud Secret Manager.

قبل البدء، يمكنك استكشاف مستندات OpenClaw للتعرّف على بنية OpenClaw وأدواتها وسير عمل الوكيل.

الإجراءات التي ستنفذّها

  • فعِّل واجهات Google Cloud APIs المطلوبة وأنشئ حساب خدمة مخصّصًا يتضمّن أذونات "إدارة الهوية وإمكانية الوصول" المطلوبة.
  • تخزين مفاتيح واجهة برمجة التطبيقات وكلمات مرور البوابة بشكل آمن في Secret Manager
  • جهِّز ملف إعداد openclaw.json مع تفعيل إعدادات نموذج Gemini وواجهة مستخدم البوابة.
  • جهِّز حزمة Cloud Storage للاحتفاظ بحالة الحاوية.
  • يمكنك نشر OpenClaw باستخدام gcloud beta run instances deploy.
  • يمكنك التفاعل مباشرةً مع وكيل الذكاء الاصطناعي OpenClaw باستخدام واجهة مستخدم الويب المضمّنة.
  • (اختياري) اضبط قناة مراسلة (Telegram أو WhatsApp).
  • (اختياري) يمكنك توسيع إمكانات الوكيل من خلال إضافة مهارات مخصّصة إلى Cloud Storage.

أهداف الدورة التعليمية

  • كيفية نشر OpenClaw إلى مثيلات Cloud Run باستخدام واجهة مستخدم الويب المضمّنة للتحكّم
  • كيفية ربط حِزم Cloud Storage بمثيلات Cloud Run
  • كيفية إدخال أسرار Secret Manager بأمان كمتغيرات بيئية في Cloud Run
  • كيفية تشغيل أحمال عمل الوكيل المستمرة والممتدة على مثيلات Cloud Run
  • كيفية ضبط مهارات الوكيل المخصّصة وتحميلها إلى Cloud Storage

2. الإعداد والمتطلبات

إعداد مشروع Google Cloud Platform

  1. سجِّل الدخول إلى Google Cloud Console.
  2. أنشئ مشروعًا على Google Cloud أو اختَر مشروعًا حاليًا.
  3. تأكَّد من تفعيل الفوترة لمشروعك على Google Cloud.

فتح Cloud Shell

فعِّل Google Cloud Shell من شريط الأدوات العلوي في Cloud Console.

إعداد المشروع وتثبيت الإصدار التجريبي من gcloud

أولاً، اضبط مشروعك ومنطقتك كمتغيرات بيئية.

export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=<YOUR_REGION>

الآن، اضبط مشروعك وأكِّده.

gcloud config set project $PROJECT_ID
gcloud config get project

تأكَّد من تثبيت المكوّن beta في gcloud beta run instances:

gcloud components install beta --quiet

وتأكَّد من أنّ gcloud محدّث.

gcloud components update

تفعيل واجهات Google Cloud APIs المطلوبة

في Cloud Shell، فعِّل واجهات برمجة التطبيقات Cloud Run وSecret Manager وCloud Storage وGemini:

gcloud services enable \
  run.googleapis.com \
  secretmanager.googleapis.com \
  storage.googleapis.com \
  generativelanguage.googleapis.com \
  compute.googleapis.com

3- (اختياري) إعداد عمليات الدمج مع تطبيقات المراسلة (Telegram أو WhatsApp)

يمكنك ربط OpenClaw بتطبيق Telegram أو WhatsApp. اختَر الخيار أ أو الخيار ب أدناه.

الخيار (أ): إعداد روبوت Telegram

  1. افتح Telegram وابحث عن @BotFather.
  2. أرسِل الأمر /newbot واتّبِع التعليمات لتحديد اسم برنامج التتبُّع واسم المستخدم.
  3. انسخ الرمز المميز لواجهة برمجة تطبيقات HTTP الذي تم إنشاؤه (مثلاً، 123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ).
  4. ابحث عن @userinfobot على Telegram، وأرسِل /start، وانسخ رقم تعريف المستخدم الرقمي (مثل 8035936176).

الخيار (ب): إعداد WhatsApp

  1. احصل على رقم هاتف WhatsApp الشخصي بالتنسيق الدولي بدون مسافات أو رموز (مثل +15551234567).
  2. يتصل OpenClaw من خلال سياسة القائمة المسموح بها لقناة WhatsApp.

4. إنشاء حساب خدمة مخصّص

للالتزام بمبدأ الحدّ الأدنى من الامتيازات، أنشئ حساب خدمة مخصّصًا لإدارة الهوية وإمكانية الوصول (IAM) في OpenClaw:

export SERVICE_ACCOUNT_NAME="openclaw-sa"
gcloud iam service-accounts create ${SERVICE_ACCOUNT_NAME} \
  --display-name="OpenClaw Service Account"

export SERVICE_ACCOUNT="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"

5- تخزين بيانات الاعتماد في Secret Manager

سنخزّن بيانات اعتماد واجهة برمجة التطبيقات الحسّاسة في Google Cloud Secret Manager حتى يتمكّن Cloud Run من إدخالها بأمان في الحاوية عند بدء التشغيل.

1. الحصول على مفتاح Gemini API وتخزينه

  1. انتقِل إلى Google AI Studio وسجِّل الدخول باستخدام حسابك على Google.
  2. انقر على إنشاء مفتاح API واختَر مشروعك على Google Cloud (${PROJECT_ID}).
  3. انسخ مفتاح واجهة برمجة التطبيقات الذي تم إنشاؤه.

خزِّن مفتاح واجهة برمجة التطبيقات في Secret Manager وامنح حساب الخدمة إذن الوصول:

echo -n "YOUR_GEMINI_API_KEY" | gcloud secrets create gemini-api-key \
  --data-file=- \
  --replication-policy="automatic"

gcloud secrets add-iam-policy-binding gemini-api-key \
  --member="serviceAccount:${SERVICE_ACCOUNT}" \
  --role="roles/secretmanager.secretAccessor"

2. إنشاء كلمة مرور البوابة وحفظها

لحماية مثيل OpenClaw المتاح للجميع، أنشئ كلمة مرور عشوائية آمنة وخزِّنها في Secret Manager:

export OPENCLAW_GATEWAY_PASSWORD=$(openssl rand -hex 16)
echo "Generated Gateway Password: ${OPENCLAW_GATEWAY_PASSWORD}"

echo -n "${OPENCLAW_GATEWAY_PASSWORD}" | gcloud secrets create openclaw-gateway-password \
  --data-file=- \
  --replication-policy="automatic"

gcloud secrets add-iam-policy-binding openclaw-gateway-password \
  --member="serviceAccount:${SERVICE_ACCOUNT}" \
  --role="roles/secretmanager.secretAccessor"

3- (اختياري) إنشاء سر القناة (Telegram أو WhatsApp)

  • بالنسبة إلى Telegram:
    echo -n "YOUR_TELEGRAM_BOT_TOKEN" | gcloud secrets create telegram-bot-token \
      --data-file=- \
      --replication-policy="automatic"
    
    gcloud secrets add-iam-policy-binding telegram-bot-token \
      --member="serviceAccount:${SERVICE_ACCOUNT}" \
      --role="roles/secretmanager.secretAccessor"
    
  • بالنسبة إلى WhatsApp:
    echo -n "YOUR_WHATSAPP_TOKEN_OR_KEY" | gcloud secrets create whatsapp-token \
      --data-file=- \
      --replication-policy="automatic"
    
    gcloud secrets add-iam-policy-binding whatsapp-token \
      --member="serviceAccount:${SERVICE_ACCOUNT}" \
      --role="roles/secretmanager.secretAccessor"
    

6. إعداد حزمة Cloud Storage وملف openclaw.json

يتطلّب OpenClaw ملف إعداد باسم openclaw.json في /home/node/.openclaw/openclaw.json.

  1. إنشاء حزمة في Cloud Storage ومنح إذن الوصول:
    export BUCKET_NAME="openclaw-state-${PROJECT_ID}"
    gcloud storage buckets create gs://${BUCKET_NAME} --location=${REGION}
    
    gcloud storage buckets add-iam-policy-binding gs://${BUCKET_NAME} \
      --member="serviceAccount:${SERVICE_ACCOUNT}" \
      --role="roles/storage.objectUser"
    
  2. إنشاء openclaw.json: لإنشاء ملف باسم openclaw.json في Cloud Shell عدِّل القسم channels ليتوافق مع القناة التي اخترتها (Telegram أو WhatsApp):
    {
      "gateway": {
        "mode": "local",
        "port": 18789,
        "trustedProxies": ["0.0.0.0/0"],
        "bind": "lan",
        "auth": {
          "password": "${OPENCLAW_GATEWAY_PASSWORD}"
        },
        "controlUi": {
          "dangerouslyDisableDeviceAuth": true,
          "allowedOrigins": ["*"],
          "enabled": true
        }
      },
      "agents": {
        "defaults": {
          "model": {
            "primary": "google/gemini-3.1-pro-preview"
          },
          "sandbox": {
            "mode": "off"
          }
        }
      },
      "channels": {
        "telegram": {
          "enabled": true,
          "defaultAccount": "default",
          "accounts": {
            "default": {
              "enabled": true,
              "dmPolicy": "allowlist",
              "allowFrom": [
                "YOUR_TELEGRAM_USER_ID"
              ]
            }
          }
        },
        "whatsapp": {
          "enabled": false,
          "defaultAccount": "default",
          "accounts": {
            "default": {
              "enabled": false,
              "dmPolicy": "allowlist",
              "allowFrom": [
                "+15551234567"
              ]
            }
          }
        }
      },
      "plugins": {
        "entries": {
          "google": { "enabled": true },
          "telegram": { "enabled": true },
          "whatsapp": { "enabled": false }
        }
      }
    }
    
  3. تحميل openclaw.json إلى جذر حزمة Cloud Storage:
    gcloud storage cp openclaw.json gs://${BUCKET_NAME}/openclaw.json
    
    التحقّق من تخطيط حزمة Cloud Storage:تأكَّد من أنّ بنية الحزمة تحتوي على openclaw.json في الجذر:
    gs://${BUCKET_NAME}/
    └── openclaw.json
    

7. نشر OpenClaw على مثيلات Cloud Run

يمكنك نشر OpenClaw باستخدام gcloud beta run instances deploy باتّباع الخطوات التالية:

gcloud beta run instances deploy openclaw-instance \
  --image ghcr.io/openclaw/openclaw:2026.7.1 \
  --service-account ${SERVICE_ACCOUNT} \
  --port 18789 \
  --cpu 4 \
  --memory 4Gi \
  --public \
  --add-volume mount-path=/home/node/.openclaw,type=cloud-storage,mount-options="uid=1000;gid=1000;file-mode=0700;dir-mode=0700",bucket=${BUCKET_NAME} \
  --set-secrets GEMINI_API_KEY=gemini-api-key:latest,OPENCLAW_GATEWAY_PASSWORD=openclaw-gateway-password:latest \
  --region ${REGION}

تفصيل المَعلمات الرئيسية:

  • --image ghcr.io/openclaw/openclaw:2026.7.1: صورة حاوية OpenClaw (مثبّتة على 2026.7.1، وهو أحدث إصدار ثابت من السلسلة 1.x).
  • --service-account ...: لربط حساب الخدمة المخصّص openclaw-sa.
  • --add-volume ...: يربط حزمة Cloud Storage مباشرةً بـ /home/node/.openclaw. يضمن استخدام file-mode=0700;dir-mode=0700 توفّر الأذونات المناسبة لبرنامج OpenClaw.
  • --set-secrets ...: يتم إدخال بيانات الاعتماد مباشرةً من Secret Manager إلى متغيرات البيئة. (اختياري: إذا كنت قد أعددت Telegram في الخطوات الاختيارية، أضِف ,TELEGRAM_BOT_TOKEN=telegram-bot-token:latest إلى --set-secrets.)
  • --public: تسمح هذه السمة بالوصول العلني إلى عنوان URL.

8. التفاعل مباشرةً من خلال واجهة مستخدم الويب OpenClaw

يتضمّن OpenClaw واجهة مستخدم مدمَجة على الويب تتيح لك إدارة وكيل الذكاء الاصطناعي والدردشة معه مباشرةً من المتصفّح:

  1. استرداد عنوان URL لمثيل Cloud Run: في Cloud Shell، نفِّذ ما يلي:
    gcloud beta run instances describe openclaw-instance \
      --region ${REGION} \
      --format="value(status.urls[0])"
    
  2. الوصول إلى واجهة مستخدم OpenClaw Control:
    • افتح عنوان URL الناتج في متصفّح الويب.
    • عندما يُطلب منك المصادقة في واجهة مستخدم OpenClaw Control، اتّبِع الخطوات التالية:
      • أدخِل كلمة مرور البوابة الإلكترونية التي تم إنشاؤها (${OPENCLAW_GATEWAY_PASSWORD}) من Secret Manager.
      • إذا كان نموذج تسجيل الدخول يعرض حقلَين منفصلَين اسم المستخدم وكلمة المرور، اترك حقل اسم المستخدم فارغًا (أو أدخِل admin) وقدِّم ${OPENCLAW_GATEWAY_PASSWORD} في حقل كلمة المرور.
  3. توجيه الطلبات إلى الوكيل (أمثلة على الاستخدام):
    • بعد المصادقة، ستظهر لك "لوحة التحكّم في OpenClaw".
    • اختبِر وكيل OpenClaw من خلال إرسال طلب في واجهة مستخدم المحادثة، مثل "مرحبًا".
    • لاختبار دورة الحياة الطويلة الأمد لآلة Cloud Run الافتراضية، يمكنك أن تطلب من وكيل OpenClaw تنفيذ مهمة أكثر تعقيدًا وطويلة الأمد. على سبيل المثال، يمكنك تتبُّع خلاصة أخبار أو سوق الأوراق المالية وإنشاء تقارير:
      Track the USD-to-EUR exchange rate every 15 minutes for the next 24 hours, while also checking for any recent news updates in the US or the EU that may have an impact on the exchange rate. Generate an end-of-day report for me in this chat that tells me what you expect tomorrow's exchange rate will be.
      
    • على الموظف بعد ذلك تنفيذ هذه المهمة خلال الـ 24 ساعة التالية.

9. (اختياري) التحقّق من عمليات الدمج في قنوات المراسلة

إذا كنت قد أعددت Telegram أو WhatsApp في خطوات الإعداد الاختيارية أعلاه، يمكنك التحقّق من وصول الرسائل باتّباع الخطوات التالية:

  1. تحقَّق من سجلات الجهاز الافتراضي في Cloud Shell:
    gcloud run instances logs read openclaw-instance --region ${REGION} --limit 20
    
  2. افتح Telegram (أو WhatsApp) وأرسِل رسالة (مثل /start أو Hello OpenClaw!).
  3. سيصادق البوت على معرّف المستخدم الخاص بك من خلال قائمة السماح في openclaw.json وسيردّ باستخدام Gemini.

10. مراقبة سجلّات الآلات الافتراضية وفحصها

تسجّل "مثيلات Cloud Run" stdout وstderr من الحاوية وتنقلهما مباشرةً إلى Google Cloud Logging. يمكنك استخدام Cloud Shell أو Cloud Console لتتبُّع عدد الزيارات إلى البوابة وفحص عمليات تشغيل أدوات الوكيل في الوقت الفعلي.

1. قراءة سجلات المثيلات الأخيرة

لاسترداد إدخالات السجلّ الأخيرة من الجهاز الظاهري في Cloud Shell، اتّبِع الخطوات التالية:

gcloud beta run instances logs read openclaw-instance \
  --region ${REGION} \
  --limit 50

2. توقيعات السجلّ الرئيسية التي يجب مراقبتها

عند مراقبة الوكيل قيد التشغيل، ابحث عن أحداث سجلّ وقت التشغيل الرئيسية التالية:

  • [gateway] ready: يؤكّد هذا السطر أنّ بوابة OpenClaw HTTP وWebSocket قد تم إعدادها وأنّها تستمع إلى المنفذ 18789.
  • [gateway] agent model: ...: يعرض نموذج Gemini النشط (مثل google/gemini-3.1-pro-preview أو google/gemini-3.5-flash).
  • [agents/tool-policy]: تعرض هذه السمة الأدوات المسموح بها أو المحظورة بموجب سياستك.
  • [agent/embedded]: يتتبّع هذا القسم عمليات التنفيذ واستدعاء الأدوات من قِبل الوكيل.

3- فحص السجلّات في Google Cloud Console

يمكنك أيضًا عرض السجلّات وفلترتها باستخدام مستكشف السجلّات في Cloud Console:

resource.type="cloud_run_instance"
resource.labels.instance_name="openclaw-instance"

11. (اختياري) توسيع نطاق عمل الوكيل باستخدام المهارات

تتيح OpenClaw استخدام المهارات، وهي حِزم قدرات نمطية تعلّم الوكيل سير عمل معيّنًا وأدوات سطر أوامر متخصّصة وتعليمات خاصة بمجال معيّن.

طريقة عمل المهارات

كل مهارة هي دليل يحتوي على ملف SKILL.md. يبدأ ببيانات وصفية تمهيدية بتنسيق YAML تحدّد البيانات الوصفية (name وdescription)، متبوعةً بتعليمات Markdown:

---
name: summarize-logs
description: Summarize Cloud Run error logs into actionable bullet points.
---

# Log Summarizer Skill

When asked to analyze or summarize logs:
1. Parse error stack traces and group similar errors by frequency.
2. Identify root causes such as memory limits, timeouts, or permission errors.
3. Propose concrete remediation steps.
  • name: معرّف المهارة (يمكن أيضًا استدعاؤه مباشرةً كأمر يبدأ بشرطة مائلة، مثلاً /summarize-logs).
  • description: يحدد متى يجب أن يستدعي نموذج OpenClaw هذه المهارة تلقائيًا في المحادثات العادية.

إضافة مهارة مخصّصة إلى حزمة Cloud Storage

بما أنّ حزمة Cloud Storage يتم ربطها مباشرةً بـ /home/node/.openclaw، يتم تلقائيًا تحميل المهارات الموضوعة ضمن gs://${BUCKET_NAME}/skills/ عند بدء التشغيل والاحتفاظ بها عند إعادة تشغيل الجهاز:

  1. إنشاء دليل مهارات محلية:
    mkdir -p my-skill
    cat << 'EOF' > my-skill/SKILL.md
    ---
    name: summarize-logs
    description: Summarize Cloud Run error logs into actionable bullet points.
    ---
    
    # Log Summarizer Skill
    
    When asked to analyze or summarize logs, group errors by frequency and suggest actionable fixes.
    EOF
    
  2. تحميل التطبيق المصغّر إلى Cloud Storage:
    gcloud storage cp -r my-skill gs://${BUCKET_NAME}/skills/
    
  3. استخدام المهارة في Chat:
    • ارجع إلى واجهة مستخدم الويب الخاصة بعناصر تحكّم OpenClaw.
    • يمكنك الآن تقديم طلب إلى الوكيل باستخدام /summarize-logs أو طرح أسئلة باللغة الطبيعية تتطابق مع وصف المهارة.

12. تنظيف

لتجنُّب تحمّل رسوم في حسابك على Google Cloud مقابل الموارد المستخدَمة في هذا الدرس العملي:

  1. حذف مثيل Cloud Run:
    gcloud beta run instances delete openclaw-instance --region ${REGION} --quiet
    
  2. حذف أسرار Secret Manager:
    gcloud secrets delete gemini-api-key --quiet
    gcloud secrets delete telegram-bot-token --quiet
    gcloud secrets delete openclaw-gateway-password --quiet
    
  3. حذف حزمة Cloud Storage:
    gcloud storage rm -r gs://${BUCKET_NAME}
    
  4. حذف حساب الخدمة المخصّص:
    gcloud iam service-accounts delete ${SERVICE_ACCOUNT} --quiet
    

13. الخاتمة

تهانينا! لقد نشرتَ بنجاح نسخة آمنة وثابتة بالكامل من OpenClaw على مثيلات Cloud Run التي تستند إلى Cloud Storage وSecret Manager وقناة المراسلة المفضّلة لديك.