- Podman запускає контейнер gateway.
- Ваш хостовий CLI
openclawє площиною керування. - Сталий стан за замовчуванням зберігається на хості в
~/.openclaw. - Повсякденне керування використовує
openclaw --container <name> ...замістьsudo -u openclaw,podman execабо окремого службового користувача.
Передумови
- Podman у безrootовому режимі
- OpenClaw CLI, установлений на хості
- Необов’язково:
systemd --user, якщо вам потрібен автозапуск, керований Quadlet - Необов’язково:
sudo, лише якщо вам потрібенloginctl enable-linger "$(whoami)"для сталого запуску під час завантаження на безголовому хості
Швидкий старт
Start the Gateway container
Запустіть контейнер за допомогою
./scripts/run-openclaw-podman.sh launch.Run onboarding inside the container
Виконайте
./scripts/run-openclaw-podman.sh launch setup, а потім відкрийте http://127.0.0.1:18789/../scripts/podman/setup.shза замовчуванням збираєopenclaw:localу вашому безrootовому сховищі Podman або використовуєOPENCLAW_IMAGE/OPENCLAW_PODMAN_IMAGE, якщо ви задали одне з них.- Він створює
~/.openclaw/openclaw.jsonзgateway.mode: "local", якщо файл відсутній. - Він створює
~/.openclaw/.envзOPENCLAW_GATEWAY_TOKEN, якщо файл відсутній. - Для ручних запусків допоміжний скрипт читає лише невеликий дозволений список пов’язаних із Podman ключів з
~/.openclaw/.envі передає контейнеру явні змінні середовища виконання; він не передає Podman увесь файл середовища.
OPENCLAW_PODMAN_QUADLET=1.
Необов’язкові змінні середовища для збірки/налаштування:
OPENCLAW_IMAGEабоOPENCLAW_PODMAN_IMAGE— використати наявний/завантажений образ замість збіркиopenclaw:localOPENCLAW_IMAGE_APT_PACKAGES— установити додаткові пакети apt під час збірки образу (також приймає застарілийOPENCLAW_DOCKER_APT_PACKAGES)OPENCLAW_IMAGE_PIP_PACKAGES— установити додаткові пакети Python під час збірки образу; фіксуйте версії та використовуйте лише індекси пакетів, яким довіряєтеOPENCLAW_EXTENSIONS— попередньо встановити залежності plugin під час збіркиOPENCLAW_INSTALL_BROWSER— попередньо встановити Chromium і Xvfb для браузерної автоматизації (установіть1, щоб увімкнути)
--userns=keep-id і монтує стан OpenClaw у контейнер через bind mount.
Початкове налаштування:
http://127.0.0.1:18789/ і використайте токен з ~/.openclaw/.env.
Автентифікація моделей у Podman:
- Використовуйте автентифікацію, керовану OpenClaw, під час налаштування: API-ключі Anthropic для Anthropic або браузерну OAuth/автентифікацію кодом пристрою OpenAI Codex для OpenAI на базі Codex.
- Запускач Podman не монтує домашні каталоги облікових даних хостового CLI, як-от
~/.claudeабо~/.codex, у контейнер налаштування чи gateway. - Наявні входи хостового CLI є зручними шляхами на тому самому хості. Для контейнерних установок зберігайте автентифікацію провайдерів у змонтованому стані
~/.openclaw, яким керує налаштування.
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 за шляхом:
- Запустити:
systemctl --user start openclaw.service - Зупинити:
systemctl --user stop openclaw.service - Стан:
systemctl --user status openclaw.service - Журнали:
journalctl --user -u openclaw.service -f
Конфігурація, середовище та сховище
- Каталог конфігурації:
~/.openclaw - Каталог робочого простору:
~/.openclaw/workspace - Файл токена:
~/.openclaw/.env - Допоміжний скрипт запуску:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR->/home/node/.openclawOPENCLAW_WORKSPACE_DIR->/home/node/.openclaw/workspace
openclaw.json, агентні auth-profiles.json, стан каналів/провайдерів,
сеанси та робочий простір зберігаються після заміни контейнера.
Налаштування Podman також початково заповнює gateway.controlUi.allowedOrigins для 127.0.0.1 і localhost на опублікованому порту Gateway, щоб локальна панель працювала з нелокальним bind контейнера.
Корисні змінні середовища для ручного запускача:
OPENCLAW_PODMAN_CONTAINER— ім’я контейнера (openclawза замовчуванням)OPENCLAW_PODMAN_IMAGE/OPENCLAW_IMAGE— образ для запускуOPENCLAW_PODMAN_GATEWAY_HOST_PORT— порт хоста, зіставлений із контейнерним18789OPENCLAW_PODMAN_BRIDGE_HOST_PORT— порт хоста, зіставлений із контейнерним18790OPENCLAW_PODMAN_PUBLISH_HOST— інтерфейс хоста для опублікованих портів; типово127.0.0.1OPENCLAW_GATEWAY_BIND— режим bind Gateway всередині контейнера; типовоlanOPENCLAW_PODMAN_USERNS—keep-id(типово),autoабоhost
~/.openclaw/.env перед фіналізацією типових значень контейнера/образу, тому ви можете зберегти їх там.
Якщо ви використовуєте нестандартний OPENCLAW_CONFIG_DIR або OPENCLAW_WORKSPACE_DIR, задайте ті самі змінні і для ./scripts/podman/setup.sh, і для подальших команд ./scripts/run-openclaw-podman.sh launch. Локальний для репозиторію запускач не зберігає перевизначення власних шляхів між shell-сеансами.
Примітка щодо Quadlet:
- Згенерована служба Quadlet навмисно зберігає фіксовану, посилену типову форму: опубліковані порти
127.0.0.1,--bind lanвсередині контейнера та простір імен користувачаkeep-id. - Вона фіксує
OPENCLAW_NO_RESPAWN=1,Restart=on-failureіTimeoutStartSec=300. - Вона публікує і
127.0.0.1:18789:18789(gateway), і127.0.0.1:18790:18790(bridge). - Вона читає
~/.openclaw/.envяк runtimeEnvironmentFileдля значень на кшталтOPENCLAW_GATEWAY_TOKEN, але не споживає дозволений список специфічних для Podman перевизначень ручного запускача. - Якщо вам потрібні власні порти публікації, хост публікації або інші прапорці запуску контейнера, використовуйте ручний запускач або редагуйте
~/.config/containers/systemd/openclaw.containerбезпосередньо, а потім перезавантажте й перезапустіть службу.
Корисні команди
- Журнали контейнера:
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створює його, якщо він відсутній. - Команди CLI контейнера потрапляють не в ту ціль: Явно використовуйте
openclaw --container <name> ...або експортуйтеOPENCLAW_CONTAINER=<name>у вашій shell. openclaw updateзавершується помилкою з--container: Очікувано. Перезберіть/завантажте образ, а потім перезапустіть контейнер або службу Quadlet.- Служба Quadlet не запускається: Виконайте
systemctl --user daemon-reload, а потімsystemctl --user start openclaw.service. На безголових системах також може знадобитисяsudo loginctl enable-linger "$(whoami)". - SELinux блокує bind mounts: Залиште типову поведінку монтування без змін; запускач автоматично додає
:Zу Linux, коли SELinux у режимі enforcing або permissive.