Setup minecraft server

This commit is contained in:
Paul-Henri Froidmont 2025-12-09 01:47:51 +01:00
parent 30787dffc9
commit 161e9aa71f
Signed by: phfroidmont
GPG key ID: BE948AFD7E7873BE
4 changed files with 74 additions and 28 deletions

View file

@ -11,6 +11,7 @@
./jellyfin.nix
./stb.nix
./monero.nix
./minecraft-server.nix
./torrents.nix
./jitsi.nix
./binary-cache.nix

View file

@ -0,0 +1,55 @@
{
config,
lib,
pkgs,
pkgs-unstable,
...
}:
let
cfg = config.custom.services.minecraft-server;
in
{
options.custom.services.minecraft-server = {
enable = lib.mkEnableOption "minecraft server";
};
config = lib.mkIf cfg.enable {
services.minecraft-server = {
enable = true;
package = pkgs-unstable.minecraft-server;
eula = true;
openFirewall = true;
declarative = true;
serverProperties = {
enable-rcon = true;
"rcon.port" = 25575;
"rcon.password" = "password";
server-port = 23363;
online-mode = true;
force-gamemode = true;
white-list = true;
diffuculty = "hard";
};
whitelist = {
paulplay15 = "1d5abc95-2fdb-4dcb-98e8-4fb5a0fba953";
Xavier1258 = "e9059cf3-00ef-47a3-92ee-4e4a3fea0e6d";
denisjulien3333 = "3c93e1a2-42d8-4a51-9fe3-924c8e8d5b07";
};
dataDir = "/nix/var/data/minecraft";
};
services.bluemap = {
enable = true;
eula = true;
defaultWorld = "${config.services.minecraft-server.dataDir}/world";
host = "mcmap.${config.networking.domain}";
enableNginx = true;
enableRender = true;
};
services.nginx.virtualHosts."mcmap.${config.networking.domain}" = {
forceSSL = true;
enableACME = true;
};
};
}

View file

@ -1,4 +1,9 @@
{ config, pkgs, ... }:
{
config,
pkgs,
pkgs-unstable,
...
}:
{
imports = [
../environment.nix
@ -230,10 +235,11 @@
roundcube.enable = true;
monero.enable = true;
grafana.enable = true;
monitoring-exporters.enable = true;
immich.enable = true;
forgejo.enable = true;
headscale.enable = true;
immich.enable = true;
minecraft-server.enable = true;
monitoring-exporters.enable = true;
forgejo.enable = true;
backup-job = {
enable = true;
@ -374,30 +380,6 @@
};
};
# services.minecraft-server = {
# enable = false;
# package = pkgs-unstable.minecraft-server;
# eula = true;
# openFirewall = false;
# declarative = true;
# serverProperties = {
# enable-rcon = true;
# "rcon.port" = 25575;
# "rcon.password" = "password";
# server-port = 23363;
# online-mode = true;
# force-gamemode = true;
# white-list = true;
# diffuculty = "hard";
# };
# whitelist = {
# paulplay15 = "1d5abc95-2fdb-4dcb-98e8-4fb5a0fba953";
# Xavier1258 = "e9059cf3-00ef-47a3-92ee-4e4a3fea0e6d";
# denisjulien3333 = "3c93e1a2-42d8-4a51-9fe3-924c8e8d5b07";
# };
# dataDir = "/nix/var/data/minecraft";
# };
# virtualisation.oci-containers.containers = {
# "minecraft" = {
# image = "itzg/minecraft-server";

View file

@ -28,6 +28,14 @@ resource "hetznerdns_record" "banditlair_hcloud_a" {
ttl = 600
}
resource "hetznerdns_record" "banditlair_mcmap_a" {
zone_id = data.hetznerdns_zone.banditlair_zone.id
name = "mcmap"
value = local.hel1_ip
type = "A"
ttl = 600
}
resource "hetznerdns_record" "webmail_a" {
zone_id = data.hetznerdns_zone.banditlair_zone.id
name = "webmail"