Connect Hetzner Cloud Account
Hetzner Cloud gives you compute only -- servers at great prices, especially in Europe.
Hetzner Cloud and Hetzner DNS are completely separate services. They have different consoles, different accounts, and different API tokens. A Cloud token does NOT work for DNS, and vice versa.
| Service | Console | API Token |
|---|---|---|
| Hetzner Cloud | console.hetzner.cloud | Cloud API tokens (servers only) |
| Hetzner DNS | dns.hetzner.com | DNS API tokens (DNS only) |
For DNS, use Cloudflare, Route53, or another DNS provider in OEC.sh.
Generate an API Token
- Go to console.hetzner.cloud (opens in a new tab) and select your project
- Click Security > API Tokens > Generate API Token
- Set permissions to Read & Write (required)
- Copy the token immediately -- it's only shown once
Hetzner tokens are project-specific. If you have multiple projects, you'll need a token from each one.
Add to OEC.sh
Go to Settings > Cloud Accounts > Add Account > Hetzner Cloud.
Paste your API token and click Add Account. The account shows Active with a Compute badge only (no Storage or DNS).
Server Types
Hetzner typically runs 50-70% cheaper than AWS/Azure for similar specs.
| Type | vCPU | RAM | Disk | ~Monthly |
|---|---|---|---|---|
| CX11 | 1 | 2 GB | 20 GB | ~4 EUR |
| CX21 | 2 | 4 GB | 40 GB | ~6 EUR |
| CX31 | 2 | 8 GB | 80 GB | ~11 EUR |
| CX41 | 4 | 16 GB | 160 GB | ~21 EUR |
| CPX11 | 2 | 2 GB | 40 GB | ~5 EUR |
| CPX21 | 3 | 4 GB | 80 GB | ~8 EUR |
| CPX31 | 4 | 8 GB | 160 GB | ~16 EUR |
For Odoo: CX21 for dev, CX31 for small production, CX41 for medium production.
Locations
| Code | City | Country |
|---|---|---|
fsn1 | Falkenstein | Germany |
nbg1 | Nuremberg | Germany |
hel1 | Helsinki | Finland |
ash | Ashburn | USA |
hil | Hillsboro | USA |
German locations (fsn1, nbg1) usually have the best pricing and availability.
What About Storage and DNS?
Hetzner Cloud doesn't have S3-compatible object storage, and the Cloud API token doesn't work for Hetzner DNS. Pair it with:
| Need | Recommended |
|---|---|
| DNS | Cloudflare (free), Route53, or any other DNS provider |
| Backup Storage | Cloudflare R2, AWS S3, or Backblaze B2 |
Troubleshooting
"Invalid credentials" -- Token is wrong or revoked. Check in Hetzner Console > Security > API Tokens.
"Insufficient permissions" -- Token was created as Read-only. Delete it and create a new one with Read & Write.
Server creation fails -- New accounts have limits. Try a different datacenter or server type. Verify payment method.
Servers not visible -- Hetzner tokens are project-specific. Make sure the token was created in the correct project.
DNS not working -- Hetzner Cloud tokens don't do DNS. Use a different DNS provider in OEC.sh.