Containers

Nix

Установите OpenClaw декларативно с помощью nix-openclaw — официального полнофункционального модуля Home Manager.

Что вы получите

  • Gateway + приложение для macOS + инструменты (whisper, spotify, камеры), все версии зафиксированы
  • Служба launchd, продолжающая работать после перезагрузки
  • Система плагинов с декларативной конфигурацией
  • Мгновенный откат: home-manager switch --rollback

Быстрый старт

  • Установите Determinate Nix

    Если Nix ещё не установлен, следуйте инструкциям установщика Determinate Nix.

  • Создайте локальный flake

    Используйте шаблон с приоритетом агента из репозитория nix-openclaw:

    bash
    mkdir -p ~/code/openclaw-local# Скопируйте templates/agent-first/flake.nix из репозитория nix-openclaw
  • Настройте секреты

    Укажите токен бота для обмена сообщениями и API-ключ поставщика моделей. Обычные файлы в ~/.secrets/ вполне подходят.

  • Заполните заполнители шаблона и примените конфигурацию

    bash
    home-manager switch
  • Проверьте

    Убедитесь, что служба launchd работает, а бот отвечает на сообщения.

  • Полный список параметров модуля и примеры см. в README nix-openclaw.

    Поведение среды выполнения в режиме Nix

    Когда задано OPENCLAW_NIX_MODE=1 (при использовании nix-openclaw это происходит автоматически), OpenClaw переходит в детерминированный режим для установок под управлением Nix. Другие пакеты Nix также могут включать этот режим; nix-openclaw является официальной эталонной реализацией.

    Его также можно включить вручную:

    bash
    export OPENCLAW_NIX_MODE=1

    В macOS приложение с графическим интерфейсом не наследует переменные окружения оболочки. Вместо этого включите режим Nix с помощью defaults:

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

    Что меняется в режиме Nix

    • Механизмы автоматической установки и самоизменения отключены.
    • openclaw.json считается неизменяемым. Значения по умолчанию, определяемые при запуске, применяются только во время выполнения, а средства записи конфигурации (первоначальная настройка, ввод в эксплуатацию, изменяющие операции openclaw update, установка, обновление, удаление и включение плагинов, 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, поэтому плагины и инструменты, запускающие исполняемые файлы, установленные через nix, работают без ручной настройки PATH:

    • Когда задано NIX_PROFILES, каждая запись добавляется в PATH службы с приоритетом справа налево (как в оболочке Nix: побеждает крайняя справа).
    • Если NIX_PROFILES не задано, в качестве резервного варианта добавляется ~/.nix-profile/bin.

    Это относится как к окружению службы launchd в macOS, так и к окружению службы systemd в Linux.

    Связанные материалы

    Was this useful?
    On this page

    On this page