# OpenClaw Deployment Custom OpenClaw Gateway build for ARM64 with Google Workspace tools. ## What's in Here - `stack.yml` - Docker Swarm stack for Dokploy (pure named volumes) - `docker/` - Custom image build (ARM64 + gog + gcloud) - `AGENTS.md` - Full deployment guide ## Quick Start ```bash # 1. Build the custom image cd docker && ./build-arm64.sh # 2. Push to your registry docker tag openclaw:custom-arm64 registry.lan/openclaw:latest docker push registry.lan/openclaw:latest # 3. Deploy docker stack deploy -c stack.yml openclaw # 4. Copy in your Google client secret docker cp /path/to/client_secret.json $(docker ps -q -f name=openclaw-gateway):/home/node/.openclaw/google-client-secret.json # 5. Setup gog (Google Workspace) docker exec -it $(docker ps -q -f name=openclaw-gateway) setup-gog.sh docker exec -it $(docker ps -q -f name=openclaw-gateway) gog auth add you@gmail.com --services gmail,calendar,drive ``` ## Custom Image Includes - `gog` - Google Workspace CLI (Gmail, Calendar, Drive, Sheets, Docs) - `gcloud` - Google Cloud SDK - `jq`, `curl`, `htop`, `tree` - General utilities - SSH key persistence in named volume ## Volumes (Named Only) | Volume | Mount | Purpose | |--------|-------|---------| | `openclaw-config` | `/home/node/.openclaw` | Configs, secrets, SSH keys, gog tokens | | `openclaw-workspace` | `/home/node/.openclaw/workspace` | Agent workspace | | `gog-data` | `/home/node/.openclaw/gog` | gog OAuth tokens (separate for clarity) | **To access files in volumes:** ```bash # Copy in docker cp localfile.txt container:/home/node/.openclaw/ # Copy out docker cp container:/home/node/.openclaw/file.txt . # Or exec in docker exec -it container bash ``` See `AGENTS.md` for full deployment details.