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 #
|
# 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
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user