Prerequisites
- Docker Engine 20.10+
- Docker Compose v2.0+
- 2GB+ available RAM (varies by preset)
- Linux (amd64 or arm64) or macOS
Quick start
Generate a stack
Run the CLI to generate your stack configuration:This creates:
docker-compose.yml— Service definitions with health checks and dependencies.env— Environment variables with auto-generated secretsCaddyfileortraefik.yml— Reverse proxy configuration (if selected)README.md— Stack-specific documentation
Review the configuration
Inspect the generated Check for port conflicts with running services:
docker-compose.yml to verify services, ports, and volumes:Stack management
Stop services
Stop all containers without removing them:Restart services
Restart all services:Remove stack
Stop and remove all containers, networks, and anonymous volumes:Development workflow
Adding services
Add a service to an existing stack:docker-compose.yml and .env with the new service and its dependencies.
Removing services
Remove a service from the stack:Updating services
Pull the latest images:Production deployment
Resource limits
better-openclaw sets memory limits for all services. For production workloads, review and adjust limits indocker-compose.yml:
Persistent volumes
All data-bearing services use named volumes for persistence. Back up volumes regularly:Health checks
Every service includes health checks. Configure dependency ordering withdepends_on.condition:
Environment variables
Never commit.env files to version control. Use .env.example as a template:
Multi-host deployment
For multi-server deployments, use Docker Swarm or migrate to Dokploy or Coolify.Docker Swarm example
Initialize swarm:Monitoring
If you selected the DevOps preset or added Grafana and Prometheus, access monitoring at:- Grafana:
http://localhost:3000(default credentials in.env) - Prometheus:
http://localhost:9090
/metrics endpoints when available.
Troubleshooting
Port conflicts
The CLI auto-detects port conflicts during generation. If you encounter conflicts after deployment:Container startup failures
Check logs for the failing service:Disk space issues
Clean up unused Docker resources:Reference docker-compose.yml
Here’s the structure of a generateddocker-compose.yml:
Next steps
- Deploy to Dokploy for a self-hosted PaaS experience
- Deploy to Coolify for a Vercel-like workflow
- VPS deployment for manual cloud server setup