This repo is a reusable deployment scaffold for running OpenClaw on a single ARM64 EC2 instance with the recommended host install, Slack integration, and Anthropic Claude setup-token auth.
- Compute: one
t4g.smallEC2 instance on Amazon Linux 2023 ARM64 by default - Runtime: host-installed OpenClaw gateway
- Slack: Socket Mode, so Slack connects over an outbound WebSocket and no public inbound webhook endpoint is required
- Model access: Anthropic Claude
setup-tokenstored in OpenClaw state on persistent host storage - Storage: OpenClaw state under
/srv/openclawon persistent EBS-backed storage - Operations: SSM for admin access, no public admin ports by default
- Logging: short local rotation, CloudWatch ingestion, daily S3 archival
- Migration path: gateway config stays file-based and portable
aws/
cloudwatch/
iam/
network/
openclaw-foundation.yaml
deploy/
cron/
logrotate/
openclaw/
docs/
scripts/
slack/
Requirements & Memory/
- Provision AWS from
docs/aws-setup.mdusing the foundation stack in eithercreateorexistingnetwork mode. - Configure Claude from
docs/anthropic-claude-setup.md. - Configure Slack from
docs/slack-app-setup-checklist.md. - Install the OpenClaw config from
deploy/openclaw/openclaw.json. - Fill in
deploy/.env.exampleasdeploy/.env. - Use
docs/runbook.mdfor deploy, restart, and operations.
The foundation stack now defaults to t4g.small to reduce baseline cost. If the workload needs more headroom, override the InstanceType parameter at deploy time.
Official AWS references for ARM64 EC2 choices and pricing:
- ARM64-capable EC2 families and specs:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html - AWS Graviton overview:
https://aws.amazon.com/ec2/graviton/level-up-with-graviton/ - T4g instance family details:
https://aws.amazon.com/ec2/instance-types/t4/ - EC2 On-Demand pricing:
https://aws.amazon.com/ec2/pricing/on-demand/ - AWS Pricing Calculator:
https://calculator.aws/
- GitHub Actions in this repo are validation-only.
- CI runs linting and template or JSON validation on pushes, pull requests, and manual workflow runs.
- CI does not deploy infrastructure, write to AWS, provision hosts, or sync
deploy/.env. - Deployments are intentionally manual using the AWS CLI and the steps in
docs/aws-setup.md.
This repo prefers SSM. If you also want SSH:
- open port 22 with the stack parameter
SshAccessCidr - set
KEY_PAIR_NAMEindeploy/.envso host bootstrap can install the matching EC2 public key - use
SSH_ACCESS_HOSTNAMEindeploy/.envfor whatever hostname or IP your team uses to connect
Example EC2 key-pair import:
aws ec2 import-key-pair `
--region <your-region> `
--key-name openclaw-admin `
--public-key-material fileb://C:\Users\<you>\.ssh\openclaw-admin.pubExample deploy/.env values for SSH:
KEY_PAIR_NAME=openclaw-adminSSH_ACCESS_HOSTNAME=ec2-203-0-113-10.compute.amazonaws.com
SSH login example:
ssh -i C:\Users\<you>\.ssh\openclaw-admin ec2-user@<InstancePublicIp>