Chạy OpenClaw Gateway trong một container Podman không cần root, do người dùng không phải root hiện tại của bạn quản lý. Mô hình dự kiến là: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 chạy container Gateway.
- CLI
openclawtrên máy chủ của bạn là mặt phẳng điều khiển. - Trạng thái bền vững mặc định nằm trên máy chủ tại
~/.openclaw. - Việc quản lý hằng ngày dùng
openclaw --container <name> ...thay vìsudo -u openclaw,podman exec, hoặc một người dùng dịch vụ riêng.
Điều kiện tiên quyết
- Podman ở chế độ không cần root
- OpenClaw CLI đã cài đặt trên máy chủ
- Tùy chọn:
systemd --usernếu bạn muốn tự khởi động do Quadlet quản lý - Tùy chọn:
sudochỉ khi bạn muốn dùngloginctl enable-linger "$(whoami)"để duy trì khi khởi động trên máy chủ không có màn hình
Bắt đầu nhanh
Chạy onboarding bên trong container
Chạy
./scripts/run-openclaw-podman.sh launch setup, rồi mở http://127.0.0.1:18789/../scripts/podman/setup.shmặc định dựngopenclaw:localtrong kho Podman không cần root của bạn, hoặc dùngOPENCLAW_IMAGE/OPENCLAW_PODMAN_IMAGEnếu bạn đặt một trong hai.- Nó tạo
~/.openclaw/openclaw.jsonvớigateway.mode: "local"nếu còn thiếu. - Nó tạo
~/.openclaw/.envvớiOPENCLAW_GATEWAY_TOKENnếu còn thiếu. - Với các lần khởi chạy thủ công, trình trợ giúp chỉ đọc một danh sách cho phép nhỏ gồm các khóa liên quan đến Podman từ
~/.openclaw/.envvà truyền các biến môi trường runtime rõ ràng vào container; nó không đưa toàn bộ tệp env cho Podman.
OPENCLAW_PODMAN_QUADLET=1.
Các biến môi trường build/thiết lập tùy chọn:
OPENCLAW_IMAGEhoặcOPENCLAW_PODMAN_IMAGE— dùng một image hiện có/đã pull thay vì dựngopenclaw:localOPENCLAW_DOCKER_APT_PACKAGES— cài đặt thêm các gói apt trong quá trình dựng imageOPENCLAW_EXTENSIONS— cài đặt sẵn các dependency của Plugin tại thời điểm buildOPENCLAW_INSTALL_BROWSER— cài đặt sẵn Chromium và Xvfb cho tự động hóa trình duyệt (đặt thành1để bật)
--userns=keep-id và bind-mount trạng thái OpenClaw của bạn vào container.
Onboarding:
http://127.0.0.1:18789/ và dùng token từ ~/.openclaw/.env.
Mặc định CLI trên máy chủ:
Podman + Tailscale
Để dùng HTTPS hoặc truy cập trình duyệt từ xa, hãy làm theo tài liệu Tailscale chính. Ghi chú riêng cho Podman:- Giữ máy chủ publish của Podman ở
127.0.0.1. - Ưu tiên
tailscale servedo máy chủ quản lý hơnopenclaw gateway --tailscale serve. - Trên macOS, nếu ngữ cảnh xác thực thiết bị của trình duyệt cục bộ không ổn định, hãy dùng truy cập Tailscale thay vì các cách xử lý tạm thời bằng tunnel cục bộ ad hoc.
Systemd (Quadlet, tùy chọn)
Nếu bạn đã chạy./scripts/podman/setup.sh --quadlet, thiết lập sẽ cài đặt một tệp Quadlet tại:
- Khởi động:
systemctl --user start openclaw.service - Dừng:
systemctl --user stop openclaw.service - Trạng thái:
systemctl --user status openclaw.service - Nhật ký:
journalctl --user -u openclaw.service -f
Cấu hình, env và lưu trữ
- Thư mục cấu hình:
~/.openclaw - Thư mục workspace:
~/.openclaw/workspace - Tệp token:
~/.openclaw/.env - Trình trợ giúp khởi chạy:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR->/home/node/.openclawOPENCLAW_WORKSPACE_DIR->/home/node/.openclaw/workspace
openclaw.json, auth-profiles.json theo từng agent, trạng thái channel/provider,
phiên và workspace vẫn tồn tại sau khi thay thế container.
Thiết lập Podman cũng tạo sẵn gateway.controlUi.allowedOrigins cho 127.0.0.1 và localhost trên cổng Gateway đã publish để dashboard cục bộ hoạt động với bind không phải loopback của container.
Các biến môi trường hữu ích cho trình khởi chạy thủ công:
OPENCLAW_PODMAN_CONTAINER— tên container (mặc định làopenclaw)OPENCLAW_PODMAN_IMAGE/OPENCLAW_IMAGE— image cần chạyOPENCLAW_PODMAN_GATEWAY_HOST_PORT— cổng máy chủ ánh xạ tới container18789OPENCLAW_PODMAN_BRIDGE_HOST_PORT— cổng máy chủ ánh xạ tới container18790OPENCLAW_PODMAN_PUBLISH_HOST— interface máy chủ cho các cổng đã publish; mặc định là127.0.0.1OPENCLAW_GATEWAY_BIND— chế độ bind của Gateway bên trong container; mặc định làlanOPENCLAW_PODMAN_USERNS—keep-id(mặc định),auto, hoặchost
~/.openclaw/.env trước khi hoàn tất các mặc định container/image, nên bạn có thể lưu chúng bền vững tại đó.
Nếu bạn dùng OPENCLAW_CONFIG_DIR hoặc OPENCLAW_WORKSPACE_DIR không mặc định, hãy đặt cùng các biến đó cho cả ./scripts/podman/setup.sh và các lệnh ./scripts/run-openclaw-podman.sh launch sau này. Trình khởi chạy cục bộ trong repo không lưu bền vững các ghi đè đường dẫn tùy chỉnh giữa các shell.
Ghi chú Quadlet:
- Dịch vụ Quadlet được tạo cố ý giữ một hình dạng mặc định cố định và được gia cố: các cổng publish trên
127.0.0.1,--bind lanbên trong container, và namespace người dùngkeep-id. - Nó ghim
OPENCLAW_NO_RESPAWN=1,Restart=on-failure, vàTimeoutStartSec=300. - Nó publish cả
127.0.0.1:18789:18789(Gateway) và127.0.0.1:18790:18790(bridge). - Nó đọc
~/.openclaw/.envdưới dạngEnvironmentFileruntime cho các giá trị nhưOPENCLAW_GATEWAY_TOKEN, nhưng không tiêu thụ danh sách cho phép ghi đè riêng cho Podman của trình khởi chạy thủ công. - Nếu bạn cần cổng publish tùy chỉnh, máy chủ publish, hoặc các cờ chạy container khác, hãy dùng trình khởi chạy thủ công hoặc chỉnh sửa trực tiếp
~/.config/containers/systemd/openclaw.container, rồi reload và restart dịch vụ.
Lệnh hữu ích
- Nhật ký container:
podman logs -f openclaw - Dừng container:
podman stop openclaw - Xóa container:
podman rm -f openclaw - Mở URL dashboard từ CLI trên máy chủ:
openclaw dashboard --no-open - Sức khỏe/trạng thái qua CLI trên máy chủ:
openclaw gateway status --deep(RPC probe + quét dịch vụ bổ sung)
Khắc phục sự cố
- Bị từ chối quyền (EACCES) trên cấu hình hoặc workspace: Container mặc định chạy với
--userns=keep-idvà--user <your uid>:<your gid>. Hãy đảm bảo các đường dẫn cấu hình/workspace trên máy chủ thuộc sở hữu của người dùng hiện tại của bạn. - Gateway bị chặn khi khởi động (thiếu
gateway.mode=local): Hãy đảm bảo~/.openclaw/openclaw.jsontồn tại và đặtgateway.mode="local".scripts/podman/setup.shtạo tệp này nếu còn thiếu. - Các lệnh CLI container trỏ nhầm đích: Dùng rõ ràng
openclaw --container <name> ..., hoặc exportOPENCLAW_CONTAINER=<name>trong shell của bạn. openclaw updatethất bại với--container: Đúng như dự kiến. Dựng lại/pull image, rồi khởi động lại container hoặc dịch vụ Quadlet.- Dịch vụ Quadlet không khởi động: Chạy
systemctl --user daemon-reload, rồisystemctl --user start openclaw.service. Trên các hệ thống không có màn hình, bạn cũng có thể cầnsudo loginctl enable-linger "$(whoami)". - SELinux chặn bind mount: Giữ nguyên hành vi mount mặc định; trình khởi chạy tự động thêm
:Ztrên Linux khi SELinux đang ở chế độ enforcing hoặc permissive.