# Hetzner Cloud Provider Defaults # Pre-configured sensible defaults for Hetzner Cloud deployments let provisioning = import "schemas/main.ncl" in let lib = provisioning.lib in { # Provider identity provider = "hetzner", # Network configuration network_private_ip = null, # Will be assigned by Hetzner network_public_ip = null, network_ipv6 = true, # Liveness probing liveness_ip = "{{network_public_ip}}", liveness_port = 22, liveness_interval = 300, # Storage defaults for Hetzner storages = [ ({ name = "root", size = 30, total = 40, type = "ext4", mount = true, mount_path = "/", fstab = true, parts = [ { name = "root", size = 30, total = 30, type = "ext4", mount = true, mount_path = "/", }, { name = "data", size = 10, total = 10, type = "ext4", mount = true, mount_path = "/var/lib", }, ], } | lib.Storage) ], # Hetzner-specific region (eu-central, us-west, ap-southeast, etc.) region = "eu-central", # Plan/server type (common Hetzner plans) # CX11 (1 vCPU, 1 GB RAM), CX21 (2 vCPU, 4 GB), CX31, CX41, CX51, CX61, CX81 plan = "CX21", # Firewall and security defaults labels = "provisioning=true,environment=production", # Taskservs (empty, override per server) taskservs = [], # Server state not_use = false, nixos_anywhere_enabled = false, # Set to true to enable NixOS generation # Hetzner Cloud API configuration (optional) cloud_api_enabled = true, datacenter = null, # Let Hetzner choose }