Jalankan OpenClaw Gateway dalam kontainer Podman rootless, dikelola oleh pengguna non-root Anda saat ini. Model yang dimaksud adalah: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 menjalankan kontainer gateway.
- CLI
openclawhost Anda adalah bidang kontrol. - State persisten berada di host di bawah
~/.openclawsecara default. - Pengelolaan sehari-hari menggunakan
openclaw --container <name> ..., bukansudo -u openclaw,podman exec, atau pengguna layanan terpisah.
Prasyarat
- Podman dalam mode rootless
- CLI OpenClaw terinstal di host
- Opsional:
systemd --userjika Anda menginginkan auto-start yang dikelola Quadlet - Opsional:
sudohanya jika Anda menginginkanloginctl enable-linger "$(whoami)"untuk persistensi boot pada host headless
Mulai cepat
Jalankan onboarding di dalam kontainer
Jalankan
./scripts/run-openclaw-podman.sh launch setup, lalu buka http://127.0.0.1:18789/../scripts/podman/setup.shmembangunopenclaw:localdi penyimpanan Podman rootless Anda secara default, atau menggunakanOPENCLAW_IMAGE/OPENCLAW_PODMAN_IMAGEjika Anda menetapkannya.- Ini membuat
~/.openclaw/openclaw.jsondengangateway.mode: "local"jika belum ada. - Ini membuat
~/.openclaw/.envdenganOPENCLAW_GATEWAY_TOKENjika belum ada. - Untuk peluncuran manual, helper hanya membaca allowlist kecil berisi key terkait Podman dari
~/.openclaw/.envdan meneruskan variabel env runtime eksplisit ke kontainer; ini tidak menyerahkan seluruh file env ke Podman.
OPENCLAW_PODMAN_QUADLET=1.
Variabel env build/penyiapan opsional:
OPENCLAW_IMAGEatauOPENCLAW_PODMAN_IMAGE— gunakan image yang sudah ada/ditarik, bukan membangunopenclaw:localOPENCLAW_DOCKER_APT_PACKAGES— instal paket apt tambahan selama build imageOPENCLAW_EXTENSIONS— prainstal dependensi plugin pada waktu buildOPENCLAW_INSTALL_BROWSER— prainstal Chromium dan Xvfb untuk otomasi browser (atur ke1untuk mengaktifkan)
--userns=keep-id dan memasang state OpenClaw Anda ke dalam kontainer dengan bind mount.
Onboarding:
http://127.0.0.1:18789/ dan gunakan token dari ~/.openclaw/.env.
Default CLI host:
Podman dan Tailscale
Untuk HTTPS atau akses browser jarak jauh, ikuti dokumentasi Tailscale utama. Catatan khusus Podman:- Pertahankan host publish Podman di
127.0.0.1. - Utamakan
tailscale serveyang dikelola host daripadaopenclaw gateway --tailscale serve. - Di macOS, jika konteks auth perangkat browser lokal tidak andal, gunakan akses Tailscale alih-alih solusi sementara tunnel lokal ad hoc.
Systemd (Quadlet, opsional)
Jika Anda menjalankan./scripts/podman/setup.sh --quadlet, penyiapan menginstal file Quadlet di:
- Mulai:
systemctl --user start openclaw.service - Hentikan:
systemctl --user stop openclaw.service - Status:
systemctl --user status openclaw.service - Log:
journalctl --user -u openclaw.service -f
Konfigurasi, env, dan penyimpanan
- Direktori konfigurasi:
~/.openclaw - Direktori workspace:
~/.openclaw/workspace - File token:
~/.openclaw/.env - Helper peluncuran:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR->/home/node/.openclawOPENCLAW_WORKSPACE_DIR->/home/node/.openclaw/workspace
openclaw.json, auth-profiles.json per agen, state channel/provider,
sesi, dan workspace tetap bertahan setelah penggantian kontainer.
Penyiapan Podman juga mengisi gateway.controlUi.allowedOrigins untuk 127.0.0.1 dan localhost pada port gateway yang dipublikasikan sehingga dashboard lokal berfungsi dengan bind non-loopback kontainer.
Variabel env berguna untuk peluncur manual:
OPENCLAW_PODMAN_CONTAINER— nama kontainer (openclawsecara default)OPENCLAW_PODMAN_IMAGE/OPENCLAW_IMAGE— image yang akan dijalankanOPENCLAW_PODMAN_GATEWAY_HOST_PORT— port host yang dipetakan ke kontainer18789OPENCLAW_PODMAN_BRIDGE_HOST_PORT— port host yang dipetakan ke kontainer18790OPENCLAW_PODMAN_PUBLISH_HOST— antarmuka host untuk port yang dipublikasikan; defaultnya adalah127.0.0.1OPENCLAW_GATEWAY_BIND— mode bind gateway di dalam kontainer; defaultnya adalahlanOPENCLAW_PODMAN_USERNS—keep-id(default),auto, atauhost
~/.openclaw/.env sebelum memfinalisasi default kontainer/image, sehingga Anda dapat menyimpannya secara persisten di sana.
Jika Anda menggunakan OPENCLAW_CONFIG_DIR atau OPENCLAW_WORKSPACE_DIR yang bukan default, tetapkan variabel yang sama untuk perintah ./scripts/podman/setup.sh dan perintah ./scripts/run-openclaw-podman.sh launch berikutnya. Peluncur lokal repo tidak menyimpan override path kustom lintas shell.
Catatan Quadlet:
- Layanan Quadlet yang dihasilkan sengaja mempertahankan bentuk default tetap dan diperkeras: port yang dipublikasikan
127.0.0.1,--bind landi dalam kontainer, dan namespace penggunakeep-id. - Ini memasang
OPENCLAW_NO_RESPAWN=1,Restart=on-failure, danTimeoutStartSec=300. - Ini memublikasikan
127.0.0.1:18789:18789(gateway) dan127.0.0.1:18790:18790(bridge). - Ini membaca
~/.openclaw/.envsebagaiEnvironmentFileruntime untuk nilai sepertiOPENCLAW_GATEWAY_TOKEN, tetapi tidak memakai allowlist override khusus Podman milik peluncur manual. - Jika Anda membutuhkan port publish, host publish, atau flag container-run kustom lain, gunakan peluncur manual atau edit
~/.config/containers/systemd/openclaw.containersecara langsung, lalu muat ulang dan mulai ulang layanan.
Perintah berguna
- Log kontainer:
podman logs -f openclaw - Hentikan kontainer:
podman stop openclaw - Hapus kontainer:
podman rm -f openclaw - Buka URL dashboard dari CLI host:
openclaw dashboard --no-open - Health/status melalui CLI host:
openclaw gateway status --deep(probe RPC + pemindaian layanan tambahan)
Pemecahan masalah
- Izin ditolak (EACCES) pada konfigurasi atau workspace: Kontainer berjalan dengan
--userns=keep-iddan--user <your uid>:<your gid>secara default. Pastikan path konfigurasi/workspace host dimiliki oleh pengguna Anda saat ini. - Mulai Gateway diblokir (
gateway.mode=localtidak ada): Pastikan~/.openclaw/openclaw.jsonada dan menetapkangateway.mode="local".scripts/podman/setup.shmembuat ini jika belum ada. - Perintah CLI kontainer mengenai target yang salah: Gunakan
openclaw --container <name> ...secara eksplisit, atau eksporOPENCLAW_CONTAINER=<name>di shell Anda. openclaw updategagal dengan--container: Ini wajar. Bangun ulang/tarik image, lalu mulai ulang kontainer atau layanan Quadlet.- Layanan Quadlet tidak mulai: Jalankan
systemctl --user daemon-reload, lalusystemctl --user start openclaw.service. Pada sistem headless, Anda mungkin juga perlusudo loginctl enable-linger "$(whoami)". - SELinux memblokir bind mount: Biarkan perilaku mount default apa adanya; peluncur otomatis menambahkan
:Zdi Linux saat SELinux dalam mode enforcing atau permissive.