Запустіть OpenClaw Gateway у rootless-контейнері Podman, керованому вашим поточним некореневим користувачем. Передбачена модель така:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- Podman запускає контейнер Gateway.
- Ваш хостовий CLI
openclawє площиною керування. - Постійний стан за замовчуванням зберігається на хості в
~/.openclaw. - Повсякденне керування використовує
openclaw --container <name> ...замістьsudo -u openclaw,podman execабо окремого службового користувача.
Передумови
- Podman у rootless-режимі
- OpenClaw CLI, установлений на хості
- Необов’язково:
systemd --user, якщо потрібен автозапуск під керуванням Quadlet - Необов’язково:
sudoлише якщо потрібенloginctl enable-linger "$(whoami)"для збереження запуску після завантаження на headless-хості
Швидкий старт
Запустіть onboarding усередині контейнера
Запустіть
./scripts/run-openclaw-podman.sh launch setup, а потім відкрийте http://127.0.0.1:18789/../scripts/podman/setup.shза замовчуванням збираєopenclaw:localу вашому rootless-сховищі Podman або використовуєOPENCLAW_IMAGE/OPENCLAW_PODMAN_IMAGE, якщо ви задали одне з них.- Він створює
~/.openclaw/openclaw.jsonізgateway.mode: "local", якщо файл відсутній. - Він створює
~/.openclaw/.envізOPENCLAW_GATEWAY_TOKEN, якщо файл відсутній. - Для ручних запусків допоміжний скрипт читає лише невеликий allowlist пов’язаних із Podman ключів із
~/.openclaw/.envі передає явні змінні середовища виконання до контейнера; він не передає повний env-файл до Podman.
OPENCLAW_PODMAN_QUADLET=1.
Необов’язкові env-змінні для збірки/налаштування:
OPENCLAW_IMAGEабоOPENCLAW_PODMAN_IMAGE— використати наявний/завантажений образ замість збиранняopenclaw:localOPENCLAW_DOCKER_APT_PACKAGES— установити додаткові apt-пакети під час збирання образуOPENCLAW_EXTENSIONS— попередньо встановити залежності Plugin під час збиранняOPENCLAW_INSTALL_BROWSER— попередньо встановити Chromium і Xvfb для браузерної автоматизації (установіть1, щоб увімкнути)
--userns=keep-id і bind-монтує ваш стан OpenClaw у контейнер.
Onboarding:
http://127.0.0.1:18789/ і використайте токен із ~/.openclaw/.env.
Типове значення для хостового CLI:
Podman і Tailscale
Для HTTPS або віддаленого доступу з браузера дотримуйтеся основної документації Tailscale. Примітка, специфічна для Podman:- Залишайте хост публікації Podman на
127.0.0.1. - Надавайте перевагу керованому хостом
tailscale serveзамістьopenclaw gateway --tailscale serve. - На macOS, якщо контекст автентифікації пристрою для локального браузера ненадійний, використовуйте доступ через Tailscale замість ad hoc обхідних рішень із локальними тунелями.
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
Конфігурація, env і сховище
- Каталог конфігурації:
~/.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, щоб локальна панель керування працювала з non-loopback bind контейнера.
Корисні env-змінні для ручного запуску:
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. Repo-local launcher не зберігає власні перевизначення шляхів між 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(міст). - Вона читає
~/.openclaw/.envяк runtimeEnvironmentFileдля значень на кшталтOPENCLAW_GATEWAY_TOKEN, але не використовує Podman-специфічний allowlist перевизначень ручного запуску. - Якщо вам потрібні власні порти публікації, хост публікації або інші прапорці запуску контейнера, використовуйте ручний запуск або відредагуйте
~/.config/containers/systemd/openclaw.containerнапряму, а потім перезавантажте й перезапустіть службу.
Корисні команди
- Журнали контейнера:
podman logs -f openclaw - Зупинити контейнер:
podman stop openclaw - Видалити контейнер:
podman rm -f openclaw - Відкрити URL панелі керування з хостового CLI:
openclaw dashboard --no-open - Health/status через хостовий CLI:
openclaw gateway status --deep(RPC-зонд + додаткове сканування служб)
Усунення несправностей
- Permission denied (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. На headless-системах також може знадобитисяsudo loginctl enable-linger "$(whoami)". - SELinux блокує bind-монтування: Залиште типову поведінку монтування без змін; launcher автоматично додає
:Zна Linux, коли SELinux перебуває в режимі enforcing або permissive.