mirror of
https://codeberg.org/polyteknisk-radiogruppe/the_prg_server_configuration.git
synced 2026-06-13 18:28:55 +02:00
Refactor ATM10 Minecraft server configuration by making it systemd instead, because of script bakedness.
This commit is contained in:
parent
17be3bdb66
commit
244a3f9826
1 changed files with 28 additions and 146 deletions
|
|
@ -7,10 +7,6 @@
|
||||||
choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths);
|
choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths);
|
||||||
# Domain and Cloudflare DDNS records configured here. Update this list to add/remove records.
|
# Domain and Cloudflare DDNS records configured here. Update this list to add/remove records.
|
||||||
domain = "prg-radio.org";
|
domain = "prg-radio.org";
|
||||||
# Try to use the nix-minecraft helper if the overlay is present; otherwise
|
|
||||||
# fall back to a local path. If you use the fallback, ensure the path is an
|
|
||||||
# unpacked modpack directory with `mods` and `config` subdirectories.
|
|
||||||
modpack = /srv/minecraft/modpacks/atm10;
|
|
||||||
in {
|
in {
|
||||||
options.local = {
|
options.local = {
|
||||||
hostname = lib.mkOption {
|
hostname = lib.mkOption {
|
||||||
|
|
@ -70,130 +66,6 @@ in {
|
||||||
eula = true;
|
eula = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
|
||||||
servers.all-the-mods-tss = {
|
|
||||||
enable = true;
|
|
||||||
autoStart = true;
|
|
||||||
restart = "always";
|
|
||||||
|
|
||||||
package = pkgs.neoforgeServers.neoforge-1_21_1-21_1_224;
|
|
||||||
|
|
||||||
jvmOpts = lib.concatStringsSep " " [
|
|
||||||
"-Xms4G"
|
|
||||||
"-Xmx45G"
|
|
||||||
"-XX:+UseG1GC"
|
|
||||||
"-XX:+ParallelRefProcEnabled"
|
|
||||||
"-XX:MaxGCPauseMillis=200"
|
|
||||||
"-XX:+UnlockExperimentalVMOptions"
|
|
||||||
"-XX:+DisableExplicitGC"
|
|
||||||
"-XX:+AlwaysPreTouch"
|
|
||||||
"-XX:G1NewSizePercent=30"
|
|
||||||
"-XX:G1MaxNewSizePercent=40"
|
|
||||||
"-XX:G1HeapRegionSize=8M"
|
|
||||||
"-XX:G1ReservePercent=20"
|
|
||||||
"-XX:G1HeapWastePercent=5"
|
|
||||||
"-XX:G1MixedGCCountTarget=4"
|
|
||||||
"-XX:InitiatingHeapOccupancyPercent=15"
|
|
||||||
"-XX:G1MixedGCLiveThresholdPercent=90"
|
|
||||||
"-XX:G1RSetUpdatingPauseTimePercent=5"
|
|
||||||
"-XX:SurvivorRatio=32"
|
|
||||||
"-XX:+PerfDisableSharedMem"
|
|
||||||
"-XX:MaxTenuringThreshold=1"
|
|
||||||
];
|
|
||||||
|
|
||||||
serverProperties = {
|
|
||||||
server-port = 25566;
|
|
||||||
motd = "The Sub Server All the Mods 10";
|
|
||||||
difficulty = "hard";
|
|
||||||
gamemode = "survival";
|
|
||||||
max-players = 64;
|
|
||||||
online-mode = true;
|
|
||||||
white-list = false;
|
|
||||||
spawn-protection = 0;
|
|
||||||
view-distance = 9;
|
|
||||||
simulation-distance = 3;
|
|
||||||
enforce-secure-profile = false;
|
|
||||||
enable-command-block = false;
|
|
||||||
enable-rcon = false;
|
|
||||||
require-resource-pack = false;
|
|
||||||
level-type = "minecraft:amplified";
|
|
||||||
level-seed = "-2032795982907864146";
|
|
||||||
|
|
||||||
# Added properties (do not overwrite existing ones above)
|
|
||||||
accepts-transfers = false;
|
|
||||||
allow-flight = true;
|
|
||||||
allow-nether = true;
|
|
||||||
broadcast-console-to-ops = true;
|
|
||||||
broadcast-rcon-to-ops = true;
|
|
||||||
bug-report-link = "";
|
|
||||||
enable-jmx-monitoring = false;
|
|
||||||
enable-query = false;
|
|
||||||
enable-status = true;
|
|
||||||
enforce-whitelist = false;
|
|
||||||
entity-broadcast-range-percentage = 100;
|
|
||||||
force-gamemode = false;
|
|
||||||
function-permission-level = 2;
|
|
||||||
generate-structures = true;
|
|
||||||
hardcore = false;
|
|
||||||
hide-online-players = false;
|
|
||||||
initial-disabled-packs = "";
|
|
||||||
initial-enabled-packs = "vanilla";
|
|
||||||
level-name = "world";
|
|
||||||
log-ips = true;
|
|
||||||
max-chained-neighbor-updates = 1000000;
|
|
||||||
max-tick-time = 180000;
|
|
||||||
max-world-size = 29999984;
|
|
||||||
network-compression-threshold = 256;
|
|
||||||
op-permission-level = 4;
|
|
||||||
player-idle-timeout = 0;
|
|
||||||
prevent-proxy-connections = false;
|
|
||||||
pvp = true;
|
|
||||||
# dotted keys must be quoted
|
|
||||||
"query.port" = 25566;
|
|
||||||
rate-limit = 0;
|
|
||||||
"rcon.password" = "";
|
|
||||||
"rcon.port" = 25575;
|
|
||||||
region-file-compression = "deflate";
|
|
||||||
resource-pack = "";
|
|
||||||
resource-pack-id = "";
|
|
||||||
resource-pack-prompt = "";
|
|
||||||
resource-pack-sha1 = "";
|
|
||||||
server-ip = "";
|
|
||||||
spawn-animals = true;
|
|
||||||
spawn-monsters = true;
|
|
||||||
spawn-npcs = true;
|
|
||||||
sync-chunk-writes = true;
|
|
||||||
text-filtering-config = "";
|
|
||||||
use-native-transport = true;
|
|
||||||
# white-list, view-distance, simulation-distance, spawn-protection, etc.
|
|
||||||
# were kept above to avoid overwriting existing values.
|
|
||||||
};
|
|
||||||
|
|
||||||
# Grant operator privileges to the user with the given UUID.
|
|
||||||
# Update `name` to the player's Minecraft username if you know it.
|
|
||||||
operators = {
|
|
||||||
username1 = {
|
|
||||||
uuid = "5e52c4ba-9b1a-469b-8f68-b9d684eae31d";
|
|
||||||
level = 4; # 4 = highest permission (operator)
|
|
||||||
bypassesPlayerLimit = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
symlinks = {
|
|
||||||
"mods" = "${modpack}/mods";
|
|
||||||
"datapacks" = "${modpack}/datapacks";
|
|
||||||
"user_jvm_args.txt" = "${modpack}/user_jvm_args.txt";
|
|
||||||
};
|
|
||||||
files = {
|
|
||||||
"config" = "${modpack}/config";
|
|
||||||
"patchouli_books" = "${modpack}/patchouli_books";
|
|
||||||
"defaultconfigs" = "${modpack}/defaultconfigs";
|
|
||||||
"kubejs" = "${modpack}/kubejs";
|
|
||||||
"local" = "${modpack}/local";
|
|
||||||
".mixin.out" = "${modpack}/.mixin.out";
|
|
||||||
"dynamic-data-pack-cache" = "${modpack}/dynamic-data-pack-cache";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
servers.fabric-modded = {
|
servers.fabric-modded = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|
@ -509,24 +381,6 @@ in {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
# Ensure the other server unit also uses OpenJDK 21
|
|
||||||
systemd.services."minecraft-server-all-the-mods-tss".environment = {
|
|
||||||
JAVA_HOME = lib.mkForce "${pkgs.openjdk21}";
|
|
||||||
PATH = lib.mkForce (
|
|
||||||
lib.makeBinPath [
|
|
||||||
pkgs.openjdk21
|
|
||||||
pkgs.git
|
|
||||||
pkgs.git-lfs
|
|
||||||
pkgs.coreutils
|
|
||||||
pkgs.findutils
|
|
||||||
pkgs.gnugrep
|
|
||||||
pkgs.gnused
|
|
||||||
pkgs.systemd
|
|
||||||
]
|
|
||||||
+ ":/run/current-system/sw/bin"
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
# The nix-minecraft module creates the `minecraft` user/group automatically.
|
# The nix-minecraft module creates the `minecraft` user/group automatically.
|
||||||
users.users.minecraftprg.extraGroups = ["minecraft"];
|
users.users.minecraftprg.extraGroups = ["minecraft"];
|
||||||
|
|
||||||
|
|
@ -534,8 +388,36 @@ in {
|
||||||
postgresql_jdbc
|
postgresql_jdbc
|
||||||
git
|
git
|
||||||
git-lfs
|
git-lfs
|
||||||
|
openjdk21
|
||||||
];
|
];
|
||||||
|
|
||||||
|
systemd.services.minecraft-atm10 = {
|
||||||
|
description = "All the Mods 10 Minecraft Server";
|
||||||
|
after = ["network.target"];
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
User = "minecraft";
|
||||||
|
Group = "minecraft";
|
||||||
|
WorkingDirectory = "/srv/minecraft/atm10tss";
|
||||||
|
ExecStart = "/srv/minecraft/atm10tss/run.sh";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "10s";
|
||||||
|
StandardOutput = "journal";
|
||||||
|
StandardError = "journal";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Optionally, ensure the user exists:
|
||||||
|
users.users.minecraft = {
|
||||||
|
isSystemUser = true;
|
||||||
|
home = "/srv/minecraft";
|
||||||
|
group = "minecraft";
|
||||||
|
};
|
||||||
|
|
||||||
|
users.groups.minecraft = {};
|
||||||
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue