[project]
name = "my-project"
description = "My LMRC Stack project"
[providers]
server = "hetzner"
kubernetes = "k3s"
database = "postgres"
dns = "cloudflare"
git = "gitlab"
[[apps.applications]]
name = "api"
app_type = "api"
[apps.applications.docker]
dockerfile = "apps/api/Dockerfile"
context = "apps/api"
tags = ["latest"]
[apps.applications.deployment]
replicas = 2
port = 8080
cpu_request = "100m"
memory_request = "128Mi"
cpu_limit = "1"
memory_limit = "512Mi"
env = []
[infrastructure]
provider = "hetzner"
[infrastructure.network]
enable_private_network = true
private_network = "10.0.0.0/16"
firewall_rules = []
[[infrastructure.servers]]
name = "k3s-control"
role = "k3s-control"
server_type = "cpx11"
location = "nbg1"
count = 1
ssh_keys = []
[infrastructure.servers.labels]
environment = "production"
[[infrastructure.servers]]
name = "k3s-workers"
role = "k3s-worker"
server_type = "cx21"
location = "nbg1"
count = 2
ssh_keys = []
[infrastructure.servers.labels]
environment = "production"
[[infrastructure.servers]]
name = "postgres-server"
role = "postgres"
server_type = "cx31"
location = "nbg1"
count = 1
ssh_keys = []
[infrastructure.servers.labels]
environment = "production"
[infrastructure.k3s]
version = "v1.28.5+k3s1"
deploy_on = [
"k3s-control",
"k3s-workers",
]
control_plane_servers = ["k3s-control"]
worker_servers = ["k3s-workers"]
enable_traefik = true
enable_metrics_server = false
server_flags = []
agent_flags = []
[infrastructure.postgres]
version = "16"
database_name = "myapp"
deployment_mode = "standalone"
[infrastructure.postgres.standalone]
deploy_on = "postgres-server"
[infrastructure.dns]
provider = "cloudflare"
domain = "example.com"
[[infrastructure.dns.records]]
type = "A"
name = "@"
target = "k3s-control"
ttl = 300
proxied = true
[[infrastructure.dns.records]]
type = "A"
name = "api"
target = "k3s-control"
ttl = 300
proxied = true
[infrastructure.gitlab]
url = "https://gitlab.com"
namespace = "mygroup"