Projekt

Allgemein

Profil

Aktionen

Aufgabe #2025

offen

Test von Minecraft Server auf einer Desktopkiste

Von MathisBluemel vor etwa 2 Monaten hinzugefügt. Vor 4 Tagen aktualisiert.

Status:
In Bearbeitung
Priorität:
Normal
Zugewiesen an:
Kategorie:
Testen einer Anwendung
Beginn:
29.10.2024
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Referat Kultur Bereich Gaming wollte einen Minecraft Server haben. Da haben sich mir einige Fragen gestellt.
1. Ist die Hardware der uns zur Verfügbaren Hardware genug für mehr als 20 Leute.

Weitere Fragen die eher für Verwaltung sind:
- Dürfen wir einen Spiel Server im DFN hosten?
- Wie gestalten wir die Zugangskontrolle? Griefer sind überall und manche Studenten haben eher Spaß am zerstören...

Aktionen #1

Von MathisBluemel vor 4 Tagen aktualisiert · Edited

  • Status wurde von Neu zu In Bearbeitung geändert

Es wurde eine Instanz für den Betrieb des Dienstes Minecraft eingerichtet. Diese ist CT120 auf dem Test PVE. IP: 141.56.51.70 Wichtig ist, dass der Port 25565 (Spiel) und 25566 (Minecraft Shell (RCON)) erreichbar ist, da diese für Minecraft verwendet werden. Alle für Minecraft relevanten Daten liegen in /var/lib/mc (interner Server) und /var/lib/mc-event (Eventserver). Die Nix Config lautet:


{ config, pkgs, ... }:
{
  imports = [ 
    <nixpkgs/nixos/modules/virtualisation/proxmox-lxc.nix>
  ];

  proxmoxLXC.manageHostName = true;

  system = {
    stateVersion = "24.11";
    autoUpgrade = {
      enable = true;
      allowReboot = true;
    };
  };
  nix = {
    settings.auto-optimise-store = true;
    optimise.automatic = true;
    gc = {
      automatic = true;
      options = "--delete-older-than 5d";
    };
  };

  time.timeZone = "Europe/Berlin";

  services.openssh.enable = false;

  networking = {
    useDHCP = false;
    enableIPv6 = false;
    firewall.allowedTCPPorts = [ 25565 25566];
  };

#Erstelle einen user ohne Previlegien um den server zu betreiben
  users.users.mc={
    isSystemUser=true;
    group = "mc";
  };      
  users.groups.mc = {};

#Systemd Service um den Server zu starten
  systemd.services.mcserver = {
    enable = true;
    description = "Minecraft Server";
    after = [ "network.target"];
    serviceConfig = {
      User="mc";
      Nice=1;
      SuccessExitStatus=0;
      WorkingDirectory="/var/lib/mc";
      ExecStart="${pkgs.jdk21_headless.outPath}/bin/java -Xms1G -Xmx7G -jar paper.jar nogui";
      Restart="on-failure";
    };
    wantedBy = [ "multi-user.target" ];
  };
}

Bei einem Event wird der interne Server heruntergefahren und in der Nix Config die WorkingDirectory des Systemd Services auf den Ordner des Eventservers geändert. Nach dem Event werden die Änderungen wieder rückgängig gemacht.

Aktionen

Auch abrufbar als: Atom PDF