separate out mc service
This commit is contained in:
@@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -95,6 +95,12 @@
|
||||
# ================================ #
|
||||
# MINECRAFT #
|
||||
# ================================ #
|
||||
|
||||
services.mc-service = {
|
||||
enable = true;
|
||||
storeDir = "/persist/srv/minecraft";
|
||||
};
|
||||
|
||||
services.minecraft-server = {
|
||||
enable = true;
|
||||
eula = true;
|
||||
|
||||
+3
-1
@@ -22,9 +22,10 @@
|
||||
# but could well be a separate repository
|
||||
tests-service.url = "github:RoyDumblauskas/tests-service?shallow=1";
|
||||
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
|
||||
nodes = [
|
||||
{
|
||||
@@ -54,6 +55,7 @@
|
||||
impermanence.nixosModules.impermanence
|
||||
tests-service.nixosModules.default
|
||||
minio-service.nixosModules.minio-service
|
||||
mc-service.nixosModules.mc-service
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
|
||||
Reference in New Issue
Block a user