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:
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | yes | Server name |
plan | string | yes | Plan ID |
region | string | yes | Region ID |
image | string | no | OS image (default: ubuntu-24.04) |
Attributes:
| Attribute | Type | Description |
|---|---|---|
id | string | Server ID |
ipv4 | string | IPv4 address |
ipv6 | string | IPv6 address |
status | string | Current 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
}