Sanitized single-commit public mirror of recipe-maintainer. - Removed test-ssh/.testenv (live creds); added test-ssh/.testenv.example placeholders. - Removed plans/ and planned-updates/ (deployment-planning docs) so no client/ deployment domains appear in the public repo. - All other secret stores were already gitignored. - docs.coopcloud.tech retained as a submodule (public upstream).
2.2 KiB
description, allowed-tools
| description | allowed-tools | ||||
|---|---|---|---|---|---|
| Destroy the t1cc DigitalOcean test server via terraform |
|
t1cc-stop
Destroy the t1cc DigitalOcean droplet using terraform destroy. The reserved IP is preserved — DNS stays pointed at it and the next /t1cc-start will reuse the same IP.
Read and follow the instructions in .claude/commands/includes/logging.md.
Steps
1. Check terraform state
Verify there is something to destroy:
cd /workspace/terraform && terraform show -json 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); rs=d.get('values',{}).get('root_module',{}).get('resources',[]); print('resources:', len(rs))"
If there are 0 resources, tell the user the server is already stopped (or was never started) and exit.
2. Check .testenv
Read terraform/.testenv and confirm DO_TOKEN is set. Terraform needs it to authenticate:
grep -q "DO_TOKEN=" terraform/.testenv && echo "token present" || echo "MISSING"
If missing, stop and tell the user to ensure terraform/.testenv contains DO_TOKEN.
3. Destroy the droplet
Run terraform destroy from the terraform directory:
cd /workspace/terraform && terraform destroy -auto-approve
This will:
- Destroy the droplet
- Remove the firewall
- Remove the reserved IP assignment (but keep the reserved IP itself)
Stream the output. This usually takes 1–2 minutes.
4. Verify the droplet is gone
After destroy completes, confirm no resources remain:
cd /workspace/terraform && terraform show
Expected output: No state. or empty state.
Also verify via the DO API that the droplet is gone (optional but useful for confidence):
source terraform/.testenv && curl -s \
-H "Authorization: Bearer $DO_TOKEN" \
"https://api.digitalocean.com/v2/droplets?name=coopcloud-test" \
| python3 -c "import sys,json; d=json.load(sys.stdin); print('droplets:', len(d.get('droplets', [])))"
Expected: droplets: 0
5. Report
Print a summary:
- Droplet destroyed: yes
- Reserved IP preserved: show the IP from
terraform/.testenv(RESERVED_IP) - DNS: unchanged —
t1cc.commoninternet.netstill points to the reserved IP - To restart: run
/t1cc-start