- يشغّل Podman حاوية Gateway.
- تمثّل واجهة
openclawCLI على المضيف مستوى التحكم. - توجد الحالة الدائمة على المضيف ضمن
~/.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
--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 العادية تلقائيًا داخل تلك الحاوية:~/.openclaw/.env، ويمرّر متغيرات بيئة وقت التشغيل صراحةً إلى الحاوية؛ ولا يمرّر ملف البيئة كاملًا إلى Podman.
Podman وTailscale
للوصول عبر HTTPS أو من متصفح بعيد، اتبع وثائق Tailscale الرئيسية. ملاحظات خاصة بـPodman:- أبقِ مضيف النشر في Podman مضبوطًا على
127.0.0.1. - فضّل
tailscale serveالمُدار بواسطة المضيف علىopenclaw gateway --tailscale serve. - على macOS، إذا كان سياق مصادقة الجهاز في المتصفح المحلي غير موثوق، فاستخدم الوصول عبر Tailscale بدلًا من حلول الأنفاق المحلية المؤقتة.
Systemd (Quadlet، اختياري)
إذا شغّلت./scripts/podman/setup.sh --quadlet، فسيثبّت الإعداد ملف Quadlet في ~/.config/containers/systemd/openclaw.container.
بعد تعديل ملف 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
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 بصورة طبيعية:
,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 في وضع الإنفاذ أو السماح.