From 827ba18f6f455a3252443efa3c1be099155da4ed Mon Sep 17 00:00:00 2001 From: uttarayan21 Date: Sat, 26 Jul 2025 20:51:50 +0530 Subject: [PATCH] feat: Added minecraft servers --- nixos/ryu/services/minecraft.nix | 36 +++++++++++++++++++++++++++++++- secrets/secrets.yaml | 8 +++++-- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/nixos/ryu/services/minecraft.nix b/nixos/ryu/services/minecraft.nix index ff395345..124e910b 100644 --- a/nixos/ryu/services/minecraft.nix +++ b/nixos/ryu/services/minecraft.nix @@ -1,8 +1,17 @@ { pkgs, inputs, + config, ... }: { + sops = { + secrets."minecraft/craftmine".owner = "minecraft"; + templates = { + "craftmine.env".content = '' + CRAFTMINE_RCON_PASSWORD=${config.sops.placeholder."minecraft/craftmine"} + ''; + }; + }; services = let whitelist = { "AbhinavSE" = "8b6c052e-69b3-4bee-b9dc-12eb94653c9e"; @@ -12,12 +21,14 @@ }; in { minecraft-servers = { - enable = false; + enable = true; eula = true; openFirewall = true; + environmentFile = config.sops.templates."craftmine.env".path; servers.fabric = { inherit whitelist; enable = true; + enableRcon = true; jvmOpts = "-Xmx4G -Xms4G"; package = pkgs.fabricServers.fabric-1_21_1; serverProperties = { @@ -28,6 +39,29 @@ white-list = true; }; }; + servers.craftmine = { + inherit whitelist; + enable = true; + jvmOpts = "-Xmx4G -Xms4G"; + package = let + getJavaVersion = v: (builtins.getAttr "openjdk${toString v}" pkgs.javaPackages.compiler).headless; + in + pkgs.minecraft-server.override { + url = "https://piston-data.mojang.com/v1/objects/4527a9019e37e001770787e4523b505f79cac4c5/server.jar"; + sha1 = "sha1-RSepAZ434AF3B4fkUjtQX3nKxMU="; + version = "25w14craftmine"; + jre_headless = getJavaVersion 21; + }; + + serverProperties = { + enable-rcon = true; + "rcon.password" = "@CRAFTMINE_RCON_PASSWORD@"; + motd = "Servius's Craftmine Server"; + server-port = 25569; + white-list = true; + view-distance = 32; + }; + }; }; }; } diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index 41a97af3..39700bba 100644 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -38,6 +38,10 @@ zerotier: api_key: ENC[AES256_GCM,data:Hnihh3l4hZGSnDJcQV5eYz7TLD8AzWFAH9AgHAh6YEA=,iv:XO+nZ3pXmC+rDfgBaiapvkL6KnQTL9s6dmi3ZO18VE0=,tag:rb1gmBcMNWpSRP+wmhr86w==,type:str] ryu: public: ENC[AES256_GCM,data:c5De1NqMEfOHCnCjC08=,iv:y1wkjWswozxy/F/sTpKdv41yWr4Am65r1Z9EQXwt2Fc=,tag:oMLZDz96jnNm0SFDHs8prQ==,type:str] +minecraft: + craftmine: ENC[AES256_GCM,data:tzqHagpr+DTdt+/sL6xdESflydplIPFUdFRkpr5OtOU=,iv:7r5G7FrC3qExs5R14rqEt1SC+/+G+EEZ089Z2c0bj48=,tag:tkWuHkH2De4LYDcu/uuBWA==,type:str] + vanilla: ENC[AES256_GCM,data:UtVlLDAfJGuhYStqz6cPUemuxxR9S4IfkwwP8WVEzKM=,iv:2s6/7/wsB5Lgb1fqeiyBierm3WeD3f9AQRg+ZqJOUHI=,tag:9uzCBMjchpD4JnLnuHlfYQ==,type:str] + modded: ENC[AES256_GCM,data:6itrol9NObR3TczEeOa7wkykgqkpDus0VkHBRpU6VdQ=,iv:F56uYdHozJvkJ+m18aviTWzCrLfW2VcxkbOqpnRiniA=,tag:WLKA+uIJJtlDfMMOn0ak7Q==,type:str] sops: age: - recipient: age1pw7kluxp7872c63ne4jecq75glj060jkmqwzkk6esatuyck9egfswufdpk @@ -49,7 +53,7 @@ sops: VGZKdHpVeFRpQUxtSEkyaEhLMlBJcGsKLb0DvPNZosPBUuiX6qz1s5IO5INQh8CK ZtXTVClwMSmaUYhdSB2gKFrKVZHXTJZ4oAL5t/BpC0pOHyr+o96T3Q== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-07-22T05:10:34Z" - mac: ENC[AES256_GCM,data:r8EFKt6lQWpR5Nmmje6ILAOdAsnL9RogOK5mmpGqHNRfDHGQFDZtcffrWAO7n0OxEJhsC2nY6DFcyLiFSPnN/A9vom1NkAShiDvt+yuCBGgHNxG6dC3VAfQHCD2Zt5ulmMc3cJ2GWX6BCXf9E3XNlS3Qh5gDURFnzBV62HyZJp0=,iv:aGQEjdQt+SWQpLHOpITNHxT8IMyLPGDpbMZrn3kOW+c=,tag:L4KLByPoDt278k3QsSkWYA==,type:str] + lastmodified: "2025-07-26T15:11:16Z" + mac: ENC[AES256_GCM,data:ebMRGGCyzv5J6nXKOU5Ztacs2KU7Z9UZYC1B2n0NqZcakKmmkAeE6yb4Q83bRd1uys3ERuX6GU1S1lK0B5sd3ArDBXi7L1v4bM4SW5l6jfQIq1Yb2vUwMSCEniMsw5qesmaFhyqm4ppT8JLbidixgTL7dnQHVsefvuAdG01EIbU=,iv:oTbuNlUfV8IOGuwlbZJPiIpodo0CMl0mHCGttIX6xBU=,tag:IWvF6O7TQBqgvuuueZsyfw==,type:str] unencrypted_suffix: _unencrypted version: 3.10.2