- Root
docker-compose.ymlorchestrates Pomerium, Verify, and theopenclaw-gatewayservice. openclaw/contains the container build context (Dockerfile,entrypoint.sh); update this when changing the gateway image.- Persistent state lives under
openclaw-data/:config/for OpenClaw settings,workspace/for agent projects, andpomerium-ssh/for the Pomerium User CA (mounted read-only). setup-ssh.shbootstraps SSH keys; referenceREADME.mdandSSH_TROUBLESHOOTING.mdfor deployment workflows.
docker-compose up -d— build (if needed) and start the full stack.docker-compose build openclaw-gateway— rebuild the gateway image after Dockerfile or entrypoint tweaks.docker-compose logs -f openclaw-gateway— follow runtime logs; verify the gateway is accepting connections../setup-ssh.sh— generate or rotate Pomerium SSH keys before first boot or contributor handoff.
- Dockerfiles: lowercase instructions, chain compatible
RUNsteps, avoid unnecessary layers. - Shell scripts (
entrypoint.sh, helpers):#!/bin/sh,set -e, two-space indentation, no bash-only syntax. - YAML (
docker-compose.yml): two-space indent, lowercase keys, env vars uppercase with underscores. - Markdown docs: title-case headings, short paragraphs, fenced code blocks for commands.
- No automated test suite; rely on operational validation.
- After changes run
docker-compose up --buildthendocker-compose psto confirm healthy services. - Use
docker-compose exec openclaw-gateway openclaw --versionto verify the expected release is installed. - For SSH updates, confirm access through
ssh root@openclaw@<cluster>.pomerium.appvia your configured Pomerium route.
- Follow Conventional Commits (
feat:,fix:,docs:,chore:) consistent with current history. - Scope commits narrowly; include affected service or area when helpful (
feat(openclaw): ...). - Pull requests should describe operational impact, list manual verification, and link related TODO items.
- Attach logs or screenshots when modifying deployment docs or SSH flows.
- Keep
.envuntracked; populatePOMERIUM_ZERO_TOKENandPOMERIUM_CLUSTER_DOMAINlocally. - Ensure
openclaw-data/pomerium-ssh/remains read-only in Docker mounts to protect the CA key. - Rotate keys with
./setup-ssh.shwhenever adding contributors or machines.