- Podman запускает контейнер Gateway.
- Установленный на хосте
openclawCLI служит плоскостью управления. - По умолчанию постоянное состояние хранится на хосте в
~/.openclaw. - Для повседневного управления используется
openclaw --container <name> ..., а неsudo -u openclaw,podman execили отдельный служебный пользователь.
Предварительные требования
- Podman в rootless-режиме
- OpenClaw CLI, установленный на хосте
- Необязательно:
systemd --user, если нужен автоматический запуск под управлением Quadlet - Необязательно:
sudo, только если нуженloginctl enable-linger "$(whoami)"для сохранения запуска после перезагрузки на хосте без графического интерфейса
Быстрый старт
1
Однократная настройка
В корне репозитория выполните Либо задайте
./scripts/podman/setup.sh.Эта команда собирает openclaw:local в вашем rootless-хранилище Podman (либо загружает OPENCLAW_IMAGE / OPENCLAW_PODMAN_IMAGE, если они заданы), создаёт ~/.openclaw/openclaw.json с gateway.mode: "local", если файл отсутствует, и создаёт ~/.openclaw/.env со сгенерированным OPENCLAW_GATEWAY_TOKEN, если файл отсутствует.Необязательные переменные среды времени сборки:Чтобы вместо этого использовать настройку под управлением Quadlet (только Linux и пользовательские службы systemd):
OPENCLAW_PODMAN_QUADLET=1.2
Запустите контейнер Gateway
--userns=keep-id, а также подключает состояние OpenClaw в контейнер через bind-монтирование.3
Выполните первоначальную настройку внутри контейнера
http://127.0.0.1:18789/ и используйте токен из ~/.openclaw/.env.Аутентификация модели: во время настройки используйте аутентификацию под управлением OpenClaw (API-ключи Anthropic либо браузерную OAuth-аутентификацию OpenAI Codex или аутентификацию по коду устройства для OpenAI на базе Codex). Средство запуска Podman не монтирует каталоги учётных данных CLI хоста, такие как ~/.claude или ~/.codex, в контейнер настройки или Gateway. Существующие входы через CLI хоста предназначены только для удобства на том же хосте — при установке в контейнере храните данные аутентификации провайдера в смонтированном состоянии ~/.openclaw, которым управляет настройка.4
Управляйте работающим контейнером через CLI хоста
openclaw автоматически выполняются внутри этого контейнера:~/.openclaw/.env только небольшой список разрешённых ключей, связанных с Podman, и передаёт контейнеру явные переменные среды времени выполнения; полный файл среды в Podman не передаётся.
Podman и Tailscale
Для доступа по HTTPS или через удалённый браузер следуйте основной документации Tailscale. Примечания, относящиеся к Podman:- Оставьте адрес публикации Podman равным
127.0.0.1. - Предпочитайте управляемый хостом
tailscale serveвместоopenclaw gateway --tailscale serve. - В macOS, если контекст аутентификации устройства в локальном браузере работает ненадёжно, используйте доступ через Tailscale вместо нестандартных обходных решений с локальными туннелями.
Systemd (Quadlet, необязательно)
Если вы выполнили./scripts/podman/setup.sh --quadlet, программа настройки устанавливает файл Quadlet в ~/.config/containers/systemd/openclaw.container.
После изменения файла Quadlet:
127.0.0.1 опубликованных портов (18789 для Gateway, 18790 для моста), --bind lan внутри контейнера, пространство имён пользователя keep-id, OPENCLAW_NO_RESPAWN=1, Restart=on-failure и TimeoutStartSec=300. Она считывает ~/.openclaw/.env как EnvironmentFile времени выполнения для таких значений, как OPENCLAW_GATEWAY_TOKEN, но не использует список разрешённых переопределений Podman из средства ручного запуска. Чтобы настроить порты публикации, адрес публикации или другие флаги запуска контейнера, используйте средство ручного запуска либо измените ~/.config/containers/systemd/openclaw.container напрямую, а затем перезагрузите конфигурацию и перезапустите службу.
Конфигурация, среда и хранилище
- Каталог конфигурации:
~/.openclaw - Каталог рабочего пространства:
~/.openclaw/workspace - Файл токена:
~/.openclaw/.env - Вспомогательное средство запуска:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR -> /home/node/.openclaw, OPENCLAW_WORKSPACE_DIR -> /home/node/.openclaw/workspace. По умолчанию это каталоги хоста, а не анонимное состояние контейнера, поэтому openclaw.json, относящиеся к отдельным агентам auth-profiles.json, состояние каналов и провайдеров, сеансы и рабочее пространство сохраняются после замены контейнера. Настройка также заполняет gateway.controlUi.allowedOrigins для 127.0.0.1 и localhost на опубликованном порту Gateway, чтобы локальная панель управления работала с привязкой контейнера не к loopback-интерфейсу.
Полезные переменные среды для средства ручного запуска (сохраняйте их в ~/.openclaw/.env; средство запуска считывает этот файл перед окончательным определением параметров контейнера и образа по умолчанию):
Если вы используете нестандартное значение
OPENCLAW_CONFIG_DIR или OPENCLAW_WORKSPACE_DIR, задавайте те же переменные как для команд ./scripts/podman/setup.sh, так и для последующих команд ./scripts/run-openclaw-podman.sh launch — локальное средство запуска из репозитория не сохраняет пользовательские переопределения путей между сеансами оболочки.
Обновление образов
После сборки или загрузки нового образа перезапустите контейнер либо службу Quadlet. При первом запуске новой версии OpenClaw Gateway выполняет безопасное восстановление состояния и плагинов, прежде чем сообщить о готовности. Если Gateway завершается вместо перехода в состояние готовности, один раз запустите тот же образ сopenclaw doctor --fix и теми же смонтированными состоянием и конфигурацией, а затем перезапустите
Gateway в обычном режиме:
,Z к обоим bind-монтированиям, если Podman блокирует доступ к
смонтированному состоянию.
Полезные команды
- Журналы контейнера:
podman logs -f openclaw - Остановка контейнера:
podman stop openclaw - Удаление контейнера:
podman rm -f openclaw - Открытие URL панели управления через CLI хоста:
openclaw dashboard --no-open - Проверка работоспособности и состояния через CLI хоста:
openclaw gateway status --deep(RPC-проверка и дополнительное сканирование служб)
Устранение неполадок
- Отказано в доступе (EACCES) к конфигурации или рабочему пространству: По умолчанию контейнер запускается с
--userns=keep-idи--user <your uid>:<your gid>. Убедитесь, что каталоги конфигурации и рабочего пространства на хосте принадлежат текущему пользователю. - Запуск Gateway заблокирован (отсутствует
gateway.mode=local): Убедитесь, что~/.openclaw/openclaw.jsonсуществует и задаётgateway.mode="local". Командаscripts/podman/setup.shсоздаёт его, если он отсутствует. - Контейнер перезапускается после обновления образа: Выполните однократную команду
openclaw doctor --fixиз раздела Обновление образов, а затем снова запустите Gateway. - Команды CLI контейнера обращаются не к тому объекту: Явно используйте
openclaw --container <name> ...либо экспортируйтеOPENCLAW_CONTAINER=<name>в оболочке. - Сбой
openclaw updateс ошибкой--container: Это ожидаемо. Пересоберите или загрузите образ, затем перезапустите контейнер либо службу Quadlet. - Служба Quadlet не запускается: Выполните
systemctl --user daemon-reload, затемsystemctl --user start openclaw.service. В системах без графического интерфейса также может потребоватьсяsudo loginctl enable-linger "$(whoami)". - SELinux блокирует bind-монтирования: Не изменяйте стандартное поведение монтирования; в Linux средство запуска автоматически добавляет
:Z, когда SELinux работает в принудительном или разрешительном режиме.