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.