diff --git a/modules/default.nix b/modules/default.nix index c590769..d7a43a6 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -11,6 +11,7 @@ ./jellyfin.nix ./stb.nix ./monero.nix + ./minecraft-server.nix ./torrents.nix ./jitsi.nix ./binary-cache.nix diff --git a/modules/minecraft-server.nix b/modules/minecraft-server.nix new file mode 100644 index 0000000..8c16078 --- /dev/null +++ b/modules/minecraft-server.nix @@ -0,0 +1,55 @@ +{ + config, + lib, + pkgs, + pkgs-unstable, + ... +}: +let + cfg = config.custom.services.minecraft-server; +in +{ + options.custom.services.minecraft-server = { + enable = lib.mkEnableOption "minecraft server"; + }; + + config = lib.mkIf cfg.enable { + services.minecraft-server = { + enable = true; + package = pkgs-unstable.minecraft-server; + eula = true; + openFirewall = true; + declarative = true; + serverProperties = { + enable-rcon = true; + "rcon.port" = 25575; + "rcon.password" = "password"; + server-port = 23363; + online-mode = true; + force-gamemode = true; + white-list = true; + diffuculty = "hard"; + }; + whitelist = { + paulplay15 = "1d5abc95-2fdb-4dcb-98e8-4fb5a0fba953"; + Xavier1258 = "e9059cf3-00ef-47a3-92ee-4e4a3fea0e6d"; + denisjulien3333 = "3c93e1a2-42d8-4a51-9fe3-924c8e8d5b07"; + }; + dataDir = "/nix/var/data/minecraft"; + }; + + services.bluemap = { + enable = true; + eula = true; + defaultWorld = "${config.services.minecraft-server.dataDir}/world"; + host = "mcmap.${config.networking.domain}"; + enableNginx = true; + enableRender = true; + }; + + services.nginx.virtualHosts."mcmap.${config.networking.domain}" = { + forceSSL = true; + enableACME = true; + }; + }; +} diff --git a/profiles/hel.nix b/profiles/hel.nix index 2e99479..39aaed5 100644 --- a/profiles/hel.nix +++ b/profiles/hel.nix @@ -1,4 +1,9 @@ -{ config, pkgs, ... }: +{ + config, + pkgs, + pkgs-unstable, + ... +}: { imports = [ ../environment.nix @@ -230,10 +235,11 @@ roundcube.enable = true; monero.enable = true; grafana.enable = true; - monitoring-exporters.enable = true; - immich.enable = true; - forgejo.enable = true; headscale.enable = true; + immich.enable = true; + minecraft-server.enable = true; + monitoring-exporters.enable = true; + forgejo.enable = true; backup-job = { enable = true; @@ -374,30 +380,6 @@ }; }; - # services.minecraft-server = { - # enable = false; - # package = pkgs-unstable.minecraft-server; - # eula = true; - # openFirewall = false; - # declarative = true; - # serverProperties = { - # enable-rcon = true; - # "rcon.port" = 25575; - # "rcon.password" = "password"; - # server-port = 23363; - # online-mode = true; - # force-gamemode = true; - # white-list = true; - # diffuculty = "hard"; - # }; - # whitelist = { - # paulplay15 = "1d5abc95-2fdb-4dcb-98e8-4fb5a0fba953"; - # Xavier1258 = "e9059cf3-00ef-47a3-92ee-4e4a3fea0e6d"; - # denisjulien3333 = "3c93e1a2-42d8-4a51-9fe3-924c8e8d5b07"; - # }; - # dataDir = "/nix/var/data/minecraft"; - # }; - # virtualisation.oci-containers.containers = { # "minecraft" = { # image = "itzg/minecraft-server"; diff --git a/terraform/dns.tf b/terraform/dns.tf index 309d129..18ac033 100644 --- a/terraform/dns.tf +++ b/terraform/dns.tf @@ -28,6 +28,14 @@ resource "hetznerdns_record" "banditlair_hcloud_a" { ttl = 600 } +resource "hetznerdns_record" "banditlair_mcmap_a" { + zone_id = data.hetznerdns_zone.banditlair_zone.id + name = "mcmap" + value = local.hel1_ip + type = "A" + ttl = 600 +} + resource "hetznerdns_record" "webmail_a" { zone_id = data.hetznerdns_zone.banditlair_zone.id name = "webmail"