Hetzner Setup
Create a Hetzner Cloud account and test the full pipeline
1. Create a Hetzner Cloud Account
- Go to console.hetzner.cloud
- Sign up / log in
- Create a new project (e.g. "my-gibil-project")
2. Generate an API Token
- In your project, go to Security → API Tokens
- Click Generate API Token
- Name:
gibil-dev - Permissions: Read & Write
- Copy the token (you won't see it again)
3. Configure your local environment
gibil auth setup --token <YOUR_HETZNER_TOKEN>
# ✓ Hetzner token saved to ~/.gibil/config.json4. Test the full pipeline
# Step 1: Create a single instance
gibil create --name test-1 --ttl 15
# Step 2: List it
gibil list
# Step 3: SSH into it
gibil ssh test-1
# Run: node --version (should show v20.x)
# Run: exit
# Step 4: Run a remote command
gibil run test-1 "uname -a && node --version"
# Step 5: Run with JSON output
gibil run test-1 "echo hello from gibil" --json
# Step 6: Extend TTL
gibil extend test-1 --ttl 30
# Step 7: Destroy it
gibil destroy test-15. Test with a repo
# Create with a repo (auto-clones on boot)
gibil create --name repo-test \
--repo https://github.com/vercel/next.js \
--ttl 15
# Verify repo was cloned
gibil run repo-test "ls /root/project"
# Clean up
gibil destroy repo-test6. Test fleet mode
# Create 3 instances in parallel
gibil create --name fleet --fleet 3 --ttl 10 --json
# List all
gibil list
# Destroy all at once
gibil destroy --allCost awareness
| Server type | vCPU | RAM | Cost/hr |
|---|---|---|---|
| cpx11 (default) | 2 | 4 GB | ~€0.011 |
| cpx21 | 4 | 8 GB | ~€0.019 |
| cx42 | 8 | 16 GB | ~€0.036 |
A 15-minute test costs about €0.003 (~$0.003). Set short TTLs during testing.
Cleanup checklist
After testing, make sure everything is cleaned up:
- Run
gibil destroy --allto kill any remaining instances - Check Hetzner Console → Servers for orphaned VMs
- Check Hetzner Console → Security → SSH Keys for orphaned keys (delete any
gibil-*keys)