DevPod Provider Hetzner
DevPod on Hetzner
- Project status
- Usage
- Development
- Required environment variables
- Testing independently of DevPod
- Testing in the DevPod ecosystem
- Contributing
- Open in a container
- Commit style
Use this referral code to get EUR20 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.
[optional scope]:
[optional body]
[optional footer(s)]