Files
apes/.claude/skills/gcloud/SKILL.md
2026-03-29 18:02:14 +02:00

2.6 KiB

gcloud Skill

Common GCP patterns for the apes platform. All commands invoke gcloud/kubectl/docker directly via Bash.

Project: apes-platform Region: europe-west1 Zone: europe-west1-b

Current Infrastructure

Service Host VM IP
Gitea git.unslope.com gitea-vm 34.78.255.104
Chat (planned) apes.unslope.com TBD TBD

SSH into VMs

# Gitea VM
gcloud compute ssh gitea-vm --zone=europe-west1-b --project=apes-platform

# Run a command remotely
gcloud compute ssh gitea-vm --zone=europe-west1-b --project=apes-platform --command="sudo docker ps"

Docker Compose on VMs

# Restart a service
gcloud compute ssh <vm> --zone=europe-west1-b --project=apes-platform \
  --command="sudo bash -c 'cd /opt/<service> && docker compose restart <container>'"

# View logs
gcloud compute ssh <vm> --zone=europe-west1-b --project=apes-platform \
  --command="sudo docker logs <container> --tail 50"

# Full redeploy
gcloud compute ssh <vm> --zone=europe-west1-b --project=apes-platform \
  --command="sudo bash -c 'cd /opt/<service> && docker compose pull && docker compose up -d'"

Static IPs & DNS

# Reserve a new static IP
gcloud compute addresses create <name> --region=europe-west1 --project=apes-platform

# Get IP value
gcloud compute addresses describe <name> --region=europe-west1 --project=apes-platform --format='value(address)'

# DNS: add A record at Namecheap (Advanced DNS tab) pointing subdomain to IP

Firewall Rules

# List rules
gcloud compute firewall-rules list --project=apes-platform

# Open a port
gcloud compute firewall-rules create <name> --allow=tcp:<port> --target-tags=web-server --project=apes-platform

New VM Pattern

gcloud compute instances create <name> \
  --project=apes-platform \
  --zone=europe-west1-b \
  --machine-type=e2-small \
  --image-family=debian-12 \
  --image-project=debian-cloud \
  --boot-disk-size=20GB \
  --tags=web-server \
  --address=<static-ip-name> \
  --metadata-from-file=startup-script=<script-path>

IAM

gcloud auth list
gcloud projects get-iam-policy apes-platform --format=json

Troubleshooting

Error Fix
VM SSH timeout Check firewall: gcloud compute firewall-rules list --project=apes-platform
Docker not running SSH in, run sudo systemctl start docker
Caddy cert failed Check DNS propagation: dig @dns1.registrar-servers.com <domain> A +short
Container not starting Check logs: sudo docker logs <container> --tail 50
DNS not resolving Flush local cache: sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder