yep, more dotfiles

server: add mindustry instance

wiro.world 34386935 a01ca78e

verified
Changed files
+56
modules
nixos
profiles
+1
modules/nixos/default.nix
···
{
geoclue2 = ./geoclue2.nix;
logiops = ./logiops.nix;
+
mindustry-server = ./mindustry-server.nix;
}
+45
modules/nixos/mindustry-server.nix
···
+
{ config
+
, lib
+
, pkgs
+
, ...
+
}:
+
with lib; let
+
cfg = config.services.mindustry-server;
+
in
+
{
+
options = {
+
services.mindustry-server = {
+
enable = mkEnableOption "Mindustry server";
+
+
package = mkPackageOption pkgs "mindustry-server" { };
+
+
openFirewall = mkOption {
+
type = types.bool;
+
default = false;
+
description = "Open ports in the firewall for the mindustry server";
+
};
+
};
+
};
+
+
config = mkIf cfg.enable {
+
environment.systemPackages = [ cfg.package ];
+
+
systemd.services.mindustry = {
+
description = "Mindustry server";
+
+
serviceConfig = {
+
Type = "simple";
+
ExecStart = "${cfg.package}/bin/mindustry-server host";
+
DynamicUser = true;
+
};
+
+
wantedBy = [ "multi-user.target" ];
+
};
+
+
networking.firewall = mkIf cfg.openFirewall {
+
allowedTCPPorts = [ 6567 ];
+
allowedUDPPorts = [ 6567 ];
+
};
+
};
+
}
+
+10
nixos/profiles/server.nix
···
let
inherit (self.inputs) srvos agenix tangled;
+
inherit (self.nixosModules) mindustry-server;
all-secrets = import ../../secrets;
···
tangled.nixosModules.knot
tangled.nixosModules.spindle
+
+
mindustry-server
];
config = {
···
reverseProxy = true;
};
};
+
+
services.mindustry-server = {
+
enable = true;
+
package = upkgs.mindustry-server;
+
openFirewall = true;
+
};
+
systemd.services.mindustry.enable = false;
};
}