Files
nixos/roles/minecraftserver.nix

66 lines
1.5 KiB
Nix

# Module: roles/minecraftserver
# Enables a Minecraft server
{
config,
lib,
pkgs,
pkgsUnstable,
inputs,
...
}:
with lib;
let
cfg = config.minecraftserver;
in
{
options.minecraftserver = {
enable = mkEnableOption "Enables minecraftserver role";
};
config = mkIf cfg.enable {
# TODO enable ddns-updater
# We want to make this available to the system
# so that borgmatic can call this to pause save on the minecraft server
environment.systemPackages = with pkgsUnstable; [
mcrcon
];
systemd.services.borgmatic = {
path = with pkgsUnstable; [
mcrcon
];
};
environment.etc."alloy/minecraft-server.alloy".text = ''
prometheus.scrape "minecraft_server" {
targets = [
{
"__address__" = "localhost:25585",
},
]
job_name = "minecraft-server-metrics"
forward_to = [prometheus.remote_write.default.receiver]
scrape_interval = "10s"
}
local.file_match "minecraft_server_logs" {
path_targets = [
{
__path__ = "/opt/minecraft/gms-01-mc_its-et_me/logs/*.log",
"job" = "minecraft-server-logs",
"instance" = "mc.its-et.me",
},
]
sync_period = "10s"
}
loki.source.file "minecraft_server_logs" {
targets = local.file_match.minecraft_server_logs.targets
forward_to = [loki.write.default.receiver]
}
'';
};
}