- يشغّل Podman حاوية Gateway.
- يكون
openclawCLI على المضيف هو مستوى التحكم. - تكون الحالة الدائمة على المضيف تحت
~/.openclawافتراضيًا. - تستخدم الإدارة اليومية
openclaw --container <name> ...بدلًا منsudo -u openclawأوpodman execأو مستخدم خدمة منفصل.
المتطلبات المسبقة
- Podman في وضع بلا جذر
- OpenClaw CLI مثبّت على المضيف
- اختياري:
systemd --userإذا كنت تريد تشغيلًا تلقائيًا مُدارًا بواسطة Quadlet - اختياري:
sudoفقط إذا كنت تريدloginctl enable-linger "$(whoami)"لاستمرارية التشغيل بعد الإقلاع على مضيف بلا شاشة
البدء السريع
Run onboarding inside the container
شغّل
./scripts/run-openclaw-podman.sh launch setup، ثم افتح http://127.0.0.1:18789/.- يبني
./scripts/podman/setup.shالصورةopenclaw:localفي مخزن Podman بلا جذر لديك افتراضيًا، أو يستخدمOPENCLAW_IMAGE/OPENCLAW_PODMAN_IMAGEإذا ضبطت أحدهما. - ينشئ
~/.openclaw/openclaw.jsonمعgateway.mode: "local"إذا كان مفقودًا. - ينشئ
~/.openclaw/.envمعOPENCLAW_GATEWAY_TOKENإذا كان مفقودًا. - بالنسبة لعمليات التشغيل اليدوية، يقرأ المساعد قائمة سماح صغيرة فقط من المفاتيح المتعلقة بـ Podman من
~/.openclaw/.envويمرر متغيرات بيئة تشغيل صريحة إلى الحاوية؛ ولا يمرر ملف البيئة كاملًا إلى Podman.
OPENCLAW_PODMAN_QUADLET=1.
متغيرات بيئة اختيارية للبناء/الإعداد:
OPENCLAW_IMAGEأوOPENCLAW_PODMAN_IMAGE— استخدم صورة موجودة/مجلوبة بدلًا من بناءopenclaw:localOPENCLAW_IMAGE_APT_PACKAGES— ثبّت حزم apt إضافية أثناء بناء الصورة (يقبل أيضًاOPENCLAW_DOCKER_APT_PACKAGESالقديم)OPENCLAW_IMAGE_PIP_PACKAGES— ثبّت حزم Python إضافية أثناء بناء الصورة؛ ثبّت الإصدارات واستخدم فقط فهارس الحزم التي تثق بهاOPENCLAW_EXTENSIONS— ثبّت اعتماديات Plugin مسبقًا وقت البناءOPENCLAW_INSTALL_BROWSER— ثبّت Chromium و Xvfb مسبقًا لأتمتة المتصفح (اضبطه على1للتفعيل)
--userns=keep-id ويربط حالة OpenClaw لديك داخل الحاوية.
الإعداد الأولي:
http://127.0.0.1:18789/ واستخدم الرمز من ~/.openclaw/.env.
مصادقة النموذج في Podman:
- استخدم المصادقة المُدارة بواسطة OpenClaw أثناء الإعداد: مفاتيح Anthropic API لـ Anthropic، أو مصادقة OpenAI Codex عبر OAuth في المتصفح/رمز الجهاز لـ OpenAI المدعوم بـ Codex.
- لا يربط مشغّل Podman مجلدات بيانات اعتماد CLI على المضيف مثل
~/.claudeأو~/.codexداخل حاوية الإعداد أو Gateway. - تسجيلات دخول CLI الموجودة على المضيف هي مسارات تسهيل على المضيف نفسه. بالنسبة لتثبيتات الحاويات، أبقِ مصادقة المزوّد في حالة
~/.openclawالمربوطة التي يديرها الإعداد.
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 في:
- بدء:
systemctl --user start openclaw.service - إيقاف:
systemctl --user stop openclaw.service - الحالة:
systemctl --user status openclaw.service - السجلات:
journalctl --user -u openclaw.service -f
الإعدادات والبيئة والتخزين
- دليل الإعدادات:
~/.openclaw - دليل مساحة العمل:
~/.openclaw/workspace - ملف الرمز:
~/.openclaw/.env - مساعد التشغيل:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR->/home/node/.openclawOPENCLAW_WORKSPACE_DIR->/home/node/.openclaw/workspace
openclaw.json، وملف auth-profiles.json لكل وكيل، وحالة القنوات/المزوّدين،
والجلسات، ومساحة العمل بعد استبدال الحاوية.
كما يجهّز إعداد Podman gateway.controlUi.allowedOrigins لـ 127.0.0.1 و localhost على منفذ Gateway المنشور لكي تعمل لوحة المعلومات المحلية مع ربط الحاوية غير المعتمد على loopback.
متغيرات بيئة مفيدة للمشغّل اليدوي:
OPENCLAW_PODMAN_CONTAINER— اسم الحاوية (openclawافتراضيًا)OPENCLAW_PODMAN_IMAGE/OPENCLAW_IMAGE— الصورة المراد تشغيلهاOPENCLAW_PODMAN_GATEWAY_HOST_PORT— منفذ المضيف المعين إلى منفذ الحاوية18789OPENCLAW_PODMAN_BRIDGE_HOST_PORT— منفذ المضيف المعين إلى منفذ الحاوية18790OPENCLAW_PODMAN_PUBLISH_HOST— واجهة المضيف للمنافذ المنشورة؛ الافتراضي هو127.0.0.1OPENCLAW_GATEWAY_BIND— وضع ربط Gateway داخل الحاوية؛ الافتراضي هوlanOPENCLAW_PODMAN_USERNS—keep-id(الافتراضي)، أوauto، أوhost
~/.openclaw/.env قبل تثبيت افتراضيات الحاوية/الصورة، لذلك يمكنك حفظ هذه القيم هناك.
إذا استخدمت OPENCLAW_CONFIG_DIR أو OPENCLAW_WORKSPACE_DIR غير افتراضي، فاضبط المتغيرات نفسها لكل من أوامر ./scripts/podman/setup.sh وأوامر ./scripts/run-openclaw-podman.sh launch اللاحقة. لا يحفظ المشغّل المحلي في المستودع تجاوزات المسارات المخصصة عبر جلسات shell.
ملاحظة Quadlet:
- تحافظ خدمة Quadlet المُولّدة عمدًا على شكل افتراضي ثابت ومُحصّن: منافذ منشورة على
127.0.0.1، و--bind lanداخل الحاوية، ومساحة أسماء مستخدمkeep-id. - تثبّت
OPENCLAW_NO_RESPAWN=1، وRestart=on-failure، وTimeoutStartSec=300. - تنشر كلًا من
127.0.0.1:18789:18789(Gateway) و127.0.0.1:18790:18790(الجسر). - تقرأ
~/.openclaw/.envكملفEnvironmentFileوقت التشغيل لقيم مثلOPENCLAW_GATEWAY_TOKEN، لكنها لا تستهلك قائمة السماح الخاصة بتجاوزات Podman للمشغّل اليدوي. - إذا كنت تحتاج إلى منافذ نشر مخصصة، أو مضيف نشر، أو أعلام أخرى لتشغيل الحاوية، فاستخدم المشغّل اليدوي أو عدّل
~/.config/containers/systemd/openclaw.containerمباشرة، ثم أعد تحميل الخدمة وأعد تشغيلها.
أوامر مفيدة
- سجلات الحاوية:
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هذا إذا كان مفقودًا. - أوامر CLI داخل الحاوية تستهدف وجهة خاطئة: استخدم
openclaw --container <name> ...صراحة، أو صدّرOPENCLAW_CONTAINER=<name>في shell لديك. - فشل
openclaw updateمع--container: هذا متوقع. أعد بناء/جلب الصورة، ثم أعد تشغيل الحاوية أو خدمة Quadlet. - خدمة Quadlet لا تبدأ: شغّل
systemctl --user daemon-reload، ثمsystemctl --user start openclaw.service. على الأنظمة بلا شاشة قد تحتاج أيضًا إلىsudo loginctl enable-linger "$(whoami)". - SELinux يحظر ربط التحميلات: اترك سلوك التحميل الافتراضي كما هو؛ يضيف المشغّل
:Zتلقائيًا على Linux عندما يكون SELinux في وضع الفرض أو السماح.