Skip to main content

Terraform provider

Coming soon — repo: github.com/vps-serverhost/terraform-provider-vpsserverhost

terraform {
required_providers {
vpsserverhost = {
source = "vpsserverhost/vpsserverhost"
version = "~> 0.1"
}
}
}

provider "vpsserverhost" {
# token reads from VPSSH_API_TOKEN; or set token = "pat_live_…"
}

resource "vpsserverhost_server" "web" {
name = "web-01"
image = "ubuntu-24.04"
plan = "vps-l"
region = "eu-central"
ssh_keys = [vpsserverhost_ssh_key.deploy.id]
}

resource "vpsserverhost_snapshot" "nightly" {
server_id = vpsserverhost_server.web.id
name = "nightly-${formatdate("YYYY-MM-DD", timestamp())}"
}

resource "vpsserverhost_ptr_record" "web_v4" {
server_id = vpsserverhost_server.web.id
ip = vpsserverhost_server.web.ipv4
value = "web-01.example.com"
}

resource "vpsserverhost_ssh_key" "deploy" {
name = "deploy-key"
public_key = file("~/.ssh/id_ed25519.pub")
}

The provider is intentionally scoped to infrastructure — servers, snapshots, DNS, SSH keys, domain nameservers and lock state. Billing, invoices, support tickets are deliberately not Terraform-managed; those belong in the CLI or MCP surfaces.