From e1d4b3fa65ff8fff3dcf34550fe90609dd86facb Mon Sep 17 00:00:00 2001 From: lucalise Date: Wed, 24 Dec 2025 13:42:59 -0800 Subject: [PATCH] feat(homelab): add minecraft-main --- nix/homelab/helm/helmfile.yaml | 10 ++++++++++ nix/homelab/helm/values/minecraft/main.yaml | 17 +++++++++++++++++ nix/homelab/kustomize/kustomization.yaml | 1 + .../kustomize/routes/minecraft/main.yaml | 13 +++++++++++++ nix/homelab/kustomize/traefik/config.yaml | 13 ++++++++++++- 5 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 nix/homelab/helm/values/minecraft/main.yaml create mode 100644 nix/homelab/kustomize/routes/minecraft/main.yaml diff --git a/nix/homelab/helm/helmfile.yaml b/nix/homelab/helm/helmfile.yaml index 2b450f0..7d37971 100644 --- a/nix/homelab/helm/helmfile.yaml +++ b/nix/homelab/helm/helmfile.yaml @@ -3,6 +3,8 @@ repositories: url: https://metallb.github.io/metallb - name: jellyfin url: https://jellyfin.github.io/jellyfin-helm + - name: minecraft-charts + url: https://itzg.github.io/minecraft-server-charts releases: # Load Balancer @@ -27,3 +29,11 @@ releases: version: 2.7.0 values: - values/jellyfin.yaml + + # Minecraft + - name: minecraft-main + namespace: minecraft + chart: minecraft-charts/minecraft + version: 5.0.0 + values: + - values/minecraft/main.yaml diff --git a/nix/homelab/helm/values/minecraft/main.yaml b/nix/homelab/helm/values/minecraft/main.yaml new file mode 100644 index 0000000..1261db1 --- /dev/null +++ b/nix/homelab/helm/values/minecraft/main.yaml @@ -0,0 +1,17 @@ +resources: + limits: + memory: 1Gi + cpu: 2500m + +minecraftServer: + eula: "TRUE" + type: "PAPER" + version: "1.21.11" + difficulty: hard + motd: "A Minecraft Server." + memory: 512M + +persistence: + dataDir: + enabled: true + size: 2Gi diff --git a/nix/homelab/kustomize/kustomization.yaml b/nix/homelab/kustomize/kustomization.yaml index 3d9565d..e40f781 100644 --- a/nix/homelab/kustomize/kustomization.yaml +++ b/nix/homelab/kustomize/kustomization.yaml @@ -6,3 +6,4 @@ resources: - ./traefik/config.yaml - ./cert-manager/config.yaml - ./routes/media.yaml + - ./routes/minecraft/main.yaml diff --git a/nix/homelab/kustomize/routes/minecraft/main.yaml b/nix/homelab/kustomize/routes/minecraft/main.yaml new file mode 100644 index 0000000..114dbc3 --- /dev/null +++ b/nix/homelab/kustomize/routes/minecraft/main.yaml @@ -0,0 +1,13 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRouteTCP +metadata: + name: minecraft-main + namespace: minecraft +spec: + entryPoints: + - minecraft-main + routes: + - match: HostSNI(`*`) + services: + - name: minecraft-main + port: 25565 diff --git a/nix/homelab/kustomize/traefik/config.yaml b/nix/homelab/kustomize/traefik/config.yaml index 40c7822..78478a5 100644 --- a/nix/homelab/kustomize/traefik/config.yaml +++ b/nix/homelab/kustomize/traefik/config.yaml @@ -17,13 +17,18 @@ spec: websecure: port: 443 nodePort: 30001 - ssh: port: 22 expose: default: true exposedPort: 22 protocol: TCP + minecraft-main: + port: 25565 + expose: + default: true + exposedPort: 25565 + protocol: TCP persistence: enabled: true @@ -64,6 +69,12 @@ spec: - kind: Secret name: wildcard-lucalise.ca-tls group: "" + minecraft-main: + port: 25565 + protocol: TCP + namespacePolicy: + from: All + logs: general: level: INFO