جديد 📢 عرض الإطلاق لفترة محدودة: خصم حتى 70% على شهرك الأول في كل لعبة.عرض الباقات

كيف تشغّل OpenClaw بـ Docker

OpenClawUpdated Nov 6, 20267 min read

الجواب المختصر. استنسخ مستودع OpenClaw وشغّل ./scripts/docker/setup.sh مع ضبط OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"، ليستخدم السكربت الصورة الرسمية الجاهزة بدل بناء صورة (البناء من المصدر يحتاج 6 GB من RAM على الأقل). يشغّل السكربت onboarding ويكتب رمز Gateway في .env ويشغّل Gateway بـ Docker Compose. اربط مجلد الحالة ~/.openclaw كي لا يضيع شيء عند استبدال الحاوية، وأبقِ المنفذ 18789 مغلقًا أمام الإنترنت: المنافذ التي ينشرها Docker تتجاوز UFW. امنح الحاوية 2 GB من الذاكرة على الأقل؛ فعند تحديدها بـ 1 GB بدون swap أُنهيت الصورة الرسمية بسبب نقص الذاكرة في اختبارنا.

روجع في 6 نوفمبر 2026، وهو صحيح لإصدار OpenClaw 2026.11.1.

يعتمد هذا الدليل على وثائق Docker في OpenClaw، وملف docker-compose.yml في مستودعه، واختبار للصورة الرسمية أجريناه على خادمنا (الأرقام أدناه).

هل تحتاج Docker أصلًا؟

تصف وثائق OpenClaw استخدام Docker بأنه اختياري: مفيد لتشغيل Gateway معزول ومؤقت، أو لجهاز لا تريد تثبيت Node.js عليه. على VPS لا يشغّل سوى OpenClaw، فالطريق الأساسي هو تثبيت npm العادي مع خدمة systemd (راجع كيف تستضيف OpenClaw على مدار الساعة). ويناسبك Docker عندما تشغّل بالفعل أشياء أخرى في حاويات.

ما هي الصورة الرسمية

  • أين: ghcr.io/openclaw/openclaw (الأساسية) ونسخة Docker Hub المطابقة openclaw/openclaw. ينصح OpenClaw بعدم استخدام نسخ غير رسمية.
  • الوسوم: latest، وإصدارات محددة مثل 2026.11.1، ونسخ -slim، ونسخ -browser التي تتضمن Chromium لأتمتة المتصفح.
  • في الداخل: تعمل بالمستخدم node تحت tini، ونقطة الدخول فيها تشغّل openclaw doctor --fix على الحالة المربوطة قبل بدء Gateway، فترقيات الصورة تنقل الحالة نيابة عنك. ويستدعي فحص صحة مدمج العنوان /healthz.

ما الذي قسناه

سحبنا ghcr.io/openclaw/openclaw:2026.11.1 على أحد خوادم Linux لدينا وشغّلنا Gateway مرتين بـ docker run (وليس Compose)، بدون نموذج وبدون تطبيق دردشة وبدون منفذ منشور، ومحدودًا بمعالج واحد وبدون swap: مرة بحد ذاكرة 2 GB ومرة بحد 1 GB. أرقام الذاكرة بوحدة MiB كما يبلغ عنها Linux.

النتيجة
التنزيلنحو 695 MB مضغوطة (amd64)، و2,818 MiB (نحو 3 GB) على القرص بعد السحب
Node.js في الصورة24.22.1
حد 2 GB: البدءأجاب /healthz بعد 48 ثانية من docker run، بما في ذلك مرور doctor. حمّل Gateway 14 إضافة وسجّل "ready" بعد 22 ثانية من بدئه
حد 2 GB: الذاكرة في الخمول1,349 MiB بعد 30 ثانية من استجابتها لفحص الصحة، و1,106 MiB بعد دقيقتين، وأعلى قيمة 1,439 MiB. لا أحداث نفاد ذاكرة
حد 1 GBوصل Gateway إلى "ready"، ثم أُنهيت الحاوية كلها بسبب نقص الذاكرة بعد نحو 54 ثانية من البدء (رمز الخروج 137)

تعطي الأسئلة الشائعة في OpenClaw رقم 1 GB حدًا أدنى مطلقًا لـ VPS. مع هذا الإصدار، في حاوية محدودة بـ 1 GB، لم يكن ذلك كافيًا. خطط لـ 2 GB أو أكثر، وأكثر من ذلك للمحادثات الحقيقية أو عدة تطبيقات دردشة أو صورة -browser. المزيد في كم ذاكرة يحتاج OpenClaw.

خطوة بخطوة مع Docker Compose

  1. ثبّت Docker Engine وDocker Compose v2، ثم احصل على المستودع:
    git clone https://github.com/openclaw/openclaw.git
    cd openclaw
  2. شغّل سكربت الإعداد بالصورة الجاهزة:
    export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
    ./scripts/docker/setup.sh
    بدون OPENCLAW_IMAGE يبني السكربت openclaw:local من المصدر، وهذا يحتاج 6 GB من RAM على الأقل؛ وأي بناء ينتهي بـ Killed أو برمز الخروج 137 نفدت ذاكرته. يطلب السكربت مفتاح API الخاص بمزودك، ويولّد رمز Gateway ويكتبه في .env، ثم يشغّل Gateway.
  3. افتح لوحة التحكم على http://127.0.0.1:18789/ من الجهاز نفسه والصق الرمز من .env في Settings. إذا احتجت الرابط مرة أخرى: docker compose run --rm openclaw-cli dashboard --no-open.
  4. أضف تطبيق دردشة:
    docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"
    docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"
    تبدأ الرسائل الخاصة الجديدة في وضع الاقتران (pairing): راسل بوتك، ثم شغّل docker compose run --rm openclaw-cli pairing approve telegram <CODE>. المزيد في ربط OpenClaw بـ Telegram.
  5. تحقق منه:
    docker compose ps
    docker compose logs --tail=100 openclaw-gateway
    curl -fsS http://127.0.0.1:18789/healthz

لجهاز بلا أسئلة في الطرفية، توثّق OpenClaw تهيئة بدون واجهة (headless): ضع مفتاح المزود وOPENCLAW_GATEWAY_TOKEN وTELEGRAM_BOT_TOKEN في .env، ثم شغّل onboard --non-interactive وchannels add --channel telegram --use-env عبر حاوية Gateway قبل docker compose up -d openclaw-gateway.

الاستمرارية: ما يجب ربطه ونسخه احتياطيًا

داخل الحاويةما يحتويهجهة المضيف (الافتراضي في الإعداد)
/home/node/.openclawopenclaw.json، ومخازن SQLite (مصادقة المزود، والجلسات)، والإضافات المثبتة، وأسرار .env$HOME/.openclaw
/home/node/.openclaw/workspaceمساحة عمل الوكيل وملفات ذاكرته$HOME/.openclaw/workspace
/home/node/.config/openclawمفتاح بيانات الاعتماد المشفرة القديمة$HOME/.openclaw-auth-profile-secrets
  • اربط المجلد، لا الملف الواحد أبدًا. يحفظ OpenClaw الملف openclaw.json باستبداله، لذا قد يجعل ربط ملف واحد (bind mount) الحاوية تقرأ نسخة قديمة.
  • أبقِ الحالة على قرص محلي. مشاركات NFS وSMB وCIFS لا توفر لـ SQLite تنسيق الذاكرة المشتركة الذي يحتاجه وقد تُتلفه.
  • Gateway واحد لكل مجلد حالة. أوقف الحاوية القديمة قبل تشغيل بديلتها.
  • تعامل مع النسخ الاحتياطية كأسرار. تقول وثائق OpenClaw إن رموز OAuth تُخزَّن كنص عادي في ملفات SQLite تلك.
  • كل ما تثبّته داخل حاوية تعمل يضيع عند إعادة إنشائها. الأدوات الإضافية تدخل في الصورة وقت البناء.

أبقِ المنفذ خاصًا

ينشر ملف docker-compose.yml في المستودع المنفذ 18789 (و18790 و3978) على المضيف ويشغّل Gateway بالخيار --bind lan، فيصل المنفذ المنشور إليه. على VPS يعني ذلك أن منفذ لوحة التحكم على العنوان العام ما لم تحجبه. فخّان:

  • UFW لا يغطيه. تمر منافذ الحاويات المنشورة عبر سلاسل إعادة التوجيه الخاصة بـ Docker، وليس فقط عبر قواعد INPUT للمضيف. تقدم وثائق OpenClaw قواعد لسلسلة DOCKER-USER؛ وجدار حماية سحابي لا يسمح إلا بـ SSH يفي بالغرض أيضًا.
  • استخدم نفقًا للوصول إلى لوحة التحكم: ssh -N -L 18789:127.0.0.1:18789 root@<vps-ip>، ثم افتح http://127.0.0.1:18789/ على حاسوبك.

كما يضبط Compose الخيار restart: unless-stopped، فيعود Gateway بعد انهيار أو إعادة إقلاع، ويُسقط الصلاحيتين NET_RAW وNET_ADMIN.

التحديث

docker compose pull openclaw-gateway openclaw-cli
docker compose stop openclaw-gateway
docker compose up -d openclaw-gateway

تصلح نقطة دخول الصورة الحالة المربوطة وتنقلها عند البدء. انسخ ~/.openclaw احتياطيًا أولًا. مع latest تنتقل مع كل إصدار مستقر؛ وثبّت وسمًا مثل 2026.11.1 لتبقى على إصدار بعينه.

تجاوز Docker: شغّل OpenClaw على PlayNHost

خادم PlayNHost هو أصلًا حاوية معزولة بحد ذاكرة خاص بها، فلا شيء تكتب له ملف compose. لا نستخدم الصورة الرسمية: يشغّل الخادم Node.js 26 ويثبّت حزمة npm باسم openclaw عند أول بدء، ثم يبحث عن إصدار أحدث عند كل بدء.

  • الإعداد: الصق مفتاح مزود ذكاء اصطناعي ورمز بوت Telegram أو Discord في صفحة الوكيل، ثم اضغط Start. في اختبارنا للإعداد نفسه كان الوكيل يعمل بعد 67 ثانية من أول Start، بما في ذلك التثبيت.
  • الاستمرارية: يوجد .openclaw على قرص الخادم وفي نسخه الاحتياطية (نحو 4 MB في اختبارنا)؛ أما البرنامج وذاكرته المؤقتة فيُعاد تثبيتهما ولا يُنسخان احتياطيًا.
  • المنفذ: يستمع Gateway فقط على عنوان loopback الخاص بالخادم، المنفذ 18789، برمز تولّده اللوحة. لا شيء يُنشر، فلا جدار حماية قد تخطئ في ضبطه.
  • الذاكرة: خطط 2 GB و4 GB و8 GB. يرفض البدء تشغيل OpenClaw على أقل من 2 GB.
  • غير متاح بعد: لوحة التحكم على الويب، وتطبيقات الدردشة غير Telegram وDiscord، وأتمتة المتصفح (لا Chromium).

أنشئ خادم OpenClaw.

PlayNHost غير تابعة لـ OpenClaw Foundation. OpenClaw برنامج مفتوح المصدر بترخيص MIT.

تستضيفه في مكان آخر بالفعل؟ انقل سيرفرك إلينا

أحدث مقالات المدونة