From 303ca8c8711480120ce4aa0e6bd70732f14fb488 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Thu, 10 Oct 2024 11:46:03 -0500 Subject: [PATCH] Fix minecraft server so saving works --- flake.nix | 1 + modules/nixos/default.nix | 8 +++++++- nixos/beefcake.nix | 32 +++++++++++++++++++++----------- 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/flake.nix b/flake.nix index c5a1338..751d19b 100644 --- a/flake.nix +++ b/flake.nix @@ -407,6 +407,7 @@ virtual-machines-gui laptop gaming + cross-compiler ./nixos/foxtrot.nix diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index b18be39..448baae 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -351,6 +351,10 @@ }; }; + cross-compiler = {config, ...}: { + boot.binfmt.emulatedSystems = ["aarch64-linux"]; + }; + default-nix-configuration-and-overlays = { lib, config, @@ -362,7 +366,7 @@ modifications unstable-packages ]; - # config.allowUnfree = true; + config.allowUnfree = true; }; nix = { @@ -373,6 +377,8 @@ trusted-users = ["root" "daniel"]; experimental-features = lib.mkDefault ["nix-command" "flakes"]; + extra-platforms = ["aarch64-linux"]; + substituters = [ # TODO: dedupe with flake's config? is that even necessary? "https://cache.nixos.org/" diff --git a/nixos/beefcake.nix b/nixos/beefcake.nix index b06763b..6871931 100644 --- a/nixos/beefcake.nix +++ b/nixos/beefcake.nix @@ -1112,26 +1112,27 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00 port = 26969; dir = "/storage/flanilla"; user = "flanilla"; - uid = config.users.users.flanilla.uid; - gid = config.users.groups.flanilla.gid; + # uid = config.users.users.flanilla.uid; + # gid = config.users.groups.flanilla.gid; in { # flanilla family minecraft server users.groups.${user} = {}; users.users.${user} = { isSystemUser = true; createHome = false; + home = dir; group = user; }; virtualisation.oci-containers.containers.minecraft-flanilla = { - autoStart = true; + autoStart = false; image = "docker.io/itzg/minecraft-server"; - user = "${toString uid}:${toString gid}"; + # user = "${toString uid}:${toString gid}"; extraOptions = ["--tty" "--interactive"]; environment = { EULA = "true"; MOTD = "Flanilla Survival! Happy hunting!"; - UID = toString uid; - GID = toString gid; + # UID = toString uid; + # GID = toString gid; STOP_SERVER_ANNOUNCE_DELAY = "20"; TZ = "America/Chicago"; VERSION = "1.21"; @@ -1152,6 +1153,10 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00 "${dir}/worlds:/worlds" ]; }; + systemd.services.podman-minecraft-flanilla.serviceConfig = { + User = user; + Group = user; + }; systemd.tmpfiles.settings = { "10-${user}-survival" = { "${dir}/data" = { @@ -1179,26 +1184,27 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00 port = 26968; dir = "/storage/flanilla-creative"; user = "flanilla"; - uid = config.users.users.flanilla.uid; - gid = config.users.groups.flanilla.gid; + # uid = config.users.users.flanilla.uid; + # gid = config.users.groups.flanilla.gid; in { # flanilla family minecraft server users.groups.${user} = {}; users.users.${user} = { isSystemUser = true; createHome = false; + home = lib.mkForce dir; group = user; }; virtualisation.oci-containers.containers.minecraft-flanilla-creative = { autoStart = true; image = "docker.io/itzg/minecraft-server"; - user = "${toString uid}:${toString gid}"; + # user = "${toString uid}:${toString gid}"; extraOptions = ["--tty" "--interactive"]; environment = { EULA = "true"; MOTD = "Flanilla Creative! Have fun building!"; - UID = toString uid; - GID = toString gid; + # UID = toString uid; + # GID = toString gid; STOP_SERVER_ANNOUNCE_DELAY = "20"; TZ = "America/Chicago"; VERSION = "1.21"; @@ -1219,6 +1225,10 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00 "${dir}/worlds:/worlds" ]; }; + # systemd.services.podman-minecraft-flanilla-creative.serviceConfig = { + # User = user; + # Group = user; + # }; systemd.tmpfiles.settings = { "10-${user}-creative" = { "${dir}/data" = {