Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
Run the OpenClaw Gateway in a rootless Podman container, managed by your current non-root user.
The intended model is:
openclaw~/.openclawopenclaw --container <name> ...sudo -u openclawpodman execsystemd --usersudologinctl enable-linger "$(whoami)"Setup details:
./scripts/podman/setup.shopenclaw:localOPENCLAW_IMAGEOPENCLAW_PODMAN_IMAGE~/.openclaw/openclaw.jsongateway.mode: "local"~/.openclaw/.envOPENCLAW_GATEWAY_TOKEN~/.openclaw/.envQuadlet-managed setup:
bash./scripts/podman/setup.sh --quadlet
Quadlet is a Linux-only option because it depends on systemd user services.
You can also set
OPENCLAW_PODMAN_QUADLET=1Optional build/setup env vars:
OPENCLAW_IMAGEOPENCLAW_PODMAN_IMAGEopenclaw:localOPENCLAW_DOCKER_APT_PACKAGESOPENCLAW_EXTENSIONSOPENCLAW_INSTALL_BROWSER1Container start:
bash./scripts/run-openclaw-podman.sh launch
The script starts the container as your current uid/gid with
--userns=keep-idOnboarding:
bash./scripts/run-openclaw-podman.sh launch setup
Then open
http://127.0.0.1:18789/~/.openclaw/.envHost CLI default:
bashexport OPENCLAW_CONTAINER=openclaw
Then commands such as these will run inside that container automatically:
bashopenclaw dashboard --no-open openclaw gateway status --deep # includes extra service scan openclaw doctor openclaw channels login
On macOS, Podman machine may make the browser appear non-local to the gateway. If the Control UI reports device-auth errors after launch, use the Tailscale guidance in Podman + Tailscale.
For HTTPS or remote browser access, follow the main Tailscale docs.
Podman-specific note:
127.0.0.1tailscale serveopenclaw gateway --tailscale serveSee:
If you ran
./scripts/podman/setup.sh --quadletbash~/.config/containers/systemd/openclaw.container
Useful commands:
systemctl --user start openclaw.servicesystemctl --user stop openclaw.servicesystemctl --user status openclaw.servicejournalctl --user -u openclaw.service -fAfter editing the Quadlet file:
bashsystemctl --user daemon-reload systemctl --user restart openclaw.service
For boot persistence on SSH/headless hosts, enable lingering for your current user:
bashsudo loginctl enable-linger "$(whoami)"
~/.openclaw~/.openclaw/workspace~/.openclaw/.env./scripts/run-openclaw-podman.shThe launch script and Quadlet bind-mount host state into the container:
OPENCLAW_CONFIG_DIR/home/node/.openclawOPENCLAW_WORKSPACE_DIR/home/node/.openclaw/workspaceBy default those are host directories, not anonymous container state, so
openclaw.jsonauth-profiles.jsongateway.controlUi.allowedOrigins127.0.0.1localhostUseful env vars for the manual launcher:
OPENCLAW_PODMAN_CONTAINERopenclawOPENCLAW_PODMAN_IMAGEOPENCLAW_IMAGEOPENCLAW_PODMAN_GATEWAY_HOST_PORT18789OPENCLAW_PODMAN_BRIDGE_HOST_PORT18790OPENCLAW_PODMAN_PUBLISH_HOST127.0.0.1OPENCLAW_GATEWAY_BINDlanOPENCLAW_PODMAN_USERNSkeep-idautohostThe manual launcher reads
~/.openclaw/.envIf you use a non-default
OPENCLAW_CONFIG_DIROPENCLAW_WORKSPACE_DIR./scripts/podman/setup.sh./scripts/run-openclaw-podman.sh launchQuadlet note:
127.0.0.1--bind lankeep-idOPENCLAW_NO_RESPAWN=1Restart=on-failureTimeoutStartSec=300127.0.0.1:18789:18789127.0.0.1:18790:18790~/.openclaw/.envEnvironmentFileOPENCLAW_GATEWAY_TOKEN~/.config/containers/systemd/openclaw.containerpodman logs -f openclawpodman stop openclawpodman rm -f openclawopenclaw dashboard --no-openopenclaw gateway status --deep--userns=keep-id--user <your uid>:<your gid>gateway.mode=local~/.openclaw/openclaw.jsongateway.mode="local"scripts/podman/setup.shopenclaw --container <name> ...OPENCLAW_CONTAINER=<name>openclaw update--containersystemctl --user daemon-reloadsystemctl --user start openclaw.servicesudo loginctl enable-linger "$(whoami)":Z© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine