- 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 nằm trên máy chủ trong
~/.openclawtheo mặc định. - 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 dùng root
- OpenClaw CLI được cài đặt trên máy chủ
- Tùy chọn:
systemd --usernếu bạn muốn tự động khởi động do Quadlet quản lý - Tùy chọn:
sudochỉ khi bạn muốnloginctl enable-linger "$(whoami)"để duy trì khi khởi động trên máy chủ không có giao diện
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.shxây dựngopenclaw:localtrong kho Podman không dùng root của bạn theo mặc định, 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 chưa có. - Nó tạo
~/.openclaw/.envvớiOPENCLAW_GATEWAY_TOKENnếu chưa có. - Với các lần khởi chạy thủ công, trình trợ giúp chỉ đọc một allowlist 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/setup tùy chọn:
OPENCLAW_IMAGEhoặcOPENCLAW_PODMAN_IMAGE— dùng một image hiện có/đã pull thay vì buildopenclaw:localOPENCLAW_IMAGE_APT_PACKAGES— cài đặt thêm các gói apt trong quá trình build image (cũng chấp nhậnOPENCLAW_DOCKER_APT_PACKAGEScũ)OPENCLAW_IMAGE_PIP_PACKAGES— cài đặt thêm các gói Python trong quá trình build image; ghim phiên bản và chỉ dùng các chỉ mục gói mà bạn tin cậyOPENCLAW_EXTENSIONS— cài đặt sẵn các phụ thuộc 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.
Xác thực mô hình trong Podman:
- Dùng xác thực do OpenClaw quản lý trong quá trình thiết lập: khóa API Anthropic cho Anthropic, hoặc xác thực OAuth trình duyệt/device-code của OpenAI Codex cho OpenAI được Codex hỗ trợ.
- Trình khởi chạy Podman không mount các thư mục thông tin xác thực CLI của máy chủ như
~/.claudehoặc~/.codexvào container thiết lập hoặc Gateway. - Các phiên đăng nhập CLI hiện có trên máy chủ là các đường dẫn tiện lợi cùng máy. Với cài đặt trong container, hãy giữ xác thực nhà cung cấp trong trạng thái
~/.openclawđược mount mà thiết lập quản lý.
Podman và Tailscale
Để truy cập HTTPS hoặc trình duyệt từ xa, hãy làm theo tài liệu Tailscale chính. Lưu ý 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ý thay vìopenclaw 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 quyền truy cập Tailscale thay vì các cách né tạm thời bằng đường hầm cục bộ tùy biến.
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 kênh/nhà cung cấp,
phiên và workspace vẫn tồn tại sau khi thay thế container.
Thiết lập Podman cũng khởi tạo 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 (openclawtheo mặc định)OPENCLAW_PODMAN_IMAGE/OPENCLAW_IMAGE— image để chạyOPENCLAW_PODMAN_GATEWAY_HOST_PORT— cổng máy chủ được ánh xạ tới container18789OPENCLAW_PODMAN_BRIDGE_HOST_PORT— cổng máy chủ được ánh xạ tới container18790OPENCLAW_PODMAN_PUBLISH_HOST— giao diện máy chủ cho các cổng đã publish; mặc định là127.0.0.1OPENCLAW_GATEWAY_BIND— chế độ bind 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 chốt các mặc định container/image, vì vậy bạn có thể lưu bền vững các giá trị này ở đó.
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ả lệnh ./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.
Lưu ý Quadlet:
- Dịch vụ Quadlet được tạo ra cố ý giữ một hình dạng mặc định cố định và được gia cố: các cổng publish
127.0.0.1,--bind lanbên trong container, và không gian tên 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/.envlàmEnvironmentFileruntime cho các giá trị nhưOPENCLAW_GATEWAY_TOKEN, nhưng không tiêu thụ allowlist ghi đè riêng cho Podman của trình khởi chạy thủ công. - Nếu bạn cần tùy chỉnh cổng publish, 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 tải lại và khởi động lại dịch vụ.
Các 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(thăm dò RPC + 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: Theo mặc định, container 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. - Khởi động Gateway bị chặn (thiếu
gateway.mode=local): Đảm bảo~/.openclaw/openclaw.jsontồn tại và đặtgateway.mode="local".scripts/podman/setup.shsẽ tạo tệp này nếu 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. Build 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 hệ thống không có giao diện, 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.