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.
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.
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-hetzner
to download the latest release from GitHub - Get an API token
from Hetzner with
read & write
access. This will be used to manage resources.
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 |
- |
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 |
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
- Get a Hetzner account
- Get an API token
with
read & write
access - Save this as
HCLOUD_TOKEN
in your.envrc
file
All commits must be done in the Conventional Commit format.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]