Skip to content

mrsimonemms/devpod-provider-hetzner

Repository files navigation

DevPod Provider Hetzner

Go Report Card

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:

  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 with read & write access. 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:

  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

Commit style

All commits must be done in the Conventional Commit format.

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]