Connect Hetzner Cloud Account
Connect your Hetzner Cloud account to OEC.sh for cost-effective European server provisioning.
What You'll Get
After connecting your Hetzner Cloud account, OEC.sh can:
| Capability | What It Enables |
|---|---|
| Compute | Auto-provision Hetzner Cloud servers |
Important: Hetzner Cloud only provides compute. For DNS and storage, see Critical: Hetzner Services.
Critical: Hetzner Cloud vs Hetzner DNS
Hetzner operates two completely separate services with different consoles and API tokens:
| Service | Console URL | What It Does | API Compatibility |
|---|---|---|---|
| Hetzner Cloud | console.hetzner.cloud | Cloud servers (VMs) | Uses Cloud API tokens |
| Hetzner DNS Console | dns.hetzner.com | DNS management | Uses separate DNS API tokens |
Why This Matters
- A Hetzner Cloud API token only works for servers
- A Hetzner DNS API token only works for DNS
- They are not interchangeable
- You need two different tokens for compute + DNS
For DNS with Hetzner
If you need DNS management with Hetzner:
- Go to dns.hetzner.com (opens in a new tab) (separate from Cloud Console!)
- Create an API token there
- In OEC.sh, add it as a Cloudflare/Generic DNS provider (coming soon)
Prerequisites
Before you begin, ensure you have:
- Active Hetzner Cloud account (Sign up here (opens in a new tab))
- At least one Cloud project (created automatically on signup)
- Payment method configured
Step-by-Step Connection
Step 1: Access Hetzner Cloud Console
- Go to console.hetzner.cloud (opens in a new tab)
- Sign in to your account
- Select your project (or create one if needed)
Step 2: Generate API Token
- In your project, click Security in the left sidebar
- Click API Tokens tab
- Click Generate API Token
- Configure the token:
| Setting | Value |
|---|---|
| Description | OEC.sh Integration |
| Permissions | Read & Write (required) |
- Click Generate API Token
IMPORTANT: Copy the token immediately - it's only shown once!
The token looks like: Kfm7KLBu3pfYrATNcAB6qFh7L3xRyddCjRtAQoByW5e2eQqJlZc2G9T0P0157mQC
Step 3: Add to OEC.sh
- Go to app.oec.sh (opens in a new tab) > Settings > Cloud Accounts
- Click Add Account
- Under API Key Authentication, click Hetzner Cloud
- Fill in the form:
| Field | Value |
|---|---|
| Account Name | Hetzner Production (or your preferred name) |
| API Token | Paste your Hetzner Cloud API token |
- Click Add Account
Step 4: Verify Connection
- Your Hetzner account should appear in the list
- Status should show Active (green badge)
- Click the refresh icon to validate
- You should see: Compute capability badge (only)
Understanding the Compute-Only Limitation
Unlike DigitalOcean or AWS, Hetzner Cloud accounts in OEC.sh only support server provisioning:
What Works
- Create new cloud servers
- List available server types and images
- Manage SSH keys on Hetzner
- Start/stop/delete servers
What Doesn't Work (Different Service)
- DNS management (requires separate Hetzner DNS token)
- Object storage (Hetzner doesn't have S3-compatible storage)
Workarounds
| Need | Solution |
|---|---|
| DNS | Use Cloudflare, Route53, or other DNS provider |
| Backup Storage | Use Cloudflare R2, AWS S3, or Backblaze B2 |
Using Your Hetzner Account
For Server Provisioning
- Go to Servers > Add Server
- Choose Provision from Cloud
- Select your Hetzner account
- Choose:
- Location (e.g.,
Nuremberg,Falkenstein,Helsinki) - Server type (e.g.,
CX21,CPX21)
- Location (e.g.,
- Click Provision
Hetzner Server Types
Hetzner offers excellent price-performance:
| Type | vCPU | RAM | Disk | Monthly Cost* |
|---|---|---|---|---|
| CX11 | 1 | 2 GB | 20 GB | ~€4.15 |
| CX21 | 2 | 4 GB | 40 GB | ~€5.83 |
| CX31 | 2 | 8 GB | 80 GB | ~€11.08 |
| CX41 | 4 | 16 GB | 160 GB | ~€20.77 |
| CPX11 | 2 | 2 GB | 40 GB | ~€4.55 |
| CPX21 | 3 | 4 GB | 80 GB | ~€8.47 |
| CPX31 | 4 | 8 GB | 160 GB | ~€15.59 |
*Prices approximate, check Hetzner for current pricing.
Recommended for Odoo
| Use Case | Server Type | Why |
|---|---|---|
| Development | CX21 | 2 vCPU, 4GB RAM - good for testing |
| Small Production | CX31 | 8GB RAM for PostgreSQL + Odoo |
| Medium Production | CX41 | 16GB RAM for busier instances |
| Large Production | CX51 | 32GB RAM for high traffic |
Hetzner Locations
| Location Code | City | Country |
|---|---|---|
fsn1 | Falkenstein | Germany |
nbg1 | Nuremberg | Germany |
hel1 | Helsinki | Finland |
ash | Ashburn | USA |
hil | Hillsboro | USA |
Tip: German locations (
fsn1,nbg1) typically have the best pricing and availability.
Managing Your Connection
Rotate API Token
For security, rotate your Hetzner token periodically:
- Generate a new token in Hetzner Console
- Edit your cloud account in OEC.sh
- Enter the new token
- Delete the old token in Hetzner Console
Delete Account
- In OEC.sh, click Delete on the account
- Optionally, revoke the API token in Hetzner Console
Troubleshooting
"Invalid credentials" Error
Cause: API token is incorrect or revoked.
Solution:
- Verify the token in Hetzner Console > Security > API Tokens
- Check the token hasn't been deleted
- Generate a new token if needed
- Ensure you copied the complete token (no spaces)
"Insufficient permissions" Error
Cause: Token was created with Read-only permissions.
Solution:
- Go to Hetzner Console > Security > API Tokens
- The token must have Read & Write permissions
- If Read-only, delete it and create a new one with full permissions
Server Creation Fails
Cause: Could be project limits or account issues.
Solutions:
- Limits: Check Hetzner project limits (new accounts have restrictions)
- Payment: Verify payment method is valid
- Location: Try a different datacenter location
- Server Type: Some types may be unavailable - try another
"Wrong project" - Servers Not Visible
Cause: Token was created in a different project.
Solution:
- Hetzner tokens are project-specific
- Verify you're in the correct project in Hetzner Console
- Create a new token in the correct project
DNS Not Working
Cause: Hetzner Cloud tokens don't work for DNS.
Solution:
- Understand that Hetzner DNS is a separate service
- Go to dns.hetzner.com (opens in a new tab) for DNS management
- Use a different DNS provider in OEC.sh (Cloudflare, Route53, etc.)
Why Choose Hetzner?
Advantages
- Price: 50-70% cheaper than AWS/Azure for similar specs
- Performance: High-quality hardware, NVMe storage
- European: GDPR-compliant, German company
- Simple: Easy to use, no complex IAM
- Sustainable: Carbon-neutral datacenter operations
Considerations
- Compute only (need separate DNS/storage providers)
- Fewer locations than hyperscalers
- No managed services (RDS, etc.)
Cost Considerations
Hetzner charges:
| Resource | Billing |
|---|---|
| Cloud Servers | Hourly (capped at monthly max) |
| Snapshots | Per GB per month |
| Load Balancers | Fixed monthly rate |
| Outbound Traffic | Included up to limit, then per GB |
Hetzner is one of the most cost-effective cloud providers - perfect for Odoo deployments where you want great performance without enterprise cloud costs.
Next Steps
- Provision your first Hetzner server
- Set up backup storage (use Cloudflare R2 or Backblaze)
- Configure DNS (use Cloudflare or other provider)