feat: Added terraform config... just a basic one at first

This commit is contained in:
2026-07-09 21:55:50 +01:00
parent 5486716981
commit 3bfa0e6f32
33 changed files with 1235 additions and 5 deletions
+82
View File
@@ -0,0 +1,82 @@
variable "location" {
description = "Hetzner Cloud datacenter location for all servers and volumes."
type = string
default = "nbg1"
}
variable "network_zone" {
description = "Hetzner Cloud network zone matching var.location."
type = string
default = "eu-central"
}
variable "server_image" {
description = "OS image used for all servers."
type = string
default = "ubuntu-24.04"
}
variable "dev_server_type" {
description = "Server type for dev (Gitea + Runner)."
type = string
default = "cx22"
}
variable "prod_server_type" {
description = "Server type for prod (Traefik, Websites, Database, Bitwarden, Misc, Tracking, Rustdesk)."
type = string
default = "cx32"
}
variable "vpn_server_type" {
description = "Server type for vpn (OpenVPN + TraefikVPN)."
type = string
default = "cx22"
}
variable "dev_volume_size" {
description = "Size in GB of the volume attached to dev (disk2 in architecture.md)."
type = number
default = 50
}
variable "prod_volume_size" {
description = "Size in GB of the volume attached to prod (disk1 in architecture.md)."
type = number
default = 50
}
variable "network_ip_range" {
description = "IP range of the private network shared by dev and prod."
type = string
default = "10.0.0.0/16"
}
variable "subnet_ip_range" {
description = "IP range of the network subnet shared by dev and prod."
type = string
default = "10.0.1.0/24"
}
variable "dev_private_ip" {
description = "Private network IP for dev."
type = string
default = "10.0.1.10"
}
variable "prod_private_ip" {
description = "Private network IP for prod."
type = string
default = "10.0.1.11"
}
variable "ssh_key_name" {
description = "Name of an SSH key already uploaded to your Hetzner Cloud project (Console > Security > SSH Keys)."
type = string
}
variable "allowed_ssh_source_ips" {
description = "CIDRs allowed to reach port 22 on every server. Narrow this to your own IP(s) once known."
type = list(string)
default = ["0.0.0.0/0", "::/0"]
}