commit fd1216c3753fed725e2ce0d6bfc8d24419624357
parent 3075583f589aee65a238cf7ae906b5a4fa43a943
Author: Katja (ctucx) <git@ctu.cx>
Date: Sun, 2 Mar 2025 13:43:28 +0100
parent 3075583f589aee65a238cf7ae906b5a4fa43a943
Author: Katja (ctucx) <git@ctu.cx>
Date: Sun, 2 Mar 2025 13:43:28 +0100
modules: cleanup
3 files changed, 0 insertions(+), 170 deletions(-)
D
|
109
-------------------------------------------------------------------------------
diff --git a/modules/default.nix b/modules/default.nix @@ -17,8 +17,6 @@ ./linux/email-notify.nix ./linux/dns.nix ./linux/gotosocial.nix - ./linux/nginx-sni-proxy.nix - ./linux/minecraft-bedrock-server.nix ] else []) (if (currentSystem == "aarch64-darwin") then [ inputs.agenix.darwinModules.default @@ -27,17 +25,9 @@ ./darwin/syncthing.nix ./darwin/skhd.nix ] else []) - (if (currentSystem == "x86_64-darwin") then [ - inputs.agenix.darwinModules.default - ./darwin/quirks.nix - ./darwin/hidutil.nix - ./darwin/syncthing.nix - ./darwin/skhd.nix - ] else []) ]); options = { - networking.usePBBUplink = lib.mkOption { type = lib.types.bool; default = false; }; networking.primaryIP = lib.mkOption { type = lib.types.str; default = ""; }; networking.primaryIP4 = lib.mkOption { type = lib.types.str; default = ""; }; networking.secondaryIP4 = lib.mkOption { type = lib.types.str; default = ""; };
diff --git a/modules/linux/minecraft-bedrock-server.nix b/modules/linux/minecraft-bedrock-server.nix @@ -1,109 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - cfg = config.services.minecraft-bedrock-server; - - cfgToString = v: if builtins.isBool v then boolToString v else toString v; - allowListFile = pkgs.writeText "allowlist.json" (builtins.toJSON cfg.allowList); - permissionsFile = pkgs.writeText "permissions.json" (builtins.toJSON cfg.permissions); - serverPropertiesFile = pkgs.writeText "server.properties" ('' - # server.properties managed by NixOS configuration - '' + concatStringsSep "\n" (mapAttrsToList - (n: v: "${n}=${cfgToString v}") cfg.settings)); - -in { - - options = { - services.minecraft-bedrock-server = { - - enable = mkOption { - type = types.bool; - default = false; - }; - - dataDir = mkOption { - type = types.path; - default = "/var/lib/minecraft-bedrock"; - }; - - allowList = mkOption { - type = with types; listOf (attrs); - default = []; - }; - - permissions = mkOption { - type = with types; listOf (attrs); - default = []; - }; - - settings = mkOption { - type = with types; attrsOf (oneOf [ bool int str ]); - }; - - package = mkOption { - type = types.package; - default = pkgs.minecraft-bedrock-server; - }; - - }; - }; - - config = mkIf cfg.enable { - - services.minecraft-bedrock-server.settings = { - server-name = lib.mkDefault "Bedrock Server"; - gamemode = lib.mkDefault "survival"; - difficulty = lib.mkDefault "easy"; - allow-list = lib.mkDefault false; - allow-cheats = lib.mkDefault false; - max-players = lib.mkDefault 10; - online-mode = lib.mkDefault false; - server-port = lib.mkDefault 19132; - server-portv6 = lib.mkDefault 19133; - view-distance = lib.mkDefault 32; - tick-distance = lib.mkDefault 4; - player-idle-timeout = lib.mkDefault 30; - max-threads = lib.mkDefault 4; - level-name = lib.mkDefault "Bedrock level"; - level-seed = lib.mkDefault ""; - default-player-permission-level = lib.mkDefault "member"; - texturepack-required = lib.mkDefault false; - content-log-file-enabled = lib.mkDefault false; - compression-threshold = lib.mkDefault 1; - server-authoritative-movement = lib.mkDefault "server-auth"; - correct-player-movement = lib.mkDefault false; - }; - - - users.groups.minecraft = {}; - users.users.minecraft = { - isSystemUser = true; - home = cfg.dataDir; - createHome = true; - group = "minecraft"; - }; - - systemd.services.minecraft-bedrock-server = { - description = "Minecraft Bedrock Server Service"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - - serviceConfig = { - ExecStart = "${cfg.package}/bin/bedrock_server"; - Restart = "always"; - User = "minecraft"; - WorkingDirectory = cfg.dataDir; - }; - - preStart = '' - cp -a -n ${cfg.package}/var/lib/* . - cp -f ${serverPropertiesFile} server.properties - cp -f ${permissionsFile} permissions.json - cp -f ${allowListFile} allowlist.json - chmod +w server.properties - ''; - }; - }; -}
diff --git a/modules/linux/nginx-sni-proxy.nix b/modules/linux/nginx-sni-proxy.nix @@ -1,51 +0,0 @@ -{ config, lib, ... }: - -let - cfg = config.services.nginx-sni-proxy; - upstreams = with lib; (concatStringsSep "\n" (mapAttrsToList (host: dest: - "${host} ${dest}:443;" - ) (concatMapAttrs (dest: hosts: - (genAttrs hosts (host: dest)) - ) cfg.upstreamHosts - ))); - -in { - - options.services.nginx-sni-proxy = { - enable = lib.mkEnableOption "nginx SNI proxy"; - - upstreamHosts = lib.mkOption { - type = with lib.types; attrsOf (listOf str); - default = {}; - }; - }; - - config.services.nginx = lib.mkIf cfg.enable { - defaultSSLListenPort = 7443; - defaultListenAddresses = [ "[::1]" ]; - - streamConfig = '' - map $ssl_preread_server_name $sni_upstream { - ${upstreams} - default [::1]:7443; - } - server { - listen 0.0.0.0:443; - listen [::]:443; - ssl_preread on; - resolver 1.1.1.1; - proxy_pass $sni_upstream; - } - ''; - - appendHttpConfig = '' - server { - listen 0.0.0.0:80; - listen [::]:80; - server_name _; - return 301 https://$host$request_uri; - } - ''; - }; - -}