Paul Brinkmeier 8e0c6266af
All checks were successful
Check / Lint Ansible Files (push) Successful in 2m18s
Add gilgamesh NixOS config and spigot-server package
2023-11-18 05:28:33 +01:00

56 lines
1.2 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
spigot-server = pkgs.callPackage ../packages/spigot-server.nix {};
cfg = config.services.spigot;
name = "spigot";
StateDirectory = "spigot-server";
in {
options = {
services.spigot = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to turn on the Spigot Minecraft server.
'';
};
user = mkOption {
type = types.str;
default = name;
description = ''
The user account and group that Spigot runs as.
'';
};
};
};
config = mkIf cfg.enable {
users.users = {
${name} = {
isSystemUser = true;
group = name;
description = "Spigot Minecraft server user";
};
};
users.groups = {
${name} = {
};
};
systemd.services.spigot-server = rec {
description = "Spigot Minecraft server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
User = "${cfg.user}";
inherit StateDirectory;
WorkingDirectory = "/var/lib/${StateDirectory}";
ExecStart = "${spigot-server}/bin/spigot-server";
};
};
};
}