From 2d065793ecafec0fc8a17d246110e7d76f182d97 Mon Sep 17 00:00:00 2001 From: dhawos Date: Sun, 28 Jun 2026 14:15:36 +0200 Subject: [PATCH] setup terraform base --- .gitignore | 3 ++ deploy/terraform/.terraform.lock.hcl | 35 ++++++++++++++++++ deploy/terraform/main.tf | 53 ++++++++++++++++++++++++++++ deploy/terraform/versions.tf | 14 ++++++++ 4 files changed, 105 insertions(+) create mode 100644 deploy/terraform/.terraform.lock.hcl create mode 100644 deploy/terraform/main.tf create mode 100644 deploy/terraform/versions.tf diff --git a/.gitignore b/.gitignore index 6eaad1a..a60bd30 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ dist .direnv *.secrets +*.tfvars +*.tfstate +.terraform/ diff --git a/deploy/terraform/.terraform.lock.hcl b/deploy/terraform/.terraform.lock.hcl new file mode 100644 index 0000000..a0560bd --- /dev/null +++ b/deploy/terraform/.terraform.lock.hcl @@ -0,0 +1,35 @@ +# This file is maintained automatically by "tofu init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/scaleway/scaleway" { + version = "2.77.1" + constraints = ">= 2.77.1" + hashes = [ + "h1:1uE0138J6GCIsTEshRjxloXfJZMWvwnly8H+PtfDJ/I=", + "h1:C52Pklc6CttNvi1CbaBk7NvN3C2bROBrEJeUb5KeG7Y=", + "h1:HU96Mg3Wcg8mIhR1huN0WKdeD5ddjzSspyaRYYc+kjk=", + "h1:OjdCp4Gcc6jxPQR+JuPjLO/zJCHUQz5B/4NW2Eu0xj4=", + "h1:PjlA79etf53Ya5J5R0+/RiRSYsTzazVtswRJl4hbk0c=", + "h1:TRuHw2sUNaFEgmtOGXhCWSjcT7pCKLu+rSTOHXVzOlE=", + "h1:XoGmNJqPNrjrGiONiFNGCkBW2/ICHIEi+MWbxbel4PY=", + "h1:b8IbIPgPG4i/nep8Z6rEQcPPGO/UqebPbspqUstGFrU=", + "h1:gw92UeGqnC//f8CMiq7IJygfyYR80zpS2PluRW5iH9w=", + "h1:m36sZXuJSZsH25JCiWSDkpKSt7nZokNchpFeRZvOA5o=", + "h1:q/5pacSsCdHzaWIvqsnymYu3p0GQz6p6mgiS535JxQw=", + "h1:uAdvIdA232a1xP2J/JKUSHh0Gvqg8swg2xXoaVbrDwQ=", + "h1:yvLW1Xv6wJCaTqfzszDIaw2vRKYL4za6zOvvvDRbKHE=", + "zh:26353b76fc0873c8a1517b050073cc51d65b6fdf3ddf948929bd609aa9cc3652", + "zh:41e1e77e569796d612ee6d601daad415631e25b3cb77dadf068312ade4a42e93", + "zh:46f7ca4f40b9d4449be346904cdc66e32f036d610104220a4d76a94122ceee58", + "zh:561f8ca532dcfadde09996021c588499f24353c3c3b9977a76be0e4a6c2bf717", + "zh:86a612411f93d6375f0a61d3f698afc9aea7ca2f59f5ed168241bd00d0b47bcd", + "zh:899bb94fd0f870cf6b152fa9104decd9494882d91a6c417394f33e244c352a42", + "zh:95eb40dc9c020add18c46d37a2cfa2526ebb9d1ab959114cbd11784357b6cc8d", + "zh:9fd32b50735b5008c91a571a4ab25e6b82c067b99998e18dbb26923aef4904fc", + "zh:a6d4fed2426b7ad82e106cd53978c8f5c903ede697681aca734b32a315427c29", + "zh:c274a3e40e09e13b7c63ca32d6df501c709ca88f0f130dfbeb8ed6ed93c2626f", + "zh:c876d24c2d1b0daf17ebf20ba1c6ff732aa51940ddd16da324c2dfd7e873ce87", + "zh:e07fdcd3ce7e8534a99754a0d7390f256df23a391a24baed11172709fadb018b", + "zh:f3f09cf222de1b2d52379d77276ca432cfb613a94d3cb69ba5ca82d38065129d", + ] +} diff --git a/deploy/terraform/main.tf b/deploy/terraform/main.tf new file mode 100644 index 0000000..85a3170 --- /dev/null +++ b/deploy/terraform/main.tf @@ -0,0 +1,53 @@ +variable "project_id" { + type = string + description = "The project ID" +} + +resource "scaleway_instance_ip" "public_ip" { + project_id = var.project_id +} + +resource "scaleway_block_volume" "data" { + project_id = var.project_id + size_in_gb = 30 + iops = 5000 +} + +resource "scaleway_instance_security_group" "www" { + project_id = var.project_id + inbound_default_policy = "drop" + stateful = true + outbound_default_policy = "accept" + + inbound_rule { + action = "accept" + port = "22" + ip_range = "0.0.0.0/0" + } + + inbound_rule { + action = "accept" + port = "80" + } + + inbound_rule { + action = "accept" + port = "443" + } +} + +resource "scaleway_instance_server" "web" { + project_id = var.project_id + type = "DEV1-M" + image = "ubuntu_resolute" + + ip_id = scaleway_instance_ip.public_ip.id + + additional_volume_ids = [scaleway_block_volume.data.id] + + root_volume { + size_in_gb = 50 + } + + security_group_id = scaleway_instance_security_group.www.id +} diff --git a/deploy/terraform/versions.tf b/deploy/terraform/versions.tf new file mode 100644 index 0000000..b9cdbdd --- /dev/null +++ b/deploy/terraform/versions.tf @@ -0,0 +1,14 @@ +terraform { + required_providers { + scaleway = { + source = "scaleway/scaleway" + version = ">= 2.77.1" + } + } + required_version = ">= 1.15" +} + +provider "scaleway" { + zone = "fr-par-1" + region = "fr-par" +} -- 2.51.2