Skip to content

Hetzner ​

Authentication ​

Hetzner uses an API token from the Hetzner Cloud Console. Create a project, then generate an API token under Security > API Tokens with read/write permissions.

FieldRequiredDescription
api_tokenYesAPI token from Hetzner Cloud Console

Configuration ​

yaml
providers:
  hetzner:
    api_token: "${HETZNER_TOKEN}"
    region: nbg1
    image: ubuntu-22.04
    size: cpx11

defaults:
  provider: hetzner

Regions ​

Hetzner uses location codes:

SlugLocation
nbg1Nuremberg, Germany
fsn1Falkenstein, Germany
hel1Helsinki, Finland
ashAshburn, USA
hilHillsboro, USA
sinSingapore

Run managed providers regions hetzner to list all available locations.

Sizes ​

Hetzner server types use short prefixes. Shared vCPU plans:

SlugSpecs
cpx112 vCPU (AMD), 2 GB RAM, 40 GB disk
cpx213 vCPU (AMD), 4 GB RAM, 80 GB disk
cpx314 vCPU (AMD), 8 GB RAM, 160 GB disk
cx222 vCPU (Intel), 4 GB RAM, 40 GB disk
cx324 vCPU (Intel), 8 GB RAM, 80 GB disk

Run managed providers sizes hetzner --region nbg1 to list all available types in a location.

Images ​

Hetzner image slugs differ from DigitalOcean, use dots instead of dashes:

SlugOS
ubuntu-22.04Ubuntu 22.04 LTS
ubuntu-24.04Ubuntu 24.04 LTS
debian-12Debian 12

Auto storage ​

Hetzner does not support auto-provisioned storage. Configure S3-compatible storage manually in managed.yaml if your services need backup storage:

yaml
storage:
  endpoint: "s3.us-east-1.amazonaws.com"
  region: "us-east-1"
  bucket: "my-backups"
  access_key: "${S3_ACCESS_KEY}"
  secret_key: "${S3_SECRET_KEY}"

Networking ​

Hetzner private networking requires setting up a Hetzner Network (VPC) manually. Servers in the same network get private IPs. Without a network configured, managed uses public IPs for inter-server communication.