Containers

Nix

Zainstaluj OpenClaw deklaratywnie za pomocą nix-openclaw — oficjalnego, kompletnego modułu Home Manager.

Co otrzymujesz

  • Gateway, aplikację macOS i narzędzia (whisper, spotify, kamery) — wszystkie w przypiętych wersjach
  • Usługę launchd, która działa również po ponownym uruchomieniu
  • System Pluginów z konfiguracją deklaratywną
  • Natychmiastowe wycofanie zmian: home-manager switch --rollback

Szybki start

  • Zainstaluj Determinate Nix

    Jeśli Nix nie jest jeszcze zainstalowany, postępuj zgodnie z instrukcjami instalatora Determinate Nix.

  • Utwórz lokalny flake

    Użyj szablonu przeznaczonego przede wszystkim dla agenta z repozytorium nix-openclaw:

    bash
    mkdir -p ~/code/openclaw-local# Skopiuj templates/agent-first/flake.nix z repozytorium nix-openclaw
  • Skonfiguruj dane poufne

    Skonfiguruj token bota komunikatora oraz klucz API dostawcy modelu. Zwykłe pliki w ~/.secrets/ sprawdzą się doskonale.

  • Uzupełnij symbole zastępcze w szablonie i zastosuj konfigurację

    bash
    home-manager switch
  • Sprawdź

    Upewnij się, że usługa launchd działa, a bot odpowiada na wiadomości.

  • Pełną listę opcji modułu i przykłady znajdziesz w pliku README nix-openclaw.

    Działanie środowiska uruchomieniowego w trybie Nix

    Gdy ustawiona jest zmienna OPENCLAW_NIX_MODE=1 (automatycznie w przypadku nix-openclaw), OpenClaw przechodzi w tryb deterministyczny przeznaczony dla instalacji zarządzanych przez Nix. Inne pakiety Nix również mogą ustawić ten tryb; nix-openclaw jest oficjalną implementacją referencyjną.

    Możesz także ustawić go ręcznie:

    bash
    export OPENCLAW_NIX_MODE=1

    W systemie macOS aplikacja z graficznym interfejsem użytkownika nie dziedziczy zmiennych środowiskowych powłoki. Zamiast tego włącz tryb Nix za pomocą defaults:

    bash
    defaults write ai.openclaw.mac openclaw.nixMode -bool true

    Co zmienia się w trybie Nix

    • Mechanizmy automatycznej instalacji i samoczynnej modyfikacji są wyłączone.
    • Plik openclaw.json jest traktowany jako niezmienny. Wartości domyślne wyznaczane podczas uruchamiania obowiązują tylko w środowisku uruchomieniowym, a mechanizmy zapisujące konfigurację (konfiguracja początkowa, wdrażanie, modyfikujące polecenie openclaw update, instalowanie/aktualizowanie/odinstalowywanie/włączanie Pluginów, doctor --fix, doctor --generate-gateway-token, openclaw config set) odmawiają edycji tego pliku.
    • Zamiast tego edytuj źródło Nix. W przypadku nix-openclaw skorzystaj z sekcji Szybki start przeznaczonej przede wszystkim dla agenta i ustaw konfigurację w programs.openclaw.config lub instances.<name>.config.
    • Brakujące zależności powodują wyświetlenie komunikatów dotyczących rozwiązania problemu specyficznych dla Nix.
    • Interfejs użytkownika wyświetla baner trybu Nix informujący o dostępie tylko do odczytu.

    Ścieżki konfiguracji i stanu

    OpenClaw odczytuje konfigurację JSON5 ze ścieżki OPENCLAW_CONFIG_PATH i przechowuje modyfikowalne dane w katalogu OPENCLAW_STATE_DIR. W środowisku Nix ustaw je jawnie na lokalizacje zarządzane przez Nix, aby stan środowiska uruchomieniowego i konfiguracja znajdowały się poza niezmiennym magazynem.

    Zmienna Wartość domyślna
    OPENCLAW_HOME HOME / USERPROFILE / os.homedir()
    OPENCLAW_STATE_DIR ~/.openclaw
    OPENCLAW_CONFIG_PATH $OPENCLAW_STATE_DIR/openclaw.json

    Wykrywanie PATH usługi

    Usługa Gateway uruchamiana przez launchd/systemd automatycznie wykrywa pliki wykonywalne w profilach Nix, dzięki czemu Pluginy i narzędzia uruchamiające zewnętrzne pliki wykonywalne zainstalowane przez nix działają bez ręcznej konfiguracji PATH:

    • Gdy ustawiona jest zmienna NIX_PROFILES, każdy jej wpis jest dodawany do PATH usługi z priorytetem od prawej do lewej (zgodnie z priorytetem powłoki Nix: wygrywa wpis położony najbardziej na prawo).
    • Gdy zmienna NIX_PROFILES nie jest ustawiona, jako lokalizacja zapasowa dodawany jest katalog ~/.nix-profile/bin.

    Dotyczy to zarówno środowisk usług launchd w systemie macOS, jak i systemd w systemie Linux.

    Powiązane

    Was this useful?
    On this page

    On this page