Infrastructure as code for personal cloud services on Oracle Cloud Infrastructure (OCI).
├── terraform/ # OCI infrastructure (VCN, compute, bastion)
└── ansible/ # Server configuration (OpenClaw, Docker, Tailscale)
cd terraform
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your OCI values
terraform init -backend-config="namespace=$TF_VAR_oci_namespace"
terraform plan
terraform applycd ansible
cp group_vars/vault.yml.example group_vars/all/vault.yml
ansible-vault encrypt group_vars/all/vault.yml
ansible-vault edit group_vars/all/vault.yml # Add your secrets
# Update inventory/hosts.yml with your server IP
ansible-playbook site.yml --ask-vault-pass| Component | Purpose |
|---|---|
| VCN + Subnets | Network isolation |
| Compute (A1.Flex) | ARM instance (4 OCPU, 24GB) |
| Bastion | SSH access without public IP |
| OpenClaw | AI gateway with Discord integration |
| Tailscale | Mesh VPN + automatic HTTPS |
| Docker | Agent sandboxes |
- SSH restricted to bastion/Tailscale
- All services behind Tailscale (no public exposure)
- Secrets encrypted with ansible-vault
- Systemd hardening (NoNewPrivileges, PrivateTmp, etc.)
See ansible/README.md for security architecture details.