Compare commits
No commits in common. "d6db44884cdc5639eb46a88858b7b28e175603f7" and "41a334a6e947fd51ea9460f85ac87c2ab62644a6" have entirely different histories.
d6db44884c
...
41a334a6e9
5 changed files with 18 additions and 104 deletions
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.services.minecraft;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
config = lib.mkIf (cfg.enable && (cfg.servers.velocity.enable || cfg.servers.survival.enable)) {
|
|
||||||
services.mysql = {
|
|
||||||
package = pkgs.mariadb;
|
|
||||||
enable = true;
|
|
||||||
settings.mysqld.port = 3459;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -8,14 +8,13 @@ in
|
||||||
./vanilla-test.nix
|
./vanilla-test.nix
|
||||||
./survival.nix
|
./survival.nix
|
||||||
./velocity.nix
|
./velocity.nix
|
||||||
./database.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
options.services.minecraft = {
|
options.services.minecraft = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
type = with lib.types; uniq bool;
|
type = with lib.types; uniq bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable kBs Minecraft Servers";
|
description = "Enable minecraft server";
|
||||||
};
|
};
|
||||||
servers.vanilla.enable = lib.mkOption {
|
servers.vanilla.enable = lib.mkOption {
|
||||||
type = with lib.types; uniq bool;
|
type = with lib.types; uniq bool;
|
||||||
|
@ -35,9 +34,6 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
|
||||||
"minecraft-server"
|
|
||||||
];
|
|
||||||
services.minecraft-servers = {
|
services.minecraft-servers = {
|
||||||
enable = true;
|
enable = true;
|
||||||
eula = true;
|
eula = true;
|
||||||
|
|
|
@ -11,37 +11,27 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf (cfg.enable && cfg.servers.survival.enable) {
|
config = lib.mkIf (cfg.enable && cfg.servers.survival.enable) {
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
|
"minecraft-server"
|
||||||
|
];
|
||||||
|
|
||||||
services.minecraft-servers.servers."survival" = {
|
services.minecraft-servers.servers."survival" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
enableReload = true;
|
enableReload = true;
|
||||||
package = pkgs.paperServers.paper-1_21_4;
|
package = pkgs.paperServers.paper-1_21_3-build_25;
|
||||||
|
whitelist = {
|
||||||
|
kB01guy = "1ff88b66-beda-4386-85b9-a00a5c27437a";
|
||||||
|
};
|
||||||
serverProperties = {
|
serverProperties = {
|
||||||
online-mode = false;
|
|
||||||
server-ip = "127.0.0.1";
|
|
||||||
server-port = 49333;
|
|
||||||
difficulty = 3;
|
difficulty = 3;
|
||||||
gamemode = 1;
|
gamemode = 1;
|
||||||
max-players = 5;
|
max-players = 5;
|
||||||
};
|
};
|
||||||
openFirewall = false; # Should use Velocity Player Proxy
|
openFirewall = false; # Should use Velocity Player Proxy
|
||||||
|
serverProperties.server-port = 41000;
|
||||||
# Add Plugins
|
|
||||||
symlinks = {
|
symlinks = {
|
||||||
"plugins/LuckPerms.jar" = pkgs.fetchurl {
|
"plugins/LuckPerms.jar" = pkgs.fetchurl { url = "https://download.luckperms.net/1561/bukkit/loader/LuckPerms-Bukkit-5.4.146.jar"; sha512 = "3yx163xas6g30crj41ad8j9gh55ygfh7vbaq12hlm4rxf1npnxh95rhn2nx0qcjd4nl1rz8f8pbvmlh6ka32ahvn6x9rxsc8g6v24jz"; };
|
||||||
url = "https://download.luckperms.net/1567/bukkit/loader/LuckPerms-Bukkit-5.4.150.jar";
|
|
||||||
sha512 = "39cr9nd68afrrvn80kvdgaml37xkj3mzhv50y3app5j1199hg12kls29r49x06p9rxm6dk7i0j8aww2hw4ahm18andb69a5kp97vf94";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Configure Velocity Modern forwarding https://docs.papermc.io/velocity/player-information-forwarding#configuring-modern-forwarding-for-paper
|
|
||||||
files."spigot.yml".value = {
|
|
||||||
settings.bungeecord = false;
|
|
||||||
};
|
|
||||||
files."config/paper-global.yml".value = {
|
|
||||||
proxies.velocity.enabled = true;
|
|
||||||
proxies.velocity.online-mode = "online-mode";
|
|
||||||
forwarding.secret = ""; # TODO: Add Forewarding Secret using Sops
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,72 +11,20 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf (cfg.enable && cfg.servers.velocity.enable) {
|
config = lib.mkIf (cfg.enable && cfg.servers.velocity.enable) {
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
|
"minecraft-server"
|
||||||
|
];
|
||||||
|
|
||||||
# Configure Server
|
|
||||||
services.minecraft-servers.servers."velocity" = {
|
services.minecraft-servers.servers."velocity" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
enableReload = true;
|
enableReload = true;
|
||||||
stopCommand = "end";
|
|
||||||
package = pkgs.velocityServers.velocity;
|
package = pkgs.velocityServers.velocity;
|
||||||
|
openFirewall = true;
|
||||||
symlinks = {
|
symlinks = {
|
||||||
"plugins/LuckPerms.jar" = pkgs.fetchurl {
|
"plugins/LuckPerms.jar" = pkgs.fetchurl { url = "https://download.luckperms.net/1561/velocity/LuckPerms-Velocity-5.4.146.jar"; sha512 = "1xk7fwb5z3bz0x3hpmnyg7cldzrf9anpp4aavq5s69lz2idzxvkjn9b5iv2yy22p17k26lqwfn8n9ivi59srz2hvgdb1jibqg5d5hj5"; };
|
||||||
url = "https://download.luckperms.net/1567/velocity/LuckPerms-Velocity-5.4.150.jar";
|
|
||||||
sha512 = "3dr69g2fbav3if44nmifgz7hn86gdf62hcks92kkvwxf4xa3z7x615j426kgljyhgy84hf75wzpai258mg7dj9x17vpkn634kkzwmw6";
|
|
||||||
};
|
|
||||||
"plugins/Geyser-Velocity.jar" = pkgs.fetchurl {
|
|
||||||
url = "https://download.geysermc.org/v2/projects/geyser/versions/2.6.0/builds/730/downloads/velocity";
|
|
||||||
sha512 = "3shnm8q8vq8j44xxg4qwqwalw6ml9nkzfrzvv8pkblkjp25nfk3h14b4y9vdim1sa2a18mkf8hmhb16g1mka2rh7l0z0yg4kh3lj2i0";
|
|
||||||
};
|
|
||||||
"plugins/floodgate-velocity.jar" = pkgs.fetchurl {
|
|
||||||
url = "https://download.geysermc.org/v2/projects/floodgate/versions/2.2.3/builds/114/downloads/velocity";
|
|
||||||
sha512 = "1k7qban3gar0fxxi5kp5i8d72k6ck65cvsfbg4nh8bz40jwqn35fx9gj3zbb06x5l8sg6qxl7w2nsn3jan4hjq7m5lwf2c1l1mjaw81";
|
|
||||||
};
|
|
||||||
"plugins/LibreLogin.jar" = pkgs.fetchurl {
|
|
||||||
url = "https://modrinth.com/plugin/libre-login/version/0.23.0";
|
|
||||||
sha512 = "1wrnp82vv47hhvjp1lxdndmngndykshi7iindnpg61j0v7i8bdgr9rk5qvanvw95gcj59cnhxdmjynq8fm127n4gv53acdidlxz39sd";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
files = {
|
|
||||||
"velocity.toml".value = {
|
|
||||||
config-version = "2.7"; # NEVER change this!
|
|
||||||
bind = "0.0.0.0:25565";
|
|
||||||
online-mode = false;
|
|
||||||
player-info-forwarding-mode = "modern";
|
|
||||||
enable-player-address-logging = false;
|
|
||||||
servers.lobby = "";
|
|
||||||
servers.survival = "localhost:${toString config.services.minecraft-servers.servers."survival".serverProperties.server-port}";
|
|
||||||
servers.try = [
|
|
||||||
"lobby"
|
|
||||||
"survival"
|
|
||||||
];
|
|
||||||
advanced.tcp-fast-open = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
networking.firewall.allowedTCPPorts = [ 25565 ];
|
|
||||||
|
|
||||||
# Configure Plugin Luckperms
|
|
||||||
services.minecraft-servers.servers."velocity".files."plugins/luckperms/config.yml".value = {
|
|
||||||
storage-method = "mariadb";
|
|
||||||
data.address = "localhost:${toString config.services.mysql.settings.mysqld.port}";
|
|
||||||
data.database = "luckperms";
|
|
||||||
data.username = "luckperms";
|
|
||||||
data.password = "";
|
|
||||||
};
|
|
||||||
services.mysql = {
|
|
||||||
ensureDatabases = [ "luckperms" ];
|
|
||||||
ensureUsers = [
|
|
||||||
{
|
|
||||||
name = "luckperms";
|
|
||||||
ensurePermissions = {
|
|
||||||
"luckperms.*" = "ALL PRIVILEGES";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# services.mysqlBackup.databases = [ "luckperms" ]; # Add Luckperms Database to Backups
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
|
tree
|
||||||
vim
|
vim
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -58,7 +59,6 @@
|
||||||
vim
|
vim
|
||||||
wget
|
wget
|
||||||
git
|
git
|
||||||
tree
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# SSH and Mosh
|
# SSH and Mosh
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
|
|
||||||
# Minecraft Servers
|
# Minecraft Servers
|
||||||
services.minecraft = {
|
services.minecraft = {
|
||||||
enable = true;
|
enable = false;
|
||||||
servers.velocity.enable = true;
|
servers.velocity.enable = true;
|
||||||
servers.survival.enable = true;
|
servers.survival.enable = true;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue