diff --git a/flake.lock b/flake.lock index 576b8fb..95f248a 100644 --- a/flake.lock +++ b/flake.lock @@ -128,6 +128,22 @@ } }, "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1767039857, @@ -306,6 +322,26 @@ "type": "github" } }, + "minecraft": { + "inputs": { + "flake-compat": "flake-compat_2", + "nixpkgs": "nixpkgs_2", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1777001712, + "narHash": "sha256-9JX9msZU1NvHzjKM24PRorP76Ge8GBy6LAkJKA21mlY=", + "owner": "Infinidoge", + "repo": "nix-minecraft", + "rev": "394d3bfd943458baf29e4798bc9b256d824a3bb9", + "type": "github" + }, + "original": { + "owner": "Infinidoge", + "repo": "nix-minecraft", + "type": "github" + } + }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -374,6 +410,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1769461804, + "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1776548001, "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", @@ -389,7 +441,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1766025857, "narHash": "sha256-Lav5jJazCW4mdg1iHcROpuXqmM94BWJvabLFWaJVJp0=", @@ -427,7 +479,7 @@ "nixpkgs": [ "nixunstable" ], - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1776830812, @@ -447,7 +499,7 @@ "nurpkgs": { "inputs": { "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1776910402, @@ -471,6 +523,7 @@ "darwin": "darwin_2", "flake-parts": "flake-parts_2", "hmunstable": "hmunstable", + "minecraft": "minecraft", "nix-hardware": "nix-hardware", "nixunstable": "nixunstable", "nixvimunstable": "nixvimunstable", @@ -525,6 +578,21 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -548,7 +616,7 @@ }, "vsext": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1776828494, @@ -566,7 +634,7 @@ }, "wsl": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "nixpkgs": [ "nixunstable" ] diff --git a/flake.nix b/flake.nix index 7b96065..a411093 100644 --- a/flake.nix +++ b/flake.nix @@ -23,6 +23,7 @@ url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixunstable"; }; + minecraft.url = "github:Infinidoge/nix-minecraft"; nix-hardware.url = "github:nixos/nixos-hardware"; nixvimunstable = { url = "github:nix-community/nixvim/main"; @@ -47,6 +48,7 @@ top.nixvimunstable.overlays.default top.nurpkgs.overlays.default top.vsext.overlays.default + top.minecraft.overlay ]; metadata = builtins.fromJSON (builtins.readFile ./network.json); systems = [ diff --git a/home/hosts/exodus/default.nix b/home/hosts/exodus/default.nix index 9cf24cb..55553db 100644 --- a/home/hosts/exodus/default.nix +++ b/home/hosts/exodus/default.nix @@ -24,6 +24,7 @@ minio-client mumble pre-commit + prismlauncher restic restic-browser tea diff --git a/hosts/unstable/genesis/default.nix b/hosts/unstable/genesis/default.nix index 9d73ce1..d23cebf 100644 --- a/hosts/unstable/genesis/default.nix +++ b/hosts/unstable/genesis/default.nix @@ -2,12 +2,13 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ pkgs, ... }: +{ top, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ./networking.nix + top.minecraft.nixosModules.minecraft-servers ]; greg = { @@ -35,4 +36,111 @@ ]; networking.hostName = "genesis"; # Define your hostname. + + services = { + minecraft-servers = { + enable = true; + eula = true; + openFirewall = true; + + servers = { + maya = { + enable = true; + operators = { + Almec = { + bypassesPlayerLimit = true; + uuid = "7884dc5a-ae21-43d5-9506-a934d59be19a"; + }; + }; + package = pkgs.fabricServers.fabric.override { jre_headless = pkgs.openjdk25_headless; }; + + serverProperties = { + allow-flight = true; + motd = "Maya's Minecraft World"; + }; + whitelist = { }; + + jvmOpts = "-Xms4092M -Xmx4092M"; + + symlinks = { + mods = pkgs.linkFarmFromDrvs "mods" ( + builtins.attrValues { + # Health info + appleskin = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/EsAfCjCV/versions/HwaLJe3v/appleskin-fabric-mc26.1-3.0.9.jar"; + hash = "sha256-iNCycR/oxqFpbPGfIcfgfWOm7PzPiIu5AmBWb8asTb4="; + }; + # Needed by survivalfly + balm = pkgs.fetchurl { + url = "https://mediafilez.forgecdn.net/files/7959/843/balm-fabric-26.1.2-26.1.2.4.jar"; + hash = "sha256-zDtDxkxOftpW0wUIap7l6abGCjXNczwrF2wLZDztyA0="; + }; + # Adds more diverse biomes + # https://www.curseforge.com/minecraft/mc-mods/biomes-o-plenty + biomes = pkgs.fetchurl { + url = "https://mediafilez.forgecdn.net/files/7977/180/BiomesOPlenty-fabric-26.1.2-26.1.2.0.3.jar"; + hash = "sha256-0aPtsRep0ftbkKqbp69PgUnNJyOBLY9vcPsB1mhOy/M="; + }; + # Automation engines + # https://www.curseforge.com/minecraft/mc-mods/create + #create = pkgs.fetchurl { + # url = "https://mediafilez.forgecdn.net/files/7963/363/create-1.21.1-6.0.10.jar"; + # hash = "sha256-74f+Vwnxuh9bi7IKKSW1r7RmnheP1ti/EMFndZ7v43o="; + #}; + fabric_api = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/tnmuHGZA/fabric-api-0.146.1%2B26.1.2.jar"; + hash = "sha256-8Jy/xmxRtw4z4GJ+38wwbXHVn4NGYp4w/mFvW9cmvKg="; + }; + # Required by biomes-o-plenty + # https://www.curseforge.com/minecraft/mc-mods/glitchcore + glitchcore = pkgs.fetchurl { + url = "https://mediafilez.forgecdn.net/files/7975/608/GlitchCore-fabric-26.1.2-26.1.2.0.0.jar"; + hash = "sha256-IDz+TblWvgt4UxFg3L3DhFMEESoX7y5cTOvXhyccQm8="; + }; + # Tooltips + # https://www.curseforge.com/minecraft/mc-mods/jade/ + jade = pkgs.fetchurl { + url = "https://mediafilez.forgecdn.net/files/7886/518/Jade-mc26.1-Fabric-26.0.8.jar"; + hash = "sha256-Pc3R5eO4Jf+94mNMPtY/vvpbomp+S+qnAUAVbQk1r2Y="; + }; + # Gives info on crafting recipes + # https://www.curseforge.com/minecraft/mc-mods/jei + jei = pkgs.fetchurl { + url = "https://mediafilez.forgecdn.net/files/7920/925/jei-26.1.2-fabric-29.5.0.26.jar"; + hash = "sha256-7nF7fXYPIg9the/mxi6pUYEmKtosZO6yL2b0Dgf8+fI="; + }; + # Machines + # https://www.curseforge.com/minecraft/mc-mods/mekanism + #mekanism = pkgs.fetchurl { + # url = "https://mediafilez.forgecdn.net/files/7904/58/Mekanism-1.21.1-10.7.19.85.jar"; + # hash = "sha256-AE28nzEG9NGSrqoe4RkN0W7JyoBZ7T0JO4ADT0xXT0M="; + #}; + # Shows installed mods + modmenu = pkgs.fetchurl { + url = "https://cdn.modrinth.com/data/mOgUt4GM/versions/jvjwXH6l/modmenu-18.0.0-alpha.8.jar"; + hash = "sha256-u0gtCOVAnNxyHcslo+y9l/jCGsFb+U/Y8soiUilhZDA="; + }; + # Better storage engines + # https://www.curseforge.com/minecraft/mc-mods/refined-storage + refined-storage = pkgs.fetchurl { + url = "https://mediafilez.forgecdn.net/files/7961/605/refinedstorage-fabric-3.0.0-beta.5.jar"; + hash = "sha256-UiXNrGw/giCZAnCjFzFc9k4mrq6deTtL6Z00arSUFOU="; + }; + survivalfly = pkgs.fetchurl { + url = "https://mediafilez.forgecdn.net/files/7870/312/survivalfly-1.3_fabric-mc26.1.1.jar"; + hash = "sha256-Kai4wSxckpXbs1yLp8wJ4BmmjNkdDbeqerqWGIz3+Zk="; + }; + # Also needed by biomes + # https://www.curseforge.com/minecraft/mc-mods/terrablender-fabric + terrablender = pkgs.fetchurl { + url = "https://mediafilez.forgecdn.net/files/7933/873/TerraBlender-fabric-26.1.2-26.1.2.0.1.jar"; + hash = "sha256-lUrkmMIod54Qj78H0rzT4EYoEeiBG7w6sVOJlRvsnQ4="; + }; + } + ); + }; + }; + }; + }; + }; }