diff --git a/flake.lock b/flake.lock index be2e7d8..a787f6f 100644 --- a/flake.lock +++ b/flake.lock @@ -144,7 +144,7 @@ }, "devshell": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1741473158, @@ -370,6 +370,24 @@ "type": "github" } }, + "heartsmp": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1759516787, + "narHash": "sha256-FR+amHKKg2a2e9ngUE83t+7qmup4rVZNkFxXiOlP7Ss=", + "ref": "refs/heads/main", + "rev": "a6ea4efa2031ac6b02244c7fb72824a9c7114a5e", + "revCount": 4, + "type": "git", + "url": "file:///home/guz/.projects/heart-smp" + }, + "original": { + "type": "git", + "url": "file:///home/guz/.projects/heart-smp" + } + }, "hercules-ci-effects": { "inputs": { "flake-parts": [ @@ -418,7 +436,7 @@ }, "home-manager_2": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1751990210, @@ -508,7 +526,7 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_2", "xdph": "xdph" @@ -736,7 +754,7 @@ "blink-cmp": "blink-cmp", "go-grip": "go-grip", "mdfmt": "mdfmt", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1756571933, @@ -792,11 +810,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1756386758, - "narHash": "sha256-1wxxznpW2CKvI9VdniaUnTT2Os6rdRJcRUf65ZK9OtE=", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", "owner": "nixos", "repo": "nixpkgs", - "rev": "dfb2f12e899db4876308eba6d93455ab7da304cd", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { @@ -806,6 +824,22 @@ "type": "github" } }, + "nixpkgs-ente": { + "locked": { + "lastModified": 1754679830, + "narHash": "sha256-lQIi0eGZ5VOGraniTX+7+4eV4uJ+VizXeIik5+H7KFQ=", + "owner": "oddlama", + "repo": "nixpkgs", + "rev": "aabbf91c16d4c78a5b4c67a8c0750d549f964cca", + "type": "github" + }, + "original": { + "owner": "oddlama", + "ref": "ente-modules", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-lib": { "locked": { "lastModified": 1733096140, @@ -850,6 +884,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1756386758, + "narHash": "sha256-1wxxznpW2CKvI9VdniaUnTT2Os6rdRJcRUf65ZK9OtE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "dfb2f12e899db4876308eba6d93455ab7da304cd", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1756469547, "narHash": "sha256-YvtD2E7MYsQ3r7K9K2G7nCslCKMPShoSEAtbjHLtH0k=", @@ -865,7 +915,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1722073938, "narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=", @@ -881,7 +931,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1751637120, "narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=", @@ -897,7 +947,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1751792365, "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", @@ -913,7 +963,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1747958103, "narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=", @@ -1001,11 +1051,13 @@ }, "root": { "inputs": { + "heartsmp": "heartsmp", "home-manager": "home-manager", "neovim": "neovim", "nix-flatpak": "nix-flatpak", "nixpak": "nixpak", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", + "nixpkgs-ente": "nixpkgs-ente", "nixpkgs-unstable": "nixpkgs-unstable", "rec-sh": "rec-sh", "sops-nix": "sops-nix", @@ -1221,7 +1273,7 @@ }, "treefmt-nix_2": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { "lastModified": 1750931469, diff --git a/flake.nix b/flake.nix index 8d2cedc..2cbe4cd 100644 --- a/flake.nix +++ b/flake.nix @@ -24,11 +24,20 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + heart-modpack = { + url = "git+file:///home/guz/.projects/heart-modpack"; + }; + nix-flatpak = { url = "github:gmodena/nix-flatpak/?ref=latest"; inputs.nixpkgs.follows = "nixpkgs"; }; + nix-minecraft = { + url = "github:infinidoge/nix-minecraft"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixpak = { url = "github:nixpak/nixpak"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/home/guz/apps.nix b/home/guz/apps.nix index 49b4ea3..221c87c 100644 --- a/home/guz/apps.nix +++ b/home/guz/apps.nix @@ -25,6 +25,7 @@ "org.libreoffice.LibreOffice" # Media creation + "com.nextcloud.desktopclient.nextcloud" "fr.natron.Natron" "org.beeref.BeeRef" "com.github.vikdevelop.photopea_app" diff --git a/hosts/battleship/configuration.nix b/hosts/battleship/configuration.nix index e0946a7..a0f87e0 100644 --- a/hosts/battleship/configuration.nix +++ b/hosts/battleship/configuration.nix @@ -9,6 +9,8 @@ ../../configuration.nix ./home.nix + + ./services.nix ]; users.users."guz" = { diff --git a/hosts/battleship/services.nix b/hosts/battleship/services.nix new file mode 100644 index 0000000..a386561 --- /dev/null +++ b/hosts/battleship/services.nix @@ -0,0 +1,51 @@ +{ + pkgs, + pkgs-unstable, + config, + inputs, + lib, + ... +}: { + imports = [ + inputs.nix-minecraft.nixosModules.minecraft-servers + ]; + + nixpkgs.overlays = [ + inputs.nix-minecraft.overlay + ]; + nixpkgs.config.allowUnfree = true; + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "minecraft-server" + "minecraft-server-1.21.8" + ]; + + services.minecraft-servers = { + enable = true; + eula = true; + dataDir = "/var/lib/minecraft-servers"; + managementSystem = { + tmux.enable = false; + systemd-socket.enable = true; + }; + openFirewall = true; + servers = { + "heart-smp" = let + modpack = inputs.heart-modpack.packages.${pkgs.system}.default; + mcVersion = modpack.manifest.versions.minecraft; + fabricVersion = modpack.manifest.versions.fabric; + serverVersion = lib.replaceStrings ["."] ["_"] "fabric-${mcVersion}"; + in { + enable = true; + autoStart = false; + package = pkgs.fabricServers.${serverVersion}.override {loaderVersion = fabricVersion;}; + symlinks = { + "mods" = "${modpack}/mods"; + }; + files = { + "config" = "${modpack}/config"; + }; + }; + }; + }; +}