Containers
Nix
ثبّت OpenClaw بأسلوب تصريحي باستخدام nix-openclaw، وهي وحدة Home Manager رسمية متكاملة وجاهزة للاستخدام.
ما الذي ستحصل عليه
- Gateway + تطبيق macOS + أدوات (whisper وspotify والكاميرات)، جميعها مثبّتة على إصدارات محددة
- خدمة launchd تستمر في العمل بعد إعادة التشغيل
- نظام Plugin بإعداد تصريحي
- تراجع فوري:
home-manager switch --rollback
البدء السريع
تثبيت Determinate Nix
إذا لم يكن Nix مثبتًا بالفعل، فاتبع تعليمات أداة تثبيت Determinate Nix.
إنشاء flake محلي
استخدم القالب المصمم للوكيل أولًا من مستودع nix-openclaw:
mkdir -p ~/code/openclaw-local# انسخ templates/agent-first/flake.nix من مستودع nix-openclawإعداد الأسرار
أعِدّ رمز بوت المراسلة ومفتاح API لموفر النموذج. تعمل الملفات النصية العادية في ~/.secrets/ بشكل مناسب.
ملء العناصر النائبة في القالب والتبديل
home-manager switchالتحقق
تأكد من أن خدمة launchd قيد التشغيل وأن البوت يستجيب للرسائل.
راجع ملف README الخاص بـ nix-openclaw للاطلاع على جميع خيارات الوحدة والأمثلة.
سلوك وقت التشغيل في وضع Nix
عند ضبط OPENCLAW_NIX_MODE=1 (يتم ذلك تلقائيًا مع nix-openclaw)، يدخل OpenClaw في وضع حتمي لعمليات التثبيت المُدارة بواسطة Nix. يمكن لحزم Nix الأخرى ضبط الوضع نفسه؛ ويُعد nix-openclaw المرجع الرسمي.
يمكنك أيضًا ضبطه يدويًا:
export OPENCLAW_NIX_MODE=1على macOS، لا يرث تطبيق الواجهة الرسومية متغيرات بيئة الصدفة. فعّل وضع Nix عبر defaults بدلًا من ذلك:
defaults write ai.openclaw.mac openclaw.nixMode -bool trueما الذي يتغير في وضع Nix
- تُعطّل مسارات التثبيت التلقائي والتعديل الذاتي.
- يُعامل
openclaw.jsonعلى أنه غير قابل للتغيير. تظل القيم الافتراضية المستنتجة عند بدء التشغيل مقتصرة على وقت التشغيل، وترفض أدوات كتابة الإعدادات (الإعداد، والتهيئة الأولية، وأمرopenclaw updateالمعدِّل، وتثبيت Plugin أو تحديثه أو إلغاء تثبيته أو تمكينه، وdoctor --fix، وdoctor --generate-gateway-token، وopenclaw config set) تعديل الملف. - عدّل مصدر Nix بدلًا من ذلك. بالنسبة إلى nix-openclaw، استخدم البدء السريع المصمم للوكيل أولًا، واضبط الإعدادات ضمن
programs.openclaw.configأوinstances.<name>.config. - تعرض التبعيات المفقودة رسائل معالجة خاصة بـ Nix.
- تعرض واجهة المستخدم شريطًا لوضع Nix للقراءة فقط.
مسارات الإعدادات والحالة
يقرأ OpenClaw إعدادات JSON5 من OPENCLAW_CONFIG_PATH ويخزن البيانات القابلة للتغيير في OPENCLAW_STATE_DIR. ضمن Nix، اضبط هذين المسارين صراحةً على مواقع مُدارة بواسطة Nix، بحيث تظل حالة وقت التشغيل والإعدادات خارج المخزن غير القابل للتغيير.
| المتغير | القيمة الافتراضية |
|---|---|
OPENCLAW_HOME |
HOME / USERPROFILE / os.homedir() |
OPENCLAW_STATE_DIR |
~/.openclaw |
OPENCLAW_CONFIG_PATH |
$OPENCLAW_STATE_DIR/openclaw.json |
اكتشاف PATH للخدمة
تكتشف خدمة Gateway في launchd/systemd تلقائيًا الملفات التنفيذية ضمن ملفات تعريف Nix، بحيث تعمل وحدات Plugin والأدوات التي تستدعي ملفات تنفيذية مثبتة عبر nix من الصدفة دون إعداد PATH يدويًا:
- عند ضبط
NIX_PROFILES، تُضاف كل قيمة إلى PATH الخاص بالخدمة وفق أولوية من اليمين إلى اليسار (بما يطابق أولوية صدفة Nix: القيمة الواقعة أقصى اليمين هي السائدة). - عند عدم ضبط
NIX_PROFILES، يُضاف~/.nix-profile/binكمسار احتياطي.
ينطبق ذلك على بيئتي خدمة launchd في macOS وsystemd في Linux.