summaryrefslogtreecommitdiff
path: root/services/minecraft/vanilla.nix
diff options
context:
space:
mode:
authorMel <mel@rnrd.eu>2026-09-06 03:19:17 +0200
committerMel <mel@rnrd.eu>2026-09-06 06:13:05 +0200
commit5a0086d881492d8912d72649b2a22aba682cc492 (patch)
treeb6f2656b57e1420f60029f42c712aab1d5d633e4 /services/minecraft/vanilla.nix
parentd94adc8c0ecf2afdc3cef2b0d1ac933d62d7c0aa (diff)
downloadnetwork-5a0086d881492d8912d72649b2a22aba682cc492.tar.zst
network-5a0086d881492d8912d72649b2a22aba682cc492.zip
Add modded Minecraft server (Prominence II)
Signed-off-by: Mel <mel@rnrd.eu>
Diffstat (limited to 'services/minecraft/vanilla.nix')
-rw-r--r--services/minecraft/vanilla.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/services/minecraft/vanilla.nix b/services/minecraft/vanilla.nix
new file mode 100644
index 0000000..0690f40
--- /dev/null
+++ b/services/minecraft/vanilla.nix
@@ -0,0 +1,44 @@
+{ pkgs, auxiliaryPkgs, ... }:
+
+let
+ inherit (pkgs) dockerTools;
+ inherit (auxiliaryPkgs) common;
+
+ minecraft = pkgs.minecraft-server.overrideAttrs {
+ version = "1.21.4";
+
+ src = pkgs.fetchurl {
+ url = "https://piston-data.mojang.com/v1/objects/4707d00eb834b446575d89a61a11b5d548d8c001/server.jar";
+ hash = "sha256-EGaXCwnpxnGERXIpHEqHHMGsK4WDi/cAT6DneOEPE1g=";
+ };
+ };
+
+ minecraftPort = 25565;
+ minecraftDir = "/srv/mc";
+ minecraftMemory = "8G";
+
+ minecraftImage = dockerTools.streamLayeredImage {
+ name = "minecraft";
+ tag = minecraft.version;
+ fromImage = common.alpine.base;
+ contents = [ minecraft ];
+ };
+
+in
+{
+ networking.firewall.allowedTCPPorts = [ minecraftPort ];
+
+ foundation.services.minecraft = {
+ image = minecraftImage;
+ ports = [ (common.globalPort minecraftPort) ];
+
+ volumes = [ [ "${minecraftDir}" "/server" ] ];
+
+ workdir = "/server";
+ entrypoint = "${minecraft}/bin/minecraft-server";
+ cmd = [
+ "-Xms${minecraftMemory}"
+ "-Xmx${minecraftMemory}"
+ ];
+ };
+}