DevPod Provider Hetzner
July 31, 2025 · View on GitHub
DevPod on Hetzner
Use this referral code to get €20 in credits (at time of writing).
DevPod on Hetzner. This is based upon the DigitalOcean provider.
Project status
This project is feature-complete and in maintenance-mode.
This project is very much alive and will receive regular dependency updates. I do not intend to add any new features unless requested by a large number of people or to fix changes made by DevPod or Hetzner.
Usage
To use this provider in your DevPod setup, you will need to do the following steps:
- See the DevPod documentation for how to add a provider
- Use the reference
mrsimonemms/devpod-provider-hetznerto download the latest release from GitHub - Get an API token
from Hetzner with
read & writeaccess. This will be used to manage resources.
Development
Required environment variables
These are pre-configured in Dev Containers
| Variable | Description | Example |
|---|---|---|
DISK_IMAGE | Hetzner image tag | docker-ce |
DISK_SIZE | Disk size in GB | 30 |
GIT_REPO | Git repo to download | github.com/mrsimonemms/devpod-provider-hetzner |
HCLOUD_TOKEN | Hetzner API token with read & write access | - |
MACHINE_FOLDER | Local home folder | ~/.ssh |
MACHINE_ID | Unique identifier for the machine | some-machine-id |
MACHINE_TYPE | Hetzner machine size | cx22 |
REGION | Hetzner region ID | nbg1 |
TOKEN | Deprecated. Replaced by HCLOUD_TOKEN | - |
Testing independently of DevPod
To test the provider workflow, you can run the CLI commands directly.
| Command | Description | Example |
|---|---|---|
command | Run a command on the instance | COMMAND="ls -la" go run . command |
create | Create an instance | go run . create |
delete | Delete an instance and volume | go run . delete |
init | Initialise an instance | go run . init |
start | Start an instance | go run . start |
status | Retrieve the status of an instance | go run . status |
stop | Stop an instance | go run . stop |
Testing in the DevPod ecosystem
This assumes a Linux AMD64 workspace - if you're developing on any other machine please update the instructions for that machine (PRs welcome).
These paths may differ on your machine.
To test the provider within the DevPod ecosystem:
-
Install the latest version of the Hetzner provider
-
Backup the original binary:
mv ~/.devpod/contexts/default/providers/hetzner/binaries/hetzner_provider/devpod-provider-hetzner-linux-amd64 ~/.devpod/contexts/default/providers/hetzner/binaries/hetzner_provider/devpod-provider-hetzner-linux-amd64-orig -
Build the binary:
go build . -
Move the new binary to the DevPod base:
mv ./devpod-provider-hetzner ~/.devpod/contexts/default/providers/hetzner/binaries/hetzner_provider/devpod-provider-hetzner-linux-amd64
Contributing
- Get a Hetzner account
- Get an API token
with
read & writeaccess - Save this as
HCLOUD_TOKENin your.envrcfile
Open in a container
Commit style
All commits must be done in the Conventional Commit format.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]