diff options
author | Austin Seipp <aseipp@pobox.com> | 2014-03-29 04:48:33 -0500 |
---|---|---|
committer | Austin Seipp <aseipp@pobox.com> | 2014-03-29 05:31:27 -0500 |
commit | 1acca1c396ca97b9ef706a66e5170341c9ec33d5 (patch) | |
tree | b71a59a80e843cfecd036bc49bf802c0444629f9 /nixos/modules/services/games/minecraft-server.nix | |
parent | d60af7f34dfa9caae8139179e3acc5fbe68c9549 (diff) | |
download | nixlib-1acca1c396ca97b9ef706a66e5170341c9ec33d5.tar nixlib-1acca1c396ca97b9ef706a66e5170341c9ec33d5.tar.gz nixlib-1acca1c396ca97b9ef706a66e5170341c9ec33d5.tar.bz2 nixlib-1acca1c396ca97b9ef706a66e5170341c9ec33d5.tar.lz nixlib-1acca1c396ca97b9ef706a66e5170341c9ec33d5.tar.xz nixlib-1acca1c396ca97b9ef706a66e5170341c9ec33d5.tar.zst nixlib-1acca1c396ca97b9ef706a66e5170341c9ec33d5.zip |
nixos: add minecraft-server service
Signed-off-by: Austin Seipp <aseipp@pobox.com>
Diffstat (limited to 'nixos/modules/services/games/minecraft-server.nix')
-rw-r--r-- | nixos/modules/services/games/minecraft-server.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/nixos/modules/services/games/minecraft-server.nix b/nixos/modules/services/games/minecraft-server.nix new file mode 100644 index 000000000000..ac70bc53473d --- /dev/null +++ b/nixos/modules/services/games/minecraft-server.nix @@ -0,0 +1,51 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + cfg = config.services.minecraft-server; +in +{ + options = { + services.minecraft-server = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + If enabled, start a Minecraft Server. The listening port for + the server is always <literal>25565</literal>. The server + data will be loaded from and saved to + <literal>/var/lib/minecraft</literal>. + ''; + }; + + jvmOpts = mkOption { + type = types.str; + default = "-Xmx2048M -Xms2048M"; + description = "JVM options for the Minecraft Service."; + }; + }; + }; + + config = mkIf cfg.enable { + users.extraUsers.minecraft = { + description = "Minecraft Server Service user"; + home = "/var/lib/minecraft"; + createHome = true; + uid = config.ids.uids.minecraft; + }; + + systemd.services.minecraft-server = { + description = "Minecraft Server Service"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + + serviceConfig.Restart = "always"; + serviceConfig.User = "minecraft"; + script = '' + cd /var/lib/minecraft + exec ${pkgs.minecraft-server}/bin/minecraft-server ${cfg.jvmOpts} + ''; + }; + }; +} |