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 اعمال می‌شود.

    مرتبط