From bf102a24d97dc607ba9e6de8736ba567c46e5f72 Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Sun, 29 Sep 2024 00:25:41 -0400 Subject: [PATCH] minecraft overhaul --- .gitattributes | 1 + configuration.nix | 19 ++++++-- flake.lock | 80 ++++++++++++++++++++++++++++-- flake.nix | 18 +++++-- secrets/minecraft-whitelist.nix | Bin 0 -> 352 bytes services/caddy.nix | 2 +- services/{git.nix => gitea.nix} | 2 +- services/jellyfin.nix | 9 +++- services/minecraft.nix | 83 ++++++++++++++++++++++++++++++++ services/quadlet.nix | 32 ++++++------ 10 files changed, 214 insertions(+), 32 deletions(-) create mode 100644 secrets/minecraft-whitelist.nix rename services/{git.nix => gitea.nix} (94%) create mode 100644 services/minecraft.nix diff --git a/.gitattributes b/.gitattributes index 82c6e8a..4c9ff84 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ secrets/murmur_password filter=git-crypt diff=git-crypt secrets/hashedPass filter=git-crypt diff=git-crypt secrets/mullvad.nix filter=git-crypt diff=git-crypt +secrets/minecraft-whitelist.nix filter=git-crypt diff=git-crypt diff --git a/configuration.nix b/configuration.nix index 88498fe..644f636 100644 --- a/configuration.nix +++ b/configuration.nix @@ -15,7 +15,8 @@ ./services/caddy.nix ./services/quadlet.nix ./services/immich.nix - ./services/git.nix + ./services/gitea.nix + ./services/minecraft.nix ]; nix = { @@ -45,7 +46,19 @@ # Use the systemd-boot EFI boot loader. systemd-boot.enable = true; efi.canTouchEfiVariables = true; + + # 1 sec timeout + timeout = 1; }; + + initrd = { + compressor = "zstd"; + compressorArgs = [ "-19" ]; + }; + }; + + environment.etc = { + "issue".text = "muffin server :3\n"; }; # Set your time zone. @@ -210,10 +223,6 @@ ]; }; - networking.firewall.allowedTCPPorts = [ - service_configs.ports.minecraft - ]; - services.murmur = { enable = true; openFirewall = true; diff --git a/flake.lock b/flake.lock index 3d8f357..aa0651e 100644 --- a/flake.lock +++ b/flake.lock @@ -1,17 +1,73 @@ { "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nix-minecraft": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1727487901, + "narHash": "sha256-m+QPmso7l/SVPgrQz72PicSQgaaLs/Iyy+9eAyHY3+c=", + "owner": "Infinidoge", + "repo": "nix-minecraft", + "rev": "39983d066b08107165ba5757d03f414abb4e52c9", + "type": "github" + }, + "original": { + "owner": "Infinidoge", + "repo": "nix-minecraft", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1727447095, - "narHash": "sha256-bUFP8kDHzrbnM3cTVu+k6kJ2qtA7a1Q5cZHjC0J0v7A=", + "lastModified": 1727348695, + "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4c030cf309bffa9cd87336705e96ce941ce977d9", + "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", "type": "github" }, "original": { "owner": "NixOS", - "ref": "master", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -38,9 +94,25 @@ }, "root": { "inputs": { + "nix-minecraft": "nix-minecraft", "nixpkgs": "nixpkgs", "quadlet-nix": "quadlet-nix" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 1d9989f..f4ec7d2 100644 --- a/flake.nix +++ b/flake.nix @@ -2,16 +2,19 @@ description = "Flake for server muffin"; inputs = { - # nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - nixpkgs.url = "github:NixOS/nixpkgs/master"; + 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"; }; outputs = { nixpkgs, quadlet-nix, + nix-minecraft, ... }: let @@ -29,7 +32,7 @@ jellyfin = 8096; torrent = 6011; minecraft = 25565; - git-server = 3281; + gitea = 3281; }; https = { @@ -50,7 +53,7 @@ }; minecraft = { - dir = "/tank/services/minecraft"; + dir = "/tank/services/minecraft/main"; }; gluetun = { @@ -81,6 +84,13 @@ modules = [ ./configuration.nix quadlet-nix.nixosModules.quadlet + ( + { pkgs, ... }: + { + imports = [ nix-minecraft.nixosModules.minecraft-servers ]; + nixpkgs.overlays = [ nix-minecraft.overlay ]; + } + ) ]; }; }; diff --git a/secrets/minecraft-whitelist.nix b/secrets/minecraft-whitelist.nix new file mode 100644 index 0000000000000000000000000000000000000000..f92437b67576231d2403c0699d96d2886c48d9c8 GIT binary patch literal 352 zcmZQ@_Y83kiVO&0I5j2K{kJ`b)&Iz?t%qHe7X07gsQ*vg%p<|DD`J^&%3|&bPoD@g zY9wu2Ia9%Y!&xp7Lz5p#(@sYUUDD#M;ZdCuf8tQ)ziBdcKTd6AoOH4{?6+KaavR@< z%#uTE&+)#kp8PghJ$NNo($-6-IAr=-M9o$uI!$X4U--4?&b~dO z+%e^6M0?DZ8U2(wdg>BmnPhq~LU$XIk!vrRifFREGz6t*x6@PJC zcgpA2fijQnLQgks=b89N@u7ajmefB<_Fr2s8$a~8wP3#{_r@Pi+?N9FgRga$+`M#z-u!Kj&