{"id":46639317,"url":"https://github.com/ericchansen/my-openclaw","last_synced_at":"2026-03-08T02:19:02.699Z","repository":{"id":339261500,"uuid":"1161110233","full_name":"ericchansen/my-openclaw","owner":"ericchansen","description":"Personal OpenClaw configuration and operational patterns — Azure VM deployment with Key Vault, Tailscale, and systemd","archived":false,"fork":false,"pushed_at":"2026-02-18T21:28:17.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-19T00:33:42.927Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Bicep","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericchansen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-18T18:40:31.000Z","updated_at":"2026-02-18T21:28:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ericchansen/my-openclaw","commit_stats":null,"previous_names":["ericchansen/my-openclaw"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ericchansen/my-openclaw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fmy-openclaw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fmy-openclaw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fmy-openclaw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fmy-openclaw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericchansen","download_url":"https://codeload.github.com/ericchansen/my-openclaw/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fmy-openclaw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30242406,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-08T02:19:01.846Z","updated_at":"2026-03-08T02:19:02.690Z","avatar_url":"https://github.com/ericchansen.png","language":"Bicep","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My OpenClaw Setup\n\nPersonal OpenClaw configuration and operational patterns — Azure VM deployment with Key Vault, Tailscale, and systemd.\n\n## What's Here\n\nThis repo contains:\n- **Azure VM deployment** — Bicep templates for VM + Key Vault + Tailscale\n- **Workspace templates** — Agent configuration files ready to customize\n- **Operational docs** — Patterns for agent orchestration, cron, and more\n\n## Directory Structure\n\n```\nmy-openclaw/\n├── config/\n│   ├── openclaw.template.json    # Full config template (copy + customize)\n│   └── openclaw-gateway.service  # Production systemd service\n├── workspace/\n│   ├── AGENTS.md                 # Agent instructions (use as-is)\n│   ├── SOUL.template.md          # Agent personality (customize)\n│   ├── USER.template.md          # Your info (customize)\n│   ├── IDENTITY.template.md      # Agent identity (customize)\n│   ├── HEARTBEAT.template.md     # Periodic checks (customize)\n│   ├── TOOLS.template.md         # Local tool notes (customize)\n│   └── skills/\n│       └── copilot-cli/          # Copilot CLI orchestration skill\n├── docs/\n│   ├── orchestrator-pattern.md   # Subagent delegation patterns\n│   ├── agent-hierarchy.md        # Main/orchestrator/subagent roles\n│   ├── cron-patterns.md          # Scheduled task patterns\n│   ├── keyvault-integration.md   # Azure Key Vault usage\n│   └── todo-conventions.md       # Task tracking guidelines\n├── infra/\n│   ├── main.bicep                # Azure resources (VM, Key Vault, VNet)\n│   ├── main-subscription.bicep   # Subscription-scoped RBAC + budget\n│   ├── budget.bicep              # Monthly budget with email alerts\n│   ├── main.bicepparam           # Deployment parameters\n│   └── cloud-init.yaml           # VM bootstrap (Node, Tailscale, OpenClaw)\n├── azure.yaml                    # azd project manifest\n├── deploy.ps1                    # Azure deployment script\n└── migrate.ps1                   # Docker → VM migration\n```\n\n## Fork \u0026 Customize\n\nThis repo is meant to be forked and personalized. Here's how:\n\n### 1. Fork the Repository\n\n```bash\n# Fork on GitHub, then clone your fork\ngit clone https://github.com/YOUR_USERNAME/my-openclaw.git\ncd my-openclaw\n```\n\n### 2. Create Your Config\n\n```bash\n# Copy the template\ncp config/openclaw.template.json ~/.openclaw/openclaw.json\n\n# Edit with your values:\n# - Bot tokens (Telegram, Discord)\n# - Gateway token\n# - User IDs for allowlists\n# - Agent identity\n```\n\n### 3. Set Up Your Workspace\n\n```bash\nmkdir -p ~/.openclaw/workspace\n\n# Copy AGENTS.md as-is (it's ready to use)\ncp workspace/AGENTS.md ~/.openclaw/workspace/\n\n# Copy and customize the templates\ncp workspace/SOUL.template.md ~/.openclaw/workspace/SOUL.md\ncp workspace/USER.template.md ~/.openclaw/workspace/USER.md\ncp workspace/IDENTITY.template.md ~/.openclaw/workspace/IDENTITY.md\ncp workspace/HEARTBEAT.template.md ~/.openclaw/workspace/HEARTBEAT.md\ncp workspace/TOOLS.template.md ~/.openclaw/workspace/TOOLS.md\n\n# Copy skills\ncp -r workspace/skills ~/.openclaw/workspace/\n```\n\n### 4. Edit Your Files\n\n- **SOUL.md** — Agent personality and values\n- **USER.md** — Your name, timezone, preferences\n- **IDENTITY.md** — Agent name, emoji, accounts\n- **TOOLS.md** — Local infrastructure notes\n\n### 5. Store Secrets Securely\n\nNever commit secrets. Use:\n- **Azure Key Vault** (for VM deployments)\n- **Environment variables** (for local setups)\n- **`.env` files** (gitignored)\n\n## Azure VM Deployment\n\n### Prerequisites\n\n- Azure CLI (`az`) logged in\n- SSH key pair (`~/.ssh/id_ed25519`)\n\n### Deploy with azd\n\n```bash\nazd up\n```\n\n### Deploy with Script\n\n```powershell\n.\\deploy.ps1 -SshPublicKeyPath \"~\\.ssh\\id_ed25519.pub\"\n```\n\n### Post-Deployment\n\n```bash\n# SSH in (port forwards gateway)\nssh openclaw\n\n# Wait for cloud-init\ncloud-init status --wait\n\n# Join Tailscale\nsudo tailscale up\n\n# Load secrets from Key Vault\nsource openclaw-fetch-secrets \u003cvault-name\u003e\n\n# Start gateway\nsudo systemctl start openclaw-gateway\n```\n\n### SSH Config\n\nAdd to `~/.ssh/config`:\n\n```\nHost openclaw\n    HostName \u003cVM_FQDN\u003e\n    User azureuser\n    IdentityFile ~/.ssh/id_ed25519\n    LocalForward 18789 127.0.0.1:18789\n```\n\n## Key Vault Secrets\n\nStore these in Azure Key Vault:\n\n| Secret | Purpose |\n|--------|---------|\n| `OPENCLAW-GATEWAY-TOKEN` | Gateway auth |\n| `GITHUB-TOKEN` | Repo access |\n| `TELEGRAM-BOT-TOKEN` | Telegram bot |\n| `DISCORD-BOT-TOKEN` | Discord bot |\n\n```bash\naz keyvault secret set --vault-name \u003cvault\u003e --name GITHUB-TOKEN --value \"ghp_xxx\"\n```\n\n## Documentation\n\nSee the `docs/` folder for operational patterns:\n\n- **[Orchestrator Pattern](docs/orchestrator-pattern.md)** — Delegate tasks to subagents\n- **[Agent Hierarchy](docs/agent-hierarchy.md)** — Main, orchestrator, and subagent roles\n- **[Cron Patterns](docs/cron-patterns.md)** — Scheduled automation\n- **[Key Vault Integration](docs/keyvault-integration.md)** — Secure secret management\n- **[TODO Conventions](docs/todo-conventions.md)** — Task tracking best practices\n\n## Architecture\n\n```\nAzure Resource Group\n├── VM (Ubuntu 24.04 ARM64)\n│   ├── System-assigned managed identity\n│   │   ├── Key Vault Secrets User (Key Vault scope)\n│   │   ├── Cost Management Contributor (subscription scope)\n│   │   └── Contributor (subscription scope)\n│   ├── OpenClaw gateway (systemd, loopback)\n│   ├── Tailscale (mesh VPN)\n│   └── Copilot CLI\n├── Key Vault (RBAC, secrets)\n├── VNet + NSG (SSH only)\n└── Public IP (static, DNS)\n\nSubscription-scoped\n├── Monthly budget ($150, alerts at $100/$135/$150)\n└── RBAC role assignments (Cost Mgmt Contributor, Contributor)\n```\n\n## License\n\nPersonal configuration repository. Fork and customize for your own use.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericchansen%2Fmy-openclaw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericchansen%2Fmy-openclaw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericchansen%2Fmy-openclaw/lists"}