mirror of
https://git.pvv.ntnu.no/Drift/pvv-nixos-config.git
synced 2025-12-27 11:02:33 +01:00
128 lines
3.5 KiB
Nix
128 lines
3.5 KiB
Nix
{ config, lib, pkgs, inputs, ... }:
|
|
let
|
|
vanillaSurvival = "/var/lib/bluemap/vanilla_survival_world";
|
|
format = pkgs.formats.hocon { };
|
|
in {
|
|
# NOTE: our versino of the module gets added in flake.nix
|
|
disabledModules = [ "services/web-apps/bluemap.nix" ];
|
|
|
|
sops.secrets."bluemap/ssh-key" = { };
|
|
sops.secrets."bluemap/ssh-known-hosts" = { };
|
|
|
|
services.bluemap = {
|
|
enable = true;
|
|
|
|
eula = true;
|
|
onCalendar = "*-*-* 05:45:00"; # a little over an hour after auto-upgrade
|
|
|
|
host = "minecraft.pvv.ntnu.no";
|
|
|
|
maps = let
|
|
inherit (inputs.minecraft-kartverket.packages.${pkgs.stdenv.hostPlatform.system}) bluemap-export;
|
|
in {
|
|
"verden" = {
|
|
settings = {
|
|
world = vanillaSurvival;
|
|
dimension = "minecraft:overworld";
|
|
name = "Verden";
|
|
sorting = 0;
|
|
start-pos = {
|
|
x = 0;
|
|
z = 0;
|
|
};
|
|
ambient-light = 0.1;
|
|
cave-detection-ocean-floor = -5;
|
|
marker-sets = {
|
|
_includes = [ (format.lib.mkInclude "${bluemap-export}/overworld.hocon") ];
|
|
};
|
|
};
|
|
};
|
|
"underverden" = {
|
|
settings = {
|
|
world = vanillaSurvival;
|
|
dimension = "minecraft:the_nether";
|
|
name = "Underverden";
|
|
sorting = 100;
|
|
start-pos = {
|
|
x = 0;
|
|
z = 0;
|
|
};
|
|
sky-color = "#290000";
|
|
void-color = "#150000";
|
|
sky-light = 1;
|
|
ambient-light = 0.6;
|
|
remove-caves-below-y = -10000;
|
|
cave-detection-ocean-floor = -5;
|
|
cave-detection-uses-block-light = true;
|
|
render-mask = [{
|
|
max-y = 90;
|
|
}];
|
|
marker-sets = {
|
|
_includes = [ (format.lib.mkInclude "${bluemap-export}/nether.hocon") ];
|
|
};
|
|
};
|
|
};
|
|
"enden" = {
|
|
settings = {
|
|
world = vanillaSurvival;
|
|
dimension = "minecraft:the_end";
|
|
name = "Enden";
|
|
sorting = 200;
|
|
start-pos = {
|
|
x = 0;
|
|
z = 0;
|
|
};
|
|
sky-color = "#080010";
|
|
void-color = "#080010";
|
|
sky-light = 1;
|
|
ambient-light = 0.6;
|
|
remove-caves-below-y = -10000;
|
|
cave-detection-ocean-floor = -5;
|
|
marker-sets = {
|
|
_includes = [ (format.lib.mkInclude "${bluemap-export}/the-end.hocon") ];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd.services."render-bluemap-maps" = {
|
|
serviceConfig = {
|
|
StateDirectory = [ "bluemap/world" ];
|
|
ExecStartPre = let
|
|
rsyncArgs = lib.cli.toCommandLineShellGNU { } {
|
|
archive = true;
|
|
compress = true;
|
|
verbose = true;
|
|
no-owner = true;
|
|
no-group = true;
|
|
rsh = "${pkgs.openssh}/bin/ssh -o UserKnownHostsFile=%d/ssh-known-hosts -i %d/sshkey";
|
|
};
|
|
in "${lib.getExe pkgs.rsync} ${rsyncArgs} root@innovation.pvv.ntnu.no:/ ${vanillaSurvival}";
|
|
LoadCredential = [
|
|
"sshkey:${config.sops.secrets."bluemap/ssh-key".path}"
|
|
"ssh-known-hosts:${config.sops.secrets."bluemap/ssh-known-hosts".path}"
|
|
];
|
|
};
|
|
};
|
|
|
|
services.nginx.virtualHosts."minecraft.pvv.ntnu.no" = {
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
kTLS = true;
|
|
http3 = true;
|
|
quic = true;
|
|
http3_hq = true;
|
|
extraConfig = ''
|
|
# Enabling QUIC 0-RTT
|
|
ssl_early_data on;
|
|
|
|
quic_gso on;
|
|
quic_retry on;
|
|
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
|
|
'';
|
|
};
|
|
|
|
networking.firewall.allowedUDPPorts = [ 443 ];
|
|
}
|