mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-12-14 02:20:53 -06:00
feat: fixed minecraft worlds
This commit is contained in:
parent
2b1a44d591
commit
4dca730684
6 changed files with 144 additions and 115 deletions
|
|
@ -26,7 +26,7 @@ in
|
|||
macUser = "02:00:00:00:00:41";
|
||||
ip = "192.168.50.141";
|
||||
gate = "192.168.50.1";
|
||||
ssh = 2401;
|
||||
ssh = 2410;
|
||||
port = 43000;
|
||||
};
|
||||
paths = {
|
||||
|
|
@ -53,7 +53,7 @@ in
|
|||
macUser = "02:00:00:00:00:42";
|
||||
ip = "192.168.50.142";
|
||||
gate = "192.168.50.1";
|
||||
ssh = 2402;
|
||||
ssh = 2411;
|
||||
port = 43001;
|
||||
};
|
||||
paths = {
|
||||
|
|
|
|||
|
|
@ -4,9 +4,8 @@
|
|||
}:
|
||||
let
|
||||
inherit (flake.config.people) user0;
|
||||
serviceCfg = {
|
||||
name = "minecraft";
|
||||
};
|
||||
inherit (flake.config.services) instances;
|
||||
serviceCfg = instances.minecraft;
|
||||
in
|
||||
{
|
||||
minecraftVM =
|
||||
|
|
@ -38,7 +37,7 @@ in
|
|||
openFirewall = true;
|
||||
declarative = true;
|
||||
serverProperties = {
|
||||
"rcon.password" = "/etc/${serviceCfg.name}-secrets/${user}-world${worldNumber}";
|
||||
"rcon.password" = "/etc/${serviceCfg.name}-secrets/world${worldNumber}";
|
||||
server-port = port;
|
||||
}
|
||||
// config;
|
||||
|
|
@ -69,7 +68,7 @@ in
|
|||
};
|
||||
script = ''
|
||||
mkdir -p /etc/${serviceCfg.name}-secrets
|
||||
cp /run/secrets/${user}-world${worldNumber} /etc/${serviceCfg.name}-secrets/${user}-world${worldNumber}
|
||||
cp /run/secrets/world${worldNumber} /etc/${serviceCfg.name}-secrets/world${worldNumber}
|
||||
chmod 755 /etc/${serviceCfg.name}-secrets
|
||||
chmod 644 /etc/${serviceCfg.name}-secrets/*
|
||||
'';
|
||||
|
|
@ -97,6 +96,7 @@ in
|
|||
};
|
||||
tmpfiles.rules = [
|
||||
"d /var/lib/${serviceCfg.name} 0755 ${serviceCfg.name} ${serviceCfg.name} -"
|
||||
"Z /var/lib/${serviceCfg.name} 0755 ${serviceCfg.name} ${serviceCfg.name} -"
|
||||
];
|
||||
};
|
||||
microvm = {
|
||||
|
|
@ -106,7 +106,7 @@ in
|
|||
interfaces = [
|
||||
{
|
||||
type = "tap";
|
||||
id = "vm-mc${worldNumber}-${user}";
|
||||
id = "vm-mc-${worldNumber}";
|
||||
mac = mac;
|
||||
}
|
||||
{
|
||||
|
|
@ -133,7 +133,7 @@ in
|
|||
mountPoint = "/var/lib/${serviceCfg.name}";
|
||||
proto = "virtiofs";
|
||||
source = "${mnt}/${serviceCfg.name}/world${worldNumber}";
|
||||
tag = "${serviceCfg.name}_${user}_data";
|
||||
tag = "${serviceCfg.name}_mc${worldNumber}_data";
|
||||
}
|
||||
{
|
||||
mountPoint = "/run/secrets";
|
||||
|
|
@ -150,10 +150,12 @@ in
|
|||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${mnt}/${serviceCfg.name} 0751 microvm wheel - -"
|
||||
"d ${mnt}/${serviceCfg.name}/world${worldNumber} 0751 microvm wheel - -"
|
||||
"Z ${mnt}/${serviceCfg.name}/world${worldNumber} 0755 microvm wheel - -"
|
||||
];
|
||||
|
||||
sops.secrets = {
|
||||
"${serviceCfg.name}/${user}-world${worldNumber}" = {
|
||||
"${serviceCfg.name}/world${worldNumber}" = {
|
||||
owner = "root";
|
||||
mode = "0600";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,105 +1,11 @@
|
|||
{
|
||||
flake,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (import ../../../helpers.nix { inherit flake; }) labHelpers;
|
||||
inherit (labHelpers) mntPath;
|
||||
inherit (import ../config { inherit flake pkgs; }) minecraftVM;
|
||||
inherit (flake.config.services) instances;
|
||||
inherit (flake.config.people) user0;
|
||||
|
||||
minecraftNick01 =
|
||||
importList =
|
||||
let
|
||||
interfaceCfg = instances.minecraft.interfaces.interface0;
|
||||
content = builtins.readDir ./.;
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
in
|
||||
minecraftVM {
|
||||
user = user0;
|
||||
ip = interfaceCfg.microvm.ip;
|
||||
mac = interfaceCfg.microvm.mac;
|
||||
userMac = interfaceCfg.microvm.macUser;
|
||||
ssh = interfaceCfg.microvm.ssh;
|
||||
port = interfaceCfg.microvm.port;
|
||||
mnt = mntPath;
|
||||
worldNumber = "01";
|
||||
config = {
|
||||
allow-flight = false;
|
||||
allow-nether = true;
|
||||
difficulty = 2;
|
||||
enable-command-block = false;
|
||||
enable-rcon = true;
|
||||
enable-status = true;
|
||||
force-gamemode = true;
|
||||
gamemode = 0;
|
||||
generate-structures = true;
|
||||
hardcore = false;
|
||||
hide-online-players = false;
|
||||
level-name = "Brix on Nix";
|
||||
level-seed = "9064150133272194";
|
||||
max-players = 10;
|
||||
max-world-size = 64000000;
|
||||
motd = "A cool Minecraft server powered by NixOS";
|
||||
online-mode = true;
|
||||
pvp = true;
|
||||
spawn-animals = true;
|
||||
spawn-monsters = true;
|
||||
spawn-npcs = true;
|
||||
spawn-protection = 16;
|
||||
view-distance = 32;
|
||||
white-list = true;
|
||||
};
|
||||
whitelist = {
|
||||
Hefty_Chungus = "b75a9816-d408-4c54-b226-385b59ea1cb3";
|
||||
Hefty_Chungus_Jr = "c3bf8cac-e953-4ea4-ae5f-7acb92a51a85";
|
||||
EclipseMoon01 = "adef4af7-d8c6-4627-b492-e990ea1bb993";
|
||||
Fallaryn = "d8baa117-ab58-4b07-92a5-48fb1978eb49";
|
||||
};
|
||||
};
|
||||
|
||||
minecraftNick02 =
|
||||
let
|
||||
interfaceCfg = instances.minecraft.interfaces.interface1;
|
||||
in
|
||||
minecraftVM {
|
||||
user = user0;
|
||||
ip = interfaceCfg.microvm.ip;
|
||||
mac = interfaceCfg.microvm.mac;
|
||||
userMac = interfaceCfg.microvm.macUser;
|
||||
ssh = interfaceCfg.microvm.ssh;
|
||||
port = interfaceCfg.microvm.port;
|
||||
mnt = mntPath;
|
||||
worldNumber = "02";
|
||||
config = {
|
||||
allow-flight = false;
|
||||
allow-nether = true;
|
||||
difficulty = 2;
|
||||
enable-command-block = false;
|
||||
enable-rcon = true;
|
||||
enable-status = true;
|
||||
force-gamemode = true;
|
||||
gamemode = 0;
|
||||
generate-structures = true;
|
||||
hardcore = false;
|
||||
hide-online-players = false;
|
||||
level-name = "Cuddle Cubes";
|
||||
level-seed = "-2332803749585407299";
|
||||
max-players = 10;
|
||||
max-world-size = 64000000;
|
||||
motd = "A cool Minecraft server powered by NixOS";
|
||||
online-mode = true;
|
||||
pvp = true;
|
||||
spawn-animals = true;
|
||||
spawn-monsters = true;
|
||||
spawn-npcs = true;
|
||||
spawn-protection = 16;
|
||||
view-distance = 32;
|
||||
white-list = true;
|
||||
};
|
||||
whitelist = {
|
||||
Hefty_Chungus = "b75a9816-d408-4c54-b226-385b59ea1cb3";
|
||||
Fallaryn = "d8baa117-ab58-4b07-92a5-48fb1978eb49";
|
||||
};
|
||||
};
|
||||
map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
minecraftNick01 // minecraftNick02
|
||||
{
|
||||
imports = importList;
|
||||
}
|
||||
|
|
|
|||
62
modules/nixos/homelab/guests/minecraft/minecraftCeres/world01/default.nix
Executable file
62
modules/nixos/homelab/guests/minecraft/minecraftCeres/world01/default.nix
Executable file
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
flake,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (import ../../../../helpers.nix { inherit flake; }) labHelpers;
|
||||
inherit (labHelpers) mntPath;
|
||||
inherit (import ../../config { inherit flake pkgs; }) minecraftVM;
|
||||
inherit (flake.config.services) instances;
|
||||
inherit (flake.config.people) user0;
|
||||
|
||||
minecraftNick01 =
|
||||
let
|
||||
interfaceCfg = instances.minecraft.interfaces.interface0;
|
||||
in
|
||||
minecraftVM {
|
||||
user = user0;
|
||||
ip = interfaceCfg.microvm.ip;
|
||||
mac = interfaceCfg.microvm.mac;
|
||||
userMac = interfaceCfg.microvm.macUser;
|
||||
ssh = interfaceCfg.microvm.ssh;
|
||||
port = interfaceCfg.microvm.port;
|
||||
mnt = mntPath;
|
||||
worldNumber = "01";
|
||||
config = {
|
||||
allow-flight = false;
|
||||
allow-nether = true;
|
||||
difficulty = 2;
|
||||
enable-command-block = false;
|
||||
enable-rcon = true;
|
||||
enable-status = true;
|
||||
force-gamemode = true;
|
||||
gamemode = 0;
|
||||
generate-structures = true;
|
||||
hardcore = false;
|
||||
hide-online-players = false;
|
||||
level-name = "Brix on Nix";
|
||||
level-seed = "9064150133272194";
|
||||
max-players = 10;
|
||||
max-world-size = 64000000;
|
||||
motd = "A cool Minecraft server powered by NixOS";
|
||||
online-mode = true;
|
||||
pvp = true;
|
||||
spawn-animals = true;
|
||||
spawn-monsters = true;
|
||||
spawn-npcs = true;
|
||||
spawn-protection = 16;
|
||||
view-distance = 32;
|
||||
white-list = true;
|
||||
};
|
||||
whitelist = {
|
||||
Hefty_Chungus = "b75a9816-d408-4c54-b226-385b59ea1cb3";
|
||||
Hefty_Chungus_Jr = "c3bf8cac-e953-4ea4-ae5f-7acb92a51a85";
|
||||
EclipseMoon01 = "adef4af7-d8c6-4627-b492-e990ea1bb993";
|
||||
Fallaryn = "d8baa117-ab58-4b07-92a5-48fb1978eb49";
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
minecraftNick01
|
||||
59
modules/nixos/homelab/guests/minecraft/minecraftCeres/world02/default.nix
Executable file
59
modules/nixos/homelab/guests/minecraft/minecraftCeres/world02/default.nix
Executable file
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
flake,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (import ../../../../helpers.nix { inherit flake; }) labHelpers;
|
||||
inherit (labHelpers) mntPath;
|
||||
inherit (import ../../config { inherit flake pkgs; }) minecraftVM;
|
||||
inherit (flake.config.services) instances;
|
||||
inherit (flake.config.people) user0;
|
||||
|
||||
minecraftNick02 =
|
||||
let
|
||||
interfaceCfg = instances.minecraft.interfaces.interface1;
|
||||
in
|
||||
minecraftVM {
|
||||
user = user0;
|
||||
ip = interfaceCfg.microvm.ip;
|
||||
mac = interfaceCfg.microvm.mac;
|
||||
userMac = interfaceCfg.microvm.macUser;
|
||||
ssh = interfaceCfg.microvm.ssh;
|
||||
port = interfaceCfg.microvm.port;
|
||||
mnt = mntPath;
|
||||
worldNumber = "02";
|
||||
config = {
|
||||
allow-flight = false;
|
||||
allow-nether = true;
|
||||
difficulty = 2;
|
||||
enable-command-block = false;
|
||||
enable-rcon = true;
|
||||
enable-status = true;
|
||||
force-gamemode = true;
|
||||
gamemode = 0;
|
||||
generate-structures = true;
|
||||
hardcore = false;
|
||||
hide-online-players = false;
|
||||
level-name = "Cuddle Cubes";
|
||||
level-seed = "-2332803749585407299";
|
||||
max-players = 10;
|
||||
max-world-size = 64000000;
|
||||
motd = "A cool Minecraft server powered by NixOS";
|
||||
online-mode = true;
|
||||
pvp = true;
|
||||
spawn-animals = true;
|
||||
spawn-monsters = true;
|
||||
spawn-npcs = true;
|
||||
spawn-protection = 16;
|
||||
view-distance = 32;
|
||||
white-list = true;
|
||||
};
|
||||
whitelist = {
|
||||
Hefty_Chungus = "b75a9816-d408-4c54-b226-385b59ea1cb3";
|
||||
Fallaryn = "d8baa117-ab58-4b07-92a5-48fb1978eb49";
|
||||
};
|
||||
};
|
||||
in
|
||||
minecraftNick02
|
||||
|
|
@ -24,8 +24,8 @@ forgejo:
|
|||
zookeeper:
|
||||
boon-env: ENC[AES256_GCM,data:3aOlOkYHxpao4/+Ubud4LfyZ3yQonN0FtHEYvQHEPNjTcqJiltuXrRr0ZaJ7RwY+A/IunuZVhrjngCBRj+TWBZZ2i+uaf0BEuA==,iv:53H5+rcRIui2d71K3QTj5LYg/ae4TGOFe96t2zxQh2o=,tag:vR3IOm2XFmODLQZDTlY1zw==,type:str]
|
||||
minecraft:
|
||||
nick-world01: ENC[AES256_GCM,data:skiM+L/uEEnst0pCDzB5XaHnLpWrLQBXuQ==,iv:CnlXwpB4paDQSaC2W9uQRTc2rgqCo6QTGC4SsYAMw6Y=,tag:D2r2X6flowP7tjuX74KzRg==,type:str]
|
||||
nick-world02: ENC[AES256_GCM,data:tEh+uThkn8VczSjviU58/vBUmyKBfiA7tnYiBsIlgjSb,iv:yfQvffZ3AlT4lpfEkBT5gVacogaQoIZSim+gpoD7LkU=,tag:E7matzOY08rapIxaW9lOdg==,type:str]
|
||||
world01: ENC[AES256_GCM,data:duQDeBUaPup97c/hKMhjP2kj8EJRPNGQfTyUHoeNJ6sQ,iv:sBKY7y5TCrYjikWJfOZREMDmVWNCPqe4x5urpdP5UvA=,tag:ZzT5o5DnLjBSiCB8VHHCbg==,type:str]
|
||||
world02: ENC[AES256_GCM,data:3t3TDnUD6wpAJonMZ16umnHY67srbEpLAvNaIW29reE7,iv:1SnL/e+NO+mSxQbtRjjTS81Mpcr4+psiw+2hKoXxeVE=,tag:NlnqySPD3CAUI2rFAo1mbA==,type:str]
|
||||
vaultwarden:
|
||||
nick-env: ENC[AES256_GCM,data:lG7pqpLJ7OsFZhWCJcPnvDxkR4Ob78buazUeLWlRSAPYEv8KarymYduecJNWCZUjUlysoU5YrHaat8tny+Vl2rYdef8oPfqlf7fITofsdmjHhAGUBJEEVQWLyEXqrEebEyeNKZwI+u8=,iv:SNptt0CPcSCTs6AAWLcC+U0/94oQapqmT1K8ZN/bIfM=,tag:2/1A+DwuWOIr0eoJmZTnwA==,type:str]
|
||||
project-env: ENC[AES256_GCM,data:WPn7jfCTsG67AIz4wawJeThK4kzMRaq6aPQ2W1Pcc2afNXtCWe0f9JuzH9ld6zgiO2wDu1SHQBT2Aagdt4vop/mBDq15YnpzEL30afiRtFjKJPu5BxMU9mEjerE=,iv:vVVmN6Tx1tNUODdb+6lz2L1cnLHwUwsETb3WMCKb2rY=,tag:twOhJmx/B+k4Zqb566KKCw==,type:str]
|
||||
|
|
@ -89,7 +89,7 @@ sops:
|
|||
bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD
|
||||
aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-12-11T06:23:26Z"
|
||||
mac: ENC[AES256_GCM,data:VrgQfX3d83bU2pF5XCj/el8wKa/9rYTWEDy2ALFOc6dmMpV9zFNlnld4lJAyms9MfkXXxG2oLv5flT8NN+JAy0Wr8tEFyS2hUOJ8Q/l1GEwuf8pqdafzKuG4VaeViBC7oIcPM3kiQHEHiNg3GUKynEUl9/eiKzU7Y20qLvUQDcc=,iv:phTXlKjFryRwUnZARtsdoTrK5bfmI3NC7qPvFXezfpc=,tag:3I3/QvdREv+1ZLOhMOJV1A==,type:str]
|
||||
lastmodified: "2025-12-11T06:59:23Z"
|
||||
mac: ENC[AES256_GCM,data:xGDaLeNV+YTJmX/v8WgRDPn683a8gfxSmE/Le+c9AB8VQfq+mKbqjz4DdtQ9TSdNz65BIjV1GCQJ1jsSxfqmJJaQJkVCgWCI+sKby/Qkpbjn+3xhMxWCbgI5kxasDGYHOXlcz5L4IXUg1pRIHQwuZjlA4q7H7fKUHim6UnUZzQ8=,iv:zywKqa6OWVb4TFhMAoHNasbkJdb9fLttGXCwGS+NzOE=,tag:7Vs8K3XeiFM6lNOTUDY67g==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.11.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue