chore: full stack stability and migration fixes, plus react UI progress
Some checks failed
CI / podman-build (push) Has been cancelled
CI / rust (push) Has been cancelled

This commit is contained in:
2026-03-18 09:01:38 +02:00
parent 38cab8c246
commit a66d908eff
142 changed files with 12210 additions and 3402 deletions

View File

@@ -0,0 +1,47 @@
resource "hcloud_firewall" "madbase_firewall" {
name = "madbase-firewall"
rule {
direction = "in"
protocol = "tcp"
port = "22"
source_ips = [
"0.0.0.0/0",
"::/0"
]
}
rule {
direction = "in"
protocol = "tcp"
port = "80"
source_ips = [
"0.0.0.0/0",
"::/0"
]
}
rule {
direction = "in"
protocol = "tcp"
port = "443"
source_ips = [
"0.0.0.0/0",
"::/0"
]
}
rule {
direction = "in"
protocol = "icmp"
source_ips = [
"0.0.0.0/0",
"::/0"
]
}
}
resource "hcloud_firewall_resource" "fw_server1" {
firewall_id = hcloud_firewall.madbase_firewall.id
server_id = hcloud_server.server1.id
}

45
deploy/terraform/main.tf Normal file
View File

@@ -0,0 +1,45 @@
terraform {
required_providers {
hcloud = {
source = "hetznercloud/hcloud"
version = "~> 1.45"
}
}
}
variable "hcloud_token" {
sensitive = true
}
variable "ssh_public_key_path" {
default = "~/.ssh/id_rsa.pub"
}
variable "location" {
default = "fsn1" # Falkenstein, Germany
}
variable "server_type" {
default = "cpx21" # 3 vCPU, 4GB RAM
}
provider "hcloud" {
token = var.hcloud_token
}
resource "hcloud_ssh_key" "default" {
name = "madbase-deploy-key"
public_key = file(var.ssh_public_key_path)
}
resource "hcloud_network" "madbase_net" {
name = "madbase-net"
ip_range = "10.0.0.0/16"
}
resource "hcloud_network_subnet" "madbase_subnet" {
network_id = hcloud_network.madbase_net.id
type = "cloud"
network_zone = "eu-central"
ip_range = "10.0.1.0/24"
}

View File

@@ -0,0 +1,97 @@
resource "hcloud_placement_group" "madbase_pg" {
name = "madbase-placement-group"
type = "spread"
}
resource "hcloud_server" "server1" {
name = "madbase-server1"
image = "debian-12"
server_type = var.server_type
location = var.location
ssh_keys = [hcloud_ssh_key.default.id]
placement_group_id = hcloud_placement_group.madbase_pg.id
user_data = <<-EOT
#cloud-config
runcmd:
- apt-get update
- apt-get install -y podman podman-compose jq curl
EOT
}
resource "hcloud_server_network" "server1_net" {
server_id = hcloud_server.server1.id
network_id = hcloud_network.madbase_net.id
ip = "10.0.1.1"
}
resource "hcloud_server" "server2" {
name = "madbase-server2"
image = "debian-12"
server_type = var.server_type
location = var.location
ssh_keys = [hcloud_ssh_key.default.id]
placement_group_id = hcloud_placement_group.madbase_pg.id
user_data = <<-EOT
#cloud-config
runcmd:
- apt-get update
- apt-get install -y podman podman-compose jq curl
EOT
}
resource "hcloud_server_network" "server2_net" {
server_id = hcloud_server.server2.id
network_id = hcloud_network.madbase_net.id
ip = "10.0.1.2"
}
resource "hcloud_server" "server3" {
name = "madbase-server3"
image = "debian-12"
server_type = var.server_type
location = var.location
ssh_keys = [hcloud_ssh_key.default.id]
placement_group_id = hcloud_placement_group.madbase_pg.id
user_data = <<-EOT
#cloud-config
runcmd:
- apt-get update
- apt-get install -y podman podman-compose jq curl
EOT
}
resource "hcloud_server_network" "server3_net" {
server_id = hcloud_server.server3.id
network_id = hcloud_network.madbase_net.id
ip = "10.0.1.3"
}
resource "hcloud_server" "server4" {
name = "madbase-server4"
image = "debian-12"
server_type = var.server_type
location = var.location
ssh_keys = [hcloud_ssh_key.default.id]
placement_group_id = hcloud_placement_group.madbase_pg.id
user_data = <<-EOT
#cloud-config
runcmd:
- apt-get update
- apt-get install -y podman podman-compose jq curl
EOT
}
resource "hcloud_server_network" "server4_net" {
server_id = hcloud_server.server4.id
network_id = hcloud_network.madbase_net.id
ip = "10.0.1.4"
}
output "server_ips" {
value = {
server1 = hcloud_server.server1.ipv4_address
server2 = hcloud_server.server2.ipv4_address
server3 = hcloud_server.server3.ipv4_address
server4 = hcloud_server.server4.ipv4_address
}
}