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
กำหนดค่าความลับ
ตั้งค่าโทเค็นบอทรับส่งข้อความและคีย์ API ของผู้ให้บริการโมเดล ไฟล์ข้อความธรรมดาที่ ~/.secrets/ ใช้งานได้ดี
กรอก placeholder ในเทมเพลตและสลับใช้งาน
home-manager switch
ตรวจสอบ
ยืนยันว่าบริการ launchd กำลังทำงานและบอทของคุณตอบกลับข้อความ
ดู README ของ nix-openclaw สำหรับตัวเลือกโมดูลและตัวอย่างทั้งหมด
พฤติกรรม runtime ของโหมด Nix
เมื่อมีการตั้งค่า OPENCLAW_NIX_MODE=1 (อัตโนมัติเมื่อใช้ nix-openclaw) OpenClaw จะเข้าสู่โหมดกำหนดแน่นอนสำหรับการติดตั้งที่จัดการด้วย Nix แพ็กเกจ Nix อื่นสามารถตั้งค่าโหมดเดียวกันได้เช่นกัน; nix-openclaw คือข้อมูลอ้างอิงอย่างเป็นทางการ
คุณยังสามารถตั้งค่าด้วยตนเองได้:
export OPENCLAW_NIX_MODE=1
บน macOS แอป GUI จะไม่รับตัวแปรสภาพแวดล้อมของเชลล์โดยอัตโนมัติ ให้เปิดใช้โหมด Nix ผ่าน defaults แทน:
defaults write ai.openclaw.mac openclaw.nixMode -bool true
สิ่งที่เปลี่ยนในโหมด Nix
- โฟลว์ติดตั้งอัตโนมัติและแก้ไขตัวเองถูกปิดใช้งาน
openclaw.jsonจะถูกถือว่าเปลี่ยนแปลงไม่ได้ ค่าเริ่มต้นที่ได้จากการเริ่มทำงานจะคงอยู่เฉพาะใน runtime และตัวเขียนค่ากำหนด เช่น setup, onboarding,openclaw updateที่แก้ไขค่า, การติดตั้ง/อัปเดต/ถอนการติดตั้ง/เปิดใช้ Plugin,doctor --fix,doctor --generate-gateway-tokenและopenclaw config setจะปฏิเสธการแก้ไขไฟล์- Agent ควรแก้ไขซอร์ส Nix แทน สำหรับ nix-openclaw ให้ใช้ Quick Start แบบ agent-first และตั้งค่าคอนฟิกใต้
programs.openclaw.configหรือinstances.<name>.config - dependency ที่ขาดหายจะแสดงข้อความแก้ไขเฉพาะ Nix
- UI แสดงแบนเนอร์โหมด Nix แบบอ่านอย่างเดียว
พาธของคอนฟิกและสถานะ
OpenClaw อ่านคอนฟิก JSON5 จาก OPENCLAW_CONFIG_PATH และเก็บข้อมูลที่เปลี่ยนแปลงได้ใน OPENCLAW_STATE_DIR เมื่อทำงานภายใต้ Nix ให้ตั้งค่าเหล่านี้อย่างชัดเจนไปยังตำแหน่งที่จัดการด้วย Nix เพื่อให้สถานะ runtime และคอนฟิกไม่อยู่ใน 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 โดยอัตโนมัติ เพื่อให้
plugins และเครื่องมือที่เรียกใช้งาน executable ที่ติดตั้งผ่าน nix ด้วยเชลล์ทำงานได้โดยไม่ต้อง
ตั้งค่า PATH ด้วยตนเอง:
- เมื่อมีการตั้งค่า
NIX_PROFILESทุก entry จะถูกเพิ่มลงใน PATH ของบริการตาม ลำดับความสำคัญจากขวาไปซ้าย (ตรงกับลำดับความสำคัญของ Nix shell - ขวาสุดชนะ) - เมื่อไม่ได้ตั้งค่า
NIX_PROFILESจะเพิ่ม~/.nix-profile/binเป็น fallback
สิ่งนี้ใช้กับสภาพแวดล้อมบริการทั้ง macOS launchd และ Linux systemd