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

@@ -12,8 +12,3 @@ 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

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" {
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]
}

View File

@@ -2,6 +2,7 @@ terraform {
required_providers {
hcloud = {
source = "hetznercloud/hcloud"
version = "~> 1.45"
}
}
required_version = ">= 0.13"
@@ -40,15 +41,3 @@ variable "hcloud_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
}