Containers
Nix
OpenClaw را بهصورت اعلانی با nix-openclaw نصب کنید - ماژول Home Manager رسمی، کامل و آمادهبهکار.
چه چیزهایی دریافت میکنید
- Gateway + برنامه macOS + ابزارها (whisper، spotify، cameras) -- همگی پینشده
- سرویس launchd که پس از راهاندازی مجدد هم پایدار میماند
- سیستم Plugin با پیکربندی اعلانی
- بازگشت فوری:
home-manager switch --rollback
شروع سریع
نصب Determinate Nix
اگر Nix از قبل نصب نیست، دستورالعملهای نصاب Determinate Nix را دنبال کنید.
ایجاد یک flake محلی
از قالب agent-first در مخزن nix-openclaw استفاده کنید:
mkdir -p ~/code/openclaw-local
# Copy templates/agent-first/flake.nix from the nix-openclaw repo
پیکربندی secrets
توکن ربات پیامرسان و کلید API ارائهدهنده مدل خود را تنظیم کنید. فایلهای ساده در ~/.secrets/ کاملا مناسب هستند.
پر کردن placeholderهای قالب و switch
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، برنامه GUI بهطور خودکار متغیرهای محیطی shell را به ارث نمیبرد. در عوض، حالت Nix را از طریق defaults فعال کنید:
defaults write ai.openclaw.mac openclaw.nixMode -bool true
چه چیزهایی در حالت Nix تغییر میکند
- جریانهای نصب خودکار و خود-تغییری غیرفعال میشوند
openclaw.jsonتغییرناپذیر در نظر گرفته میشود. پیشفرضهای مشتقشده هنگام راهاندازی فقط در زمان اجرا باقی میمانند، و نویسندههای پیکربندی مانند setup، onboarding، دستور تغییردهندهopenclaw update، نصب/بهروزرسانی/حذف/فعالسازی Plugin،doctor --fix،doctor --generate-gateway-tokenوopenclaw config setاز ویرایش فایل خودداری میکنند.- Agentها باید بهجای آن منبع Nix را ویرایش کنند. برای nix-openclaw، از شروع سریع نوع agent-first استفاده کنید و پیکربندی را زیر
programs.openclaw.configیاinstances.<name>.configتنظیم کنید. - وابستگیهای مفقود پیامهای رفع مشکل ویژه Nix نمایش میدهند
- UI یک بنر فقطخواندنی حالت Nix نمایش میدهد
مسیرهای پیکربندی و وضعیت
OpenClaw پیکربندی JSON5 را از OPENCLAW_CONFIG_PATH میخواند و دادههای قابل تغییر را در OPENCLAW_STATE_DIR ذخیره میکند. هنگام اجرا زیر Nix، اینها را صریحا روی مکانهای مدیریتشده با Nix تنظیم کنید تا وضعیت زمان اجرا و پیکربندی بیرون از store تغییرناپذیر بمانند.
| متغیر | پیشفرض |
|---|---|
OPENCLAW_HOME |
HOME / USERPROFILE / os.homedir() |
OPENCLAW_STATE_DIR |
~/.openclaw |
OPENCLAW_CONFIG_PATH |
$OPENCLAW_STATE_DIR/openclaw.json |
کشف PATH سرویس
سرویس gateway مربوط به launchd/systemd بهصورت خودکار باینریهای Nix-profile را کشف میکند تا
Pluginها و ابزارهایی که برای اجرای فایلهای اجرایی نصبشده با nix به shell متکی هستند، بدون
تنظیم دستی PATH کار کنند:
- وقتی
NIX_PROFILESتنظیم شده باشد، هر ورودی با اولویت راستبهچپ به PATH سرویس اضافه میشود (با اولویت shell در Nix منطبق است - راستترین مورد برنده است). - وقتی
NIX_PROFILESتنظیم نشده باشد،~/.nix-profile/binبهعنوان جایگزین اضافه میشود.
این مورد هم برای محیطهای سرویس launchd در macOS و هم systemd در Linux اعمال میشود.