45 lines
949 B
Nix
45 lines
949 B
Nix
{ config, lib, pkgs, ... }:
|
|
let
|
|
mcPort = 25565;
|
|
configurationFile = ''
|
|
config:
|
|
lite:
|
|
enabled: true
|
|
routes:
|
|
- host: mc.256.no
|
|
backend: 100.84.215.84:25565
|
|
'';
|
|
file = pkgs.writeText "gate.yaml" configurationFile;
|
|
in
|
|
{
|
|
|
|
networking.firewall.allowedTCPPorts = [ mcPort];
|
|
networking.firewall.allowedUDPPorts = [ mcPort];
|
|
|
|
users.users.gate = {
|
|
isSystemUser = true;
|
|
description = "Gate Minecraft Proxy User";
|
|
home = "/var/lib/gate";
|
|
createHome = true;
|
|
group = "gate";
|
|
};
|
|
|
|
users.groups.gate = {
|
|
};
|
|
|
|
systemd.services."gate" = {
|
|
after = [ "network.target" ];
|
|
wants = [ "network.target" ];
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
serviceConfig = {
|
|
ExecStart = "${pkgs.gate}/bin/gate -c ${file}";
|
|
User = "gate";
|
|
Group = "gate";
|
|
Restart = "on-failure";
|
|
ProtectKernelModules = true;
|
|
NoNewPrivileges = true;
|
|
};
|
|
};
|
|
}
|