separate out mc service

This commit is contained in:
2025-06-21 15:45:34 -05:00
parent 2f5c9422d3
commit 2e184b5433
3 changed files with 64 additions and 2 deletions
+54
View File
@@ -1,10 +1,64 @@
{ {
description = "Declarative MC config";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
};
outputs = { self, nixpkgs, nix-minecraft }@inputs: {
nixosModules.mc-service = { config, lib, pkgs, ... }:
let
opts = config.services.mc-service;
in {
options.services.mc-service = {
enable = lib.mkEnableOption "Enable Minecraft Server";
storeDir = lib.mkOption {
type = lib.types.path;
default = "/persist/srv/minecraft";
description = "Minecraft files locations";
};
};
config = lib.mkIf opts.enable {
users.groups.mc-service = {};
users.users.mc-service = {
isSystemUser = true;
createHome = true;
home = "${opts.storeDir}";
group = "mc-service";
};
nix-minecraft.nixosModules.minecraft-servers = {
enable = true;
eula = true;
openFirewall = true;
dataDir = "${opts.storeDir}";
users = "mc-service";
group = "mc-service";
servers.vanilla = {
enable = true;
restart = "always";
jvmOpts = "-Xmx16G -Xms8G";
serverProperties = {
server-port = 25565;
difficulty = 3;
gamemode = 0;
force-gamemode = true;
max-players = 10;
motd = "Home MC Server";
white-list = false;
};
# Specify the custom minecraft server package
package = pkgs.minecraftServers.fabric-server;
};
};
};
};
};
} }
+6
View File
@@ -95,6 +95,12 @@
# ================================ # # ================================ #
# MINECRAFT # # MINECRAFT #
# ================================ # # ================================ #
services.mc-service = {
enable = true;
storeDir = "/persist/srv/minecraft";
};
services.minecraft-server = { services.minecraft-server = {
enable = true; enable = true;
eula = true; eula = true;
+3 -1
View File
@@ -22,9 +22,10 @@
# but could well be a separate repository # but could well be a separate repository
tests-service.url = "github:RoyDumblauskas/tests-service?shallow=1"; tests-service.url = "github:RoyDumblauskas/tests-service?shallow=1";
minio-service.url = "path:../homelab-services/minio-service"; minio-service.url = "path:../homelab-services/minio-service";
mc-service.url = "path:../homelab-services/mc-service";
}; };
outputs = { self, nixpkgs, home-manager, disko, sops-nix, quasiSecrets, impermanence, tests-service, minio-service }@inputs: outputs = { self, nixpkgs, home-manager, disko, sops-nix, quasiSecrets, impermanence, tests-service, minio-service, mc-service }@inputs:
let let
nodes = [ nodes = [
{ {
@@ -54,6 +55,7 @@
impermanence.nixosModules.impermanence impermanence.nixosModules.impermanence
tests-service.nixosModules.default tests-service.nixosModules.default
minio-service.nixosModules.minio-service minio-service.nixosModules.minio-service
mc-service.nixosModules.mc-service
home-manager.nixosModules.home-manager { home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;