#20494: Infra: add two-node ops docs and env templates
docker
size: S
Cluster:
Docker and Deployment Improvements
## Summary
- add OPS docs for two-node architecture (role separation + command runbook)
- add .env.mac and .env.win templates with placeholders
- keep compose host-agnostic and env-file driven for node differences
- ignore local runstate directory (.openclaw/) and keep .env ignored
## Scope
- infrastructure docs and repo plumbing only
- no application logic changes
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Added infrastructure documentation and environment templates for a two-node OpenClaw deployment (Mac development node + Windows production-like node). The changes introduce role separation docs, operational runbooks, and platform-specific `.env` templates while keeping `docker-compose.yml` host-agnostic.
**Key changes:**
- Added `OPS/ROLE-SEPARATION.md` documenting node roles and deployment model
- Added `OPS/RUNBOOK.md` with operational commands for both nodes
- Added `.env.mac` and `.env.win` templates with placeholders for secrets
- Updated `docker-compose.yml` to add default values for volume paths
- Updated `.gitignore` to exclude `.openclaw/` runstate directories
**Minor style issue:**
- `OPS/RUNBOOK.md:6` contains a hardcoded personal path (`/Users/kermitv/dev/projects/openclaw-upstream`) which should be replaced with a generic placeholder like `<repo-path-on-mac>` per the docs content guideline in AGENTS.md:30
<h3>Confidence Score: 4/5</h3>
- This PR is safe to merge with minimal risk - it only adds documentation and configuration templates
- Infrastructure documentation and templates are well-structured and follow the repository's conventions. The only issue is a minor style violation (hardcoded personal path) that doesn't affect functionality. No application logic changes, no security concerns with the placeholder values in templates, and the docker-compose changes add sensible defaults without breaking existing behavior.
- No files require special attention - minor style fix recommended for `OPS/RUNBOOK.md`
<sub>Last reviewed commit: 3632a4f</sub>
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
**Context used:**
- Context from `dashboard` - CLAUDE.md ([source](https://app.greptile.com/review/custom-context?memory=fd949e91-5c3a-4ab5-90a1-cbe184fd6ce8))
<!-- /greptile_comment -->
Most Similar PRs
#11915: Docs: Docker + reverse proxy deployment notes and pairing pitfalls
by walshd1 · 2026-02-08
77.7%
#10894: Docs: fix legacy branding, add config reference, expand cron troubl...
by biv0711 · 2026-02-07
76.2%
#14460: ops: add Azure VM bootstrap script and Kubernetes manifests
by dzianisv · 2026-02-12
76.0%
#11048: fix: address repository issues (env, author, CI comments, security ...
by cavula · 2026-02-07
75.5%
#7133: feat: Automated Docker setup with environment-based configuration
by synetalsolutions · 2026-02-02
75.5%
#20700: docs: add real-world setups and use cases guide
by aiagentswiz · 2026-02-19
75.3%
#10367: CLI/Ops: resilient browser fill + failover hardening + operations t...
by cluster2600 · 2026-02-06
75.3%
#19851: docs: 新增 OpenClaw Docker 与 Discord 安装调试手册
by JiepengTan · 2026-02-18
74.6%
#6235: fix: from source development command
by witcxc · 2026-02-01
74.2%
#7252: docs: align config examples and tool docs with current runtime
by nice-and-precise · 2026-02-02
73.8%