From 591030445a038afbd7c2dd07dbf5d3275c0f20e0 Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Mon, 30 Sep 2024 13:17:41 -0400 Subject: [PATCH] update --- configuration.nix | 12 ++++++++++++ flake.lock | 6 +++--- flake.nix | 23 +++++++++++++---------- hardware.nix | 1 - services/gitea.nix | 1 + services/minecraft.nix | 8 +++++++- 6 files changed, 36 insertions(+), 15 deletions(-) diff --git a/configuration.nix b/configuration.nix index c59a990..4c8ee57 100644 --- a/configuration.nix +++ b/configuration.nix @@ -19,6 +19,13 @@ ./services/minecraft.nix ]; + systemd.targets = { + sleep.enable = false; + suspend.enable = false; + hibernate.enable = false; + hybrid-sleep.enable = false; + }; + nix = { #garbage collection and cleanup stuff gc = { @@ -113,6 +120,11 @@ intel-gpu-tools tmux + + (pkgs.writeScriptBin "mc-attach" '' + #!/bin/sh + tmux -S /run/minecraft/${service_configs.minecraft.server_name}.sock attach + '') ]; services.zfs = { diff --git a/flake.lock b/flake.lock index c1f4eb0..defb0ee 100644 --- a/flake.lock +++ b/flake.lock @@ -43,11 +43,11 @@ ] }, "locked": { - "lastModified": 1727574772, - "narHash": "sha256-bPoftKOe6oWR2o5jgLQjmaBNH2ke7+ooDGxlXXIjsBc=", + "lastModified": 1727660955, + "narHash": "sha256-993wM0FpCGf6V3MuHbooj7By3Jd6v/Skb7GYou9cNAI=", "owner": "Infinidoge", "repo": "nix-minecraft", - "rev": "5ce4fc09d6fcf0b9d801ff3c98da83c56d85e045", + "rev": "e13f816e5bd0612b68568b04a66b1a5a36566549", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 6126287..74b8718 100644 --- a/flake.nix +++ b/flake.nix @@ -4,8 +4,10 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # nixpkgs.url = "github:NixOS/nixpkgs/master"; + quadlet-nix.url = "github:SEIAROTg/quadlet-nix"; quadlet-nix.inputs.nixpkgs.follows = "nixpkgs"; + nix-minecraft.url = "github:Infinidoge/nix-minecraft"; nix-minecraft.inputs.nixpkgs.follows = "nixpkgs"; }; @@ -24,6 +26,7 @@ service_configs = { hdd_path = "/mnt/hdd"; + services_dir = "/tank/services"; # TODO: add checks to make sure none of these collide ports = { @@ -36,12 +39,12 @@ }; https = { - certs = "/tank/services/http_certs"; - data_dir = "/tank/services/http"; + certs = service_configs.services_dir + "/http_certs"; + data_dir = service_configs.services_dir + "/http"; }; gitea = { - dir = "/tank/services/gitea"; + dir = service_configs.services_dir + "/gitea"; }; postgres = { @@ -49,26 +52,26 @@ }; immich = { - dir = "/tank/services/immich"; + dir = service_configs.services_dir + "/immich"; }; minecraft = { - parent_dir = "/tank/services/minecraft"; + parent_dir = service_configs.services_dir + "/minecraft"; server_name = "main"; }; gluetun = { - dir = "/tank/services/gluetun"; + dir = service_configs.services_dir + "/gluetun"; }; torrent = { - config_dir = "/tank/services/qbittorrent/config"; - download_dir = "${service_configs.hdd_path}/torrents"; + config_dir = service_configs.services_dir + "/qbittorrent/config"; + download_dir = service_configs.hdd_path + "/torrents"; }; jellyfin = { - data_dir = "/tank/services/jellyfin"; - cache_dir = "/tank/services/jellyfin_cache"; + data_dir = service_configs.services_dir + "/jellyfin"; + cache_dir = service_configs.services_dir + "/jellyfin_cache"; }; }; in diff --git a/hardware.nix b/hardware.nix index 2229c44..728a2cd 100644 --- a/hardware.nix +++ b/hardware.nix @@ -5,7 +5,6 @@ service_configs, ... }: - { boot.initrd.availableKernelModules = [ "xhci_pci" diff --git a/services/gitea.nix b/services/gitea.nix index 39f3a0a..ff7bff3 100644 --- a/services/gitea.nix +++ b/services/gitea.nix @@ -12,6 +12,7 @@ type = "postgres"; socket = service_configs.postgres.socket; }; + settings = { server = { DOMAIN = "git.gardling.com"; diff --git a/services/minecraft.nix b/services/minecraft.nix index d74bd07..3664c36 100644 --- a/services/minecraft.nix +++ b/services/minecraft.nix @@ -5,7 +5,7 @@ ... }: let -heap_size = "6144M"; + heap_size = "6144M"; in { nixpkgs.config.allowUnfreePredicate = @@ -14,16 +14,22 @@ in "minecraft-server" ]; + users.groups.minecraft = {}; + services.minecraft-servers = { enable = true; eula = true; dataDir = service_configs.minecraft.parent_dir; openFirewall = true; + group = "users"; + servers.${service_configs.minecraft.server_name} = { enable = true; package = pkgs.fabricServers.fabric-1_21_1; + # Aikar's flags jvmOpts = "-Xmx${heap_size} -Xms${heap_size} -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32"; + serverProperties = { server-port = service_configs.ports.minecraft; enforce-whitelist = true;