Skip to main content
شغّل OpenClaw Gateway في حاوية Podman بلا صلاحيات الجذر، يديرها مستخدمك الحالي الذي لا يملك صلاحيات الجذر. النموذج:
  • يشغّل Podman حاوية Gateway.
  • تمثّل واجهة openclaw CLI على المضيف مستوى التحكم.
  • توجد الحالة الدائمة على المضيف ضمن ~/.openclaw افتراضيًا.
  • تستخدم الإدارة اليومية openclaw --container <name> ... بدلًا من sudo -u openclaw أو podman exec أو مستخدم خدمة منفصل.

المتطلبات الأساسية

  • Podman في وضع بلا صلاحيات الجذر
  • OpenClaw CLI مثبّتة على المضيف
  • اختياري: systemd --user إذا كنت تريد بدءًا تلقائيًا مُدارًا بواسطة Quadlet
  • اختياري: sudo فقط إذا كنت تريد استخدام loginctl enable-linger "$(whoami)" لاستمرار التشغيل عند الإقلاع على مضيف بلا واجهة رسومية

البدء السريع

1

الإعداد لمرة واحدة

من جذر المستودع، شغّل ./scripts/podman/setup.sh.يبني هذا openclaw:local في مخزن Podman بلا صلاحيات الجذر الخاص بك (أو يسحب OPENCLAW_IMAGE / OPENCLAW_PODMAN_IMAGE إذا كان مضبوطًا)، وينشئ ~/.openclaw/openclaw.json بالقيمة gateway.mode: "local" إذا كان مفقودًا، وينشئ ~/.openclaw/.env مع OPENCLAW_GATEWAY_TOKEN مولّد إذا كان مفقودًا.متغيرات البيئة الاختيارية لوقت البناء:لاستخدام إعداد مُدار بواسطة Quadlet بدلًا من ذلك (Linux + خدمات مستخدم systemd فقط):
أو اضبط OPENCLAW_PODMAN_QUADLET=1.
2

بدء حاوية Gateway

يبدأ الحاوية باستخدام uid/gid الحاليين لك مع --userns=keep-id ويربط حالة OpenClaw الخاصة بك داخل الحاوية.
3

تشغيل الإعداد الأولي داخل الحاوية

ثم افتح http://127.0.0.1:18789/ واستخدم الرمز المميز من ~/.openclaw/.env.مصادقة النموذج: استخدم المصادقة التي يديرها OpenClaw أثناء الإعداد (مفاتيح Anthropic API، أو مصادقة OpenAI Codex عبر OAuth في المتصفح/رمز الجهاز لخدمة OpenAI المدعومة بواسطة Codex). لا يربط مشغّل Podman مجلدات بيانات اعتماد CLI على المضيف، مثل ~/.claude أو ~/.codex، داخل حاوية الإعداد أو Gateway. تسجيلات دخول CLI الموجودة على المضيف ليست سوى مسارات تسهيل على المضيف نفسه — عند التثبيت داخل حاويات، احتفظ بمصادقة المزوّد في حالة ~/.openclaw المرتبطة التي يديرها الإعداد.
4

إدارة الحاوية قيد التشغيل من CLI المضيف

بعد ذلك، تُشغّل أوامر openclaw العادية تلقائيًا داخل تلك الحاوية:
على macOS، قد تجعل آلة Podman المتصفح يبدو غير محلي بالنسبة إلى Gateway. إذا أبلغت واجهة التحكم عن أخطاء مصادقة الجهاز بعد التشغيل، فاستخدم إرشادات Tailscale في Podman وTailscale.
لا يقرأ المشغّل اليدوي سوى قائمة سماح صغيرة من المفاتيح المرتبطة بـPodman من ~/.openclaw/.env، ويمرّر متغيرات بيئة وقت التشغيل صراحةً إلى الحاوية؛ ولا يمرّر ملف البيئة كاملًا إلى Podman.

Podman وTailscale

للوصول عبر HTTPS أو من متصفح بعيد، اتبع وثائق Tailscale الرئيسية. ملاحظات خاصة بـPodman:
  • أبقِ مضيف النشر في Podman مضبوطًا على 127.0.0.1.
  • فضّل tailscale serve المُدار بواسطة المضيف على openclaw gateway --tailscale serve.
  • على macOS، إذا كان سياق مصادقة الجهاز في المتصفح المحلي غير موثوق، فاستخدم الوصول عبر Tailscale بدلًا من حلول الأنفاق المحلية المؤقتة.
راجع Tailscale وواجهة التحكم.

Systemd ‏(Quadlet، اختياري)

إذا شغّلت ./scripts/podman/setup.sh --quadlet، فسيثبّت الإعداد ملف Quadlet في ~/.config/containers/systemd/openclaw.container. بعد تعديل ملف Quadlet:
لاستمرار التشغيل عند الإقلاع على مضيفات SSH/بلا واجهة رسومية، فعّل الاستمرار لمستخدمك الحالي:
تحافظ خدمة Quadlet المولّدة على بنية افتراضية ثابتة ومحصّنة: منافذ منشورة على 127.0.0.1 ‏(Gateway على 18789 والجسر على 18790)، و--bind lan داخل الحاوية، ونطاق أسماء المستخدم keep-id، وOPENCLAW_NO_RESPAWN=1، وRestart=on-failure، وTimeoutStartSec=300. تقرأ ~/.openclaw/.env بوصفه EnvironmentFile لوقت التشغيل للحصول على قيم مثل OPENCLAW_GATEWAY_TOKEN، لكنها لا تستخدم قائمة السماح الخاصة بتجاوزات Podman للمشغّل اليدوي. لتخصيص منافذ النشر أو مضيف النشر أو خيارات تشغيل الحاوية الأخرى، استخدم المشغّل اليدوي بدلًا من ذلك، أو عدّل ~/.config/containers/systemd/openclaw.container مباشرةً ثم أعد تحميل الخدمة وتشغيلها.

الإعداد ومتغيرات البيئة والتخزين

  • دليل الإعداد: ~/.openclaw
  • دليل مساحة العمل: ~/.openclaw/workspace
  • ملف الرمز المميز: ~/.openclaw/.env
  • مساعد التشغيل: ./scripts/run-openclaw-podman.sh
يربط برنامج التشغيل وQuadlet حالة المضيف داخل الحاوية: OPENCLAW_CONFIG_DIR -> /home/node/.openclaw، وOPENCLAW_WORKSPACE_DIR -> /home/node/.openclaw/workspace. تكون هذه افتراضيًا أدلة على المضيف، وليست حالة مجهولة داخل الحاوية، ولذلك تبقى ملفات openclaw.json وauth-profiles.json الخاصة بكل وكيل، وحالة القنوات/المزوّدين، والجلسات، ومساحة العمل بعد استبدال الحاوية. يضيف الإعداد أيضًا قيم gateway.controlUi.allowedOrigins لـ127.0.0.1 وlocalhost على منفذ Gateway المنشور، كي تعمل لوحة المعلومات المحلية مع ربط الحاوية غير المحلي. متغيرات بيئة مفيدة للمشغّل اليدوي (احتفظ بها في ~/.openclaw/.env؛ يقرأ المشغّل ذلك الملف قبل اعتماد الإعدادات الافتراضية النهائية للحاوية/الصورة): إذا كنت تستخدم قيمة غير افتراضية لـOPENCLAW_CONFIG_DIR أو OPENCLAW_WORKSPACE_DIR، فاضبط المتغيرات نفسها لكلٍ من ./scripts/podman/setup.sh وأوامر ./scripts/run-openclaw-podman.sh launch اللاحقة — لا يحتفظ المشغّل المحلي في المستودع بتجاوزات المسارات المخصصة عبر جلسات الصدفة.

ترقية الصور

بعد إعادة بناء صورة أو سحب صورة جديدة، أعد تشغيل الحاوية أو خدمة Quadlet. عند أول تشغيل لإصدار جديد من OpenClaw، يجري Gateway إصلاحات آمنة للحالة والإضافات قبل الإبلاغ عن الجاهزية. إذا خرج Gateway بدلًا من أن يصبح جاهزًا، فشغّل الصورة نفسها مرة واحدة باستخدام openclaw doctor --fix على الحالة/الإعداد المرتبطين نفسيهما، ثم أعد تشغيل Gateway بصورة طبيعية:
على مضيفات SELinux، أضف ,Z إلى عمليتي الربط كلتيهما إذا منع Podman الوصول إلى الحالة المرتبطة.

أوامر مفيدة

  • سجلات الحاوية: podman logs -f openclaw
  • إيقاف الحاوية: podman stop openclaw
  • إزالة الحاوية: podman rm -f openclaw
  • فتح عنوان URL للوحة المعلومات من CLI المضيف: openclaw dashboard --no-open
  • فحص الصحة/الحالة عبر CLI المضيف: openclaw gateway status --deep (اختبار RPC + فحص إضافي للخدمة)

استكشاف الأخطاء وإصلاحها

  • رُفض الإذن (EACCES) في الإعداد أو مساحة العمل: تعمل الحاوية افتراضيًا باستخدام --userns=keep-id و--user <your uid>:<your gid>. تأكد من أن مستخدمك الحالي يملك مسارات الإعداد/مساحة العمل على المضيف.
  • حُظر بدء Gateway (القيمة gateway.mode=local مفقودة): تأكد من وجود ~/.openclaw/openclaw.json وضبطه gateway.mode="local". ينشئ scripts/podman/setup.sh هذا الملف إذا كان مفقودًا.
  • إعادة تشغيل الحاوية بعد تحديث الصورة: شغّل أمر openclaw doctor --fix لمرة واحدة الوارد في ترقية الصور، ثم ابدأ Gateway مجددًا.
  • أوامر CLI للحاوية تستهدف وجهة خاطئة: استخدم openclaw --container <name> ... صراحةً، أو صدّر OPENCLAW_CONTAINER=<name> في الصدفة.
  • فشل openclaw update مع --container: هذا متوقع. أعد بناء/سحب الصورة، ثم أعد تشغيل الحاوية أو خدمة Quadlet.
  • تعذّر بدء خدمة Quadlet: شغّل systemctl --user daemon-reload، ثم systemctl --user start openclaw.service. وقد تحتاج أيضًا على الأنظمة بلا واجهة رسومية إلى sudo loginctl enable-linger "$(whoami)".
  • يمنع SELinux عمليات الربط: اترك سلوك الربط الافتراضي كما هو؛ يضيف المشغّل :Z تلقائيًا على Linux عندما يكون SELinux في وضع الإنفاذ أو السماح.

ذو صلة