From c9341ae12a4762644eed27e923dbee7c9c18f969 Mon Sep 17 00:00:00 2001 From: aserrador Date: Thu, 2 Apr 2026 16:33:33 -0500 Subject: [PATCH] Add firewall rules, cloud-init config, and remove volume support --- config.auto.tfvars.example | 7 +----- terraform/cloud-init.yml | 11 ++++++++++ terraform/hcloud.tf | 44 ++++++++++++++++++++++++++++++++------ terraform/variables.tf | 13 +---------- 4 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 terraform/cloud-init.yml diff --git a/config.auto.tfvars.example b/config.auto.tfvars.example index 03281f3..2ea8136 100644 --- a/config.auto.tfvars.example +++ b/config.auto.tfvars.example @@ -11,9 +11,4 @@ hcloud_ssh_key_file_path = "~/.ssh/id_rsa.pub" hcloud_server_name = "web...." hcloud_server_image = "ubuntu-24.04" -hcloud_server_type = "cx23" - -# Server Volume Name - -hcloud_volume_name = "volume..." -hcloud_volume_size = 10 \ No newline at end of file +hcloud_server_type = "cx23" \ No newline at end of file diff --git a/terraform/cloud-init.yml b/terraform/cloud-init.yml new file mode 100644 index 0000000..7a98808 --- /dev/null +++ b/terraform/cloud-init.yml @@ -0,0 +1,11 @@ +# cloud-config +package_update: true +packages: + - git + - curl + - docker.io + - docker-compose +runcmd: + - systemctl enable docker + - systemctl start docker + - curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash diff --git a/terraform/hcloud.tf b/terraform/hcloud.tf index a91d4f0..bd21663 100644 --- a/terraform/hcloud.tf +++ b/terraform/hcloud.tf @@ -10,15 +10,45 @@ resource "hcloud_ssh_key" "default" { resource "hcloud_server" "web" { name = var.hcloud_server_name image = var.hcloud_server_image + location = "hel1" server_type = var.hcloud_server_type ssh_keys = [hcloud_ssh_key.default.id] - + user_data = file("${path.module}/cloud-init.yml") } -resource "hcloud_volume" "storage" { - name = var.hcloud_volume_name - size = var.hcloud_volume_size - server_id = hcloud_server.web.id - automount = true - format = "ext4" +resource "hcloud_firewall" "web" { + name = "${var.hcloud_server_name}-firewall" + + rule { + direction = "in" + protocol = "tcp" + port = "22" + source_ips = ["0.0.0.0/0"] + } + + rule { + direction = "in" + protocol = "tcp" + port = "80" + source_ips = ["0.0.0.0/0"] + } + + rule { + direction = "in" + protocol = "tcp" + port = "443" + source_ips = ["0.0.0.0/0"] + } + + rule { + direction = "in" + protocol = "tcp" + port = "3000" + source_ips = ["0.0.0.0/0"] + } +} + +resource "hcloud_firewall_attachment" "web" { + firewall_id = hcloud_firewall.web.id + server_ids = [hcloud_server.web.id] } \ No newline at end of file diff --git a/terraform/variables.tf b/terraform/variables.tf index a87460b..266944d 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -2,6 +2,7 @@ terraform { required_providers { hcloud = { source = "hetznercloud/hcloud" + version = "~> 1.45" } } required_version = ">= 0.13" @@ -39,16 +40,4 @@ variable "hcloud_server_type" { description = "Server Type" type = string default = "cx23" -} - -variable "hcloud_volume_name" { - description = "Server Volume Name" - type = string - default = "web_volume" -} - -variable "hcloud_volume_size" { - description = "Server Volume Name" - type = number - default = 10 } \ No newline at end of file