Skip to content

mrsimonemms/devpod-provider-hetzner

Repository files navigation

DevPod Provider Hetzner

Use this referral code to get €20 in credits (at time of writing).

DevPod on Hetzner. This is based upon the DigitalOcean provider.

Usage

To use this provider in your DevPod setup, you will need to do the following steps:

  1. See the DevPod documentation for how to add a provider
  2. Use the reference mrsimonemms/devpod-provider-hetzner to download the latest release from GitHub
  3. Get an API token from Hetzner. 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 key -
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

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:

  1. Install the latest version of the Hetzner provider

  2. 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
  3. Build the binary:

    go build .
  4. 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 & write access
  • Save this as HCLOUD_TOKEN in your .envrc file

Open in a container