> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cnap.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Hetzner Cloud

> EU and US cloud servers with exceptional value — the first supported compute provider

Hetzner Cloud is the first compute provider supported by CNAP. Hetzner offers high-performance cloud servers at significantly lower prices than hyperscalers, with data centers in Europe and the US.

## Regions

| Region      | Location           | ID     |
| ----------- | ------------------ | ------ |
| Falkenstein | Germany (Bavaria)  | `fsn1` |
| Nuremberg   | Germany (Bavaria)  | `nbg1` |
| Helsinki    | Finland            | `hel1` |
| Ashburn     | US East (Virginia) | `ash`  |
| Hillsboro   | US West (Oregon)   | `hil`  |

The default region for CNAP-managed machines is **Falkenstein (fsn1)**.

## Instance types

CNAP filters available instance types based on your plan:

### Free tier

| Type    | CPU    | Memory | Disk  | Arch            | Price/hour |
| ------- | ------ | ------ | ----- | --------------- | ---------- |
| `cax11` | 2 vCPU | 4 GB   | 40 GB | ARM64           | €0.004     |
| `cx23`  | 2 vCPU | 4 GB   | 40 GB | x86             | €0.006     |
| `cpx22` | 3 vCPU | 4 GB   | 80 GB | x86 (dedicated) | €0.008     |

### Pro tier

All Hetzner Cloud server types are available, including:

| Type    | CPU    | Memory | Disk   | Arch            | Price/hour |
| ------- | ------ | ------ | ------ | --------------- | ---------- |
| `cax21` | 4 vCPU | 8 GB   | 80 GB  | ARM64           | €0.007     |
| `cax31` | 8 vCPU | 16 GB  | 160 GB | ARM64           | €0.013     |
| `cx33`  | 4 vCPU | 8 GB   | 80 GB  | x86             | €0.011     |
| `cx43`  | 8 vCPU | 16 GB  | 160 GB | x86             | €0.021     |
| `cpx32` | 4 vCPU | 8 GB   | 160 GB | x86 (dedicated) | €0.016     |

<Info>
  ARM64 types (`cax*`) offer the best price-to-performance ratio. Use them unless your workloads require x86.
</Info>

### BYOM (bring your own key)

All instance types available in your Hetzner Cloud account, with no restrictions.

## Billing model

Hetzner bills per hour, rounded up. Servers are billed **as long as they exist**, even when powered off. This is why CNAP's [suspend feature](/compute/suspend-resume) snapshots and deletes the server instead of just stopping it.

| State                | Cost (cx23, 40 GB)                                         |
| -------------------- | ---------------------------------------------------------- |
| Running              | \~€4.11/month                                              |
| Powered off          | \~€4.11/month (same — Hetzner bills for the server object) |
| Suspended (snapshot) | \~€0.40/month (snapshot storage at €0.01/GB)               |
| Deleted              | €0/month                                                   |

## Snapshot pricing

Hetzner charges **€0.01 per GB per month** for snapshots. Snapshots are compressed — you pay for actual used space, not total disk capacity.

| Disk size | Snapshot cost/month |
| --------- | ------------------- |
| 40 GB     | \~€0.40             |
| 80 GB     | \~€0.80             |
| 160 GB    | \~€1.60             |

## How CNAP uses Hetzner

When CNAP provisions a machine on Hetzner:

1. Creates a server via the Hetzner Cloud API with a cloud-init script
2. Cloud-init installs Kubernetes, configures the worker, and joins your cluster
3. The machine appears in your dashboard within \~2 minutes
4. CNAP monitors the machine and handles its lifecycle (scaling, suspend, delete)

CNAP uses its own Hetzner Cloud API token for managed machines. For BYOM, your token is used instead.

## Hetzner Cloud API key (BYOM)

To use your own Hetzner account:

1. Create an API token in the [Hetzner Cloud Console](https://console.hetzner.cloud/) with **Read & Write** permissions
2. Go to **Compute** in the CNAP dashboard
3. Click **Add Credential** and paste your token — CNAP validates it immediately
4. Click **Create Config**, select your credential, and choose a region
5. Machines provisioned with this config appear in your Hetzner Console and bill to your account

CNAP manages the Kubernetes lifecycle — you manage the Hetzner billing. No machine quotas or TTL limits apply to BYOM machines.

<Info>
  Your API token is stored securely in an external secrets manager. CNAP re-validates all tokens hourly and notifies you if a token becomes invalid (for example, if it was revoked or expired in the Hetzner Console).
</Info>

## Limitations

* **No volume attachment on suspend/resume**: Hetzner Volumes use server IDs for attachment. If you use Hetzner CSI Volumes (not local storage), additional handling may be needed on resume. Local storage and LINSTOR volumes work without issues.
* **Powered-off servers still bill**: Unlike AWS/GCP, stopping a Hetzner server doesn't reduce costs. Use CNAP's suspend feature instead.
* **IPv6 only on some VMs**: Cheapest Hetzner plans may only include IPv6. CNAP handles this via the cluster's internal networking.
