Puchify

Terraform Resources

Full reference for every Puchify Terraform resource and data source.

puchify_server

resource "puchify_server" "example" {
  name   = "example-server"
  plan   = "shared-2"
  region = "us-east"
  image  = "ubuntu-24.04"
}

Arguments:

ArgumentTypeRequiredDescription
namestringyesServer name
planstringyesPlan ID
regionstringyesRegion ID
imagestringnoOS image (default: ubuntu-24.04)

Attributes:

AttributeTypeDescription
idstringServer ID
ipv4stringIPv4 address
ipv6stringIPv6 address
statusstringCurrent status

puchify_data

resource "puchify_data" "main" {
  name   = "app-db"
  engine = "postgres"
  plan   = "starter"
  region = "us-east"
}

puchify_object_storage_bucket

resource "puchify_object_storage_bucket" "assets" {
  name   = "app-assets"
  region = "us-east"
  public = true
}

puchify_load_balancer

resource "puchify_load_balancer" "web" {
  name   = "web-lb"
  region = "us-east"
}

puchify_backup

resource "puchify_backup" "daily" {
  name      = "daily-snapshot"
  server_id = puchify_server.web.id
}

Data sources

puchify_servers

data "puchify_servers" "existing" {
  filter {
    name   = "status"
    values = ["running"]
  }
}

puchify_regions

data "puchify_regions" "all" {}

output "regions" {
  value = data.puchify_regions.all.regions
}

puchify_plans

data "puchify_plans" "small" {
  filter {
    name   = "vcpu"
    values = ["2"]
  }
}

puchify_images

data "puchify_images" "available" {}

output "images" {
  value = data.puchify_images.available.images
}

Full stack example

data "puchify_regions" "available" {}
data "puchify_plans" "small" {
  filter { name = "vcpu"; values = ["2"] }
}

resource "puchify_server" "web" {
  count  = 3
  name   = "web-${count.index + 1}"
  plan   = data.puchify_plans.small.plans[0].id
  region = "us-east"
  image  = "ubuntu-24.04"
}

resource "puchify_data" "main" {
  name   = "app-db"
  engine = "postgres"
  plan   = "starter"
  region = "us-east"
}

output "server_ips" {
  value = puchify_server.web[*].ipv4
}

output "db_host" {
  value = puchify_data.main.host
}

On this page