Add firewall rules, cloud-init config, and remove volume support

This commit is contained in:
2026-04-02 16:33:33 -05:00
parent ffed30d364
commit c9341ae12a
4 changed files with 50 additions and 25 deletions

View File

@@ -11,9 +11,4 @@ hcloud_ssh_key_file_path = "~/.ssh/id_rsa.pub"
hcloud_server_name = "web...." hcloud_server_name = "web...."
hcloud_server_image = "ubuntu-24.04" hcloud_server_image = "ubuntu-24.04"
hcloud_server_type = "cx23" hcloud_server_type = "cx23"
# Server Volume Name
hcloud_volume_name = "volume..."
hcloud_volume_size = 10

11
terraform/cloud-init.yml Normal file
View File

@@ -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

View File

@@ -10,15 +10,45 @@ resource "hcloud_ssh_key" "default" {
resource "hcloud_server" "web" { resource "hcloud_server" "web" {
name = var.hcloud_server_name name = var.hcloud_server_name
image = var.hcloud_server_image image = var.hcloud_server_image
location = "hel1"
server_type = var.hcloud_server_type server_type = var.hcloud_server_type
ssh_keys = [hcloud_ssh_key.default.id] ssh_keys = [hcloud_ssh_key.default.id]
user_data = file("${path.module}/cloud-init.yml")
} }
resource "hcloud_volume" "storage" { resource "hcloud_firewall" "web" {
name = var.hcloud_volume_name name = "${var.hcloud_server_name}-firewall"
size = var.hcloud_volume_size
server_id = hcloud_server.web.id rule {
automount = true direction = "in"
format = "ext4" 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]
} }

View File

@@ -2,6 +2,7 @@ terraform {
required_providers { required_providers {
hcloud = { hcloud = {
source = "hetznercloud/hcloud" source = "hetznercloud/hcloud"
version = "~> 1.45"
} }
} }
required_version = ">= 0.13" required_version = ">= 0.13"
@@ -39,16 +40,4 @@ variable "hcloud_server_type" {
description = "Server Type" description = "Server Type"
type = string type = string
default = "cx23" 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
} }