Files
git.planetrenox.com/terraform/main.tf
2025-09-11 16:48:27 -07:00

55 lines
1.3 KiB
HCL

resource "google_project_service" "compute" {
project = var.project_id
service = "compute.googleapis.com"
disable_on_destroy = false
}
resource "google_compute_firewall" "yunohost_allow" {
name = "allow-yunohost"
network = "default"
direction = "INGRESS"
allow {
protocol = "tcp"
ports = ["22", "25", "80", "443", "587", "993", "5222", "5269"]
}
allow {
protocol = "udp"
ports = ["53", "5353"]
}
source_ranges = ["0.0.0.0/0"]
target_tags = ["yunohost"]
}
resource "google_compute_address" "static_ip" {
name = "yunohost-static-ip"
}
resource "google_compute_instance" "yunohost" {
name = "yunohost"
machine_type = "e2-small"
zone = "us-west1-a"
tags = ["yunohost"]
boot_disk {
initialize_params {
image = "projects/debian-cloud/global/images/family/debian-12"
size = 30
type = "pd-standard"
}
}
network_interface {
network = "default"
access_config {
nat_ip = google_compute_address.static_ip.address
}
}
metadata = {
startup-script = file("${path.module}/startup.sh")
}
depends_on = [google_project_service.compute]
}
output "external_ip" {
value = google_compute_instance.yunohost.network_interface[0].access_config[0].nat_ip
}