technische-infrastructuur:overzicht

Dit is een oude revisie van het document!


Technische infrastructuur

Deze pagina beschrijft de technische basis waarop het Tulpencraft-netwerk draait.

Waar Serverinfrastructuur โ€” Overzicht beschrijft welke servers binnen Tulpencraft aanwezig zijn en welke functie ze hebben, beschrijft deze sectie hoe de onderliggende systemen technisch zijn opgebouwd en beheerd.


Tulpencraft bestaat uit een centrale netwerklaag met daarachter de verschillende Minecraft-servers.

De huidige infrastructuur is bewust compact opgezet. De Velocity Proxy en de Lobby draaien momenteel op dezelfde node.

                         INTERNET
                             โ”‚
                             โ–ผ
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ”‚     mc-proxy001     โ”‚
                  โ”‚                     โ”‚
                  โ”‚  Rocky Linux 10     โ”‚
                  โ”‚                     โ”‚
                  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
                  โ”‚  โ”‚    Velocity   โ”‚  โ”‚
                  โ”‚  โ”‚     Proxy     โ”‚  โ”‚
                  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
                  โ”‚          โ”‚          โ”‚
                  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
                  โ”‚  โ”‚     Lobby     โ”‚  โ”‚
                  โ”‚  โ”‚     Paper     โ”‚  โ”‚
                  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                โ–ผ            โ–ผ            โ–ผ
           Survival       Events       SkyBlock

De volgende onderdelen draaien momenteel gezamenlijk op:

mc-proxy001
OnderdeelFunctie
Rocky Linux 10Operating System
VelocityMinecraft Proxy
PaperLobby
LobbyPluginLobbyfunctionaliteit
CitizensNPC's
DecentHologramsHologrammen
LuckPermsRechten
TABTablist
WorldEditBeheer
WorldGuardBeveiliging

๐Ÿ’ฐ Waarom Proxy en Lobby op dezelfde node draaien

De huidige combinatie van Proxy en Lobby op mc-proxy001 is een bewuste ontwerpkeuze.

Tulpencraft bevindt zich momenteel in de opbouwfase. Een aparte fysieke of virtuele node voor de Lobby zou op dit moment extra infrastructuur- en beheerkosten veroorzaken, terwijl de belasting van de Lobby relatief beperkt is.

Daarom worden Proxy en Lobby voorlopig gecombineerd op รฉรฉn node.

De voordelen hiervan zijn:

  • lagere infrastructuurkosten;
  • minder nodes om te beheren;
  • eenvoudiger onderhoud;
  • minder netwerkcomplexiteit;
  • efficiรซnter gebruik van beschikbare resources.

De architectuur blijft echter zo ingericht dat de Lobby in de toekomst naar een aparte node kan worden verplaatst.


๐Ÿ”ฎ Toekomstige scheiding

Wanneer Tulpencraft groeit, kan de Lobby worden afgesplitst.

De huidige situatie:

mc-proxy001
โ”œโ”€โ”€ Velocity
โ””โ”€โ”€ Lobby

Een toekomstige situatie kan bijvoorbeeld zijn:

mc-proxy001
โ””โ”€โ”€ Velocity
 
mc-lobby001
โ””โ”€โ”€ Lobby

Daarmee ontstaat:

Internet
   โ”‚
   โ–ผ
mc-proxy001
Velocity
   โ”‚
   โ–ผ
mc-lobby001
Paper Lobby
   โ”‚
   โ”œโ”€โ”€โ–บ Survival
   โ”œโ”€โ”€โ–บ Events
   โ””โ”€โ”€โ–บ SkyBlock

Deze uitbreiding vereist geen fundamentele wijziging aan het netwerkconcept.


๐Ÿ–ฅ๏ธ Servernodes

De huidige infrastructuur bestaat uit een beperkt aantal nodes.

HostnameFunctieOSStatus
mc-proxy001Velocity + LobbyRocky Linux 10๐ŸŸข Actief
Survival-nodeSurvivalRocky Linux 10๐ŸŸก In ontwikkeling
Events-nodeEventsRocky Linux 10๐ŸŸก In ontwikkeling
SkyBlock-nodeSkyBlockRocky Linux 10โšช Toekomstig

Concrete hostnames van toekomstige backendservers worden pas aan de documentatie toegevoegd zodra deze daadwerkelijk zijn ingericht.


๐ŸŒ Netwerkverkeer

De gewenste verbindingsroute voor spelers is:

Speler
  โ”‚
  โ–ผ
Internet
  โ”‚
  โ–ผ
mc-proxy001
Velocity
  โ”‚
  โ–ผ
Lobby
  โ”‚
  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ Survival
  โ”‚
  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ Events
  โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ SkyBlock

De speler heeft uitsluitend een publieke verbinding met de netwerkentree.

Backendservers zijn niet zelfstandig vanaf het internet bereikbaar.


๐Ÿ”€ Velocity Proxy

Velocity vormt de centrale netwerklaag.

De proxy draait momenteel op:

mc-proxy001

Velocity verzorgt onder andere:

  • de eerste verbinding van spelers;
  • doorsturen naar de Lobby;
  • serverselectie;
  • verbindingen met backendservers;
  • moderne forwarding;
  • netwerkbrede communicatie.

Zie:


๐Ÿ  Lobby

De Lobby draait momenteel eveneens op:

mc-proxy001

De Lobby gebruikt:

Paper

en vormt de centrale gebruikersomgeving van Tulpencraft.

De Lobby bevat onder andere:

  • NPC's;
  • hologrammen;
  • servermenu;
  • scoreboard;
  • tablist;
  • spawn;
  • lobby-items;
  • navigatie naar spelservers.

Zie:


๐ŸŽฎ Backendservers

Backendservers bevatten de daadwerkelijke spelwerelden.

Voorbeelden zijn:

  • Survival;
  • Events;
  • toekomstige SkyBlock;
  • toekomstige andere spelmodi.

Deze servers zijn geen zelfstandige publieke Minecraft-servers.

De toegang verloopt via:

Client
  โ†“
Velocity
  โ†“
Lobby
  โ†“
Backendserver

๐Ÿง Operating System

De Tulpencraft-nodes gebruiken als uitgangspunt:

Rocky Linux 10

Rocky Linux vormt de basis voor:

  • Minecraft;
  • Velocity;
  • Java;
  • systemd;
  • netwerkconfiguratie;
  • firewalld;
  • SELinux;
  • logging;
  • beheer.

Zie:


โ˜• Java

De Minecraft-infrastructuur gebruikt:

Java 25

Java wordt op de betreffende Minecraft-nodes geรฏnstalleerd en beheerd.

Zie:


๐Ÿ”ฅ Firewall

De servers gebruiken:

firewalld

Het uitgangspunt is:

Alleen noodzakelijke netwerkverbindingen worden toegestaan.

De publieke Minecraft-poort wordt op de netwerkentree beschikbaar gesteld. Backendservers worden niet rechtstreeks aan het internet blootgesteld.

Zie:


๐Ÿ›ก๏ธ SELinux

SELinux wordt gebruikt als aanvullende beveiligingslaag.

Het uitgangspunt is:

SELinux = Enforcing

SELinux wordt niet uitgeschakeld om applicatieproblemen op te lossen. Problemen worden opgelost door de juiste contexten en policies te configureren.

Zie:


โš™๏ธ systemd

Minecraft-componenten worden als systemd-services beheerd.

De huidige node bevat bijvoorbeeld:

velocity
minecraft-lobby

Hierdoor kunnen services:

  • automatisch starten;
  • gecontroleerd worden gestopt;
  • worden herstart;
  • via journald worden gelogd;
  • centraal worden beheerd.

Voorbeeld:

sudo systemctl status minecraft-lobby

๐Ÿ“‚ Bestandsstructuur

De Minecraft-installaties bevinden zich onder:

/srv/minecraft/

De huidige structuur bevat onder andere:

/srv/minecraft/
โ”œโ”€โ”€ velocity/
โ””โ”€โ”€ lobby/

Wanneer aanvullende servers worden toegevoegd, krijgen deze hun eigen directory.

Bijvoorbeeld:

/srv/minecraft/
โ”œโ”€โ”€ velocity/
โ”œโ”€โ”€ lobby/
โ”œโ”€โ”€ survival/
โ””โ”€โ”€ events/

๐Ÿ“Š Monitoring & logging

Systeem- en servicegegevens worden via systemd/journald beschikbaar gesteld.

Voorbeeld:

sudo journalctl -u minecraft-lobby -f

Voor Velocity:

sudo journalctl -u velocity -f

Fouten kunnen bijvoorbeeld worden gezocht met:

sudo journalctl -u minecraft-lobby --since "10 minutes ago" --no-pager | \
grep -Ei 'error|exception|warn'

Zie:


๐Ÿ’พ Storage

Minecraft-data wordt lokaal op de betreffende node opgeslagen.

Belangrijke data bestaat onder andere uit:

  • werelden;
  • plugins;
  • configuraties;
  • logs;
  • serverdata;
  • gebruikersdata.

Storagegebruik moet worden gemonitord omdat Minecraft-werelden en logs in de loop van de tijd kunnen groeien.

Zie:


๐Ÿ’พ Backups

Backups moeten in ieder geval de kritieke Minecraft-data beschermen.

Belangrijke backupdoelen zijn:

  • Minecraft-werelden;
  • configuraties;
  • pluginconfiguraties;
  • belangrijke scripts;
  • serverdata.

GitHub kan worden gebruikt voor broncode, configuraties en scripts, maar is geen vervanging voor backups van Minecraft-werelden.

Zie:


๐Ÿ” Security-uitgangspunten

De Tulpencraft-infrastructuur volgt een aantal basisprincipes:

  1. Backendservers zijn niet publiek bereikbaar.
  2. Alleen noodzakelijke firewallpoorten worden geopend.
  3. SELinux blijft ingeschakeld.
  4. SSH wordt beveiligd.
  5. Minecraft-services draaien niet onnodig met rootrechten.
  6. Geheimen worden niet opgeslagen in Git of de wiki.
  7. Configuraties worden zoveel mogelijk reproduceerbaar beheerd.
  8. Wijzigingen worden gedocumenteerd.
  9. Plugins worden bewust geselecteerd.
  10. De Velocity Proxy vormt het centrale toegangspunt van het netwerk.

๐Ÿ”„ Reproduceerbaarheid

De infrastructuur wordt ingericht met reproduceerbaarheid als uitgangspunt.

Een nieuwe node moet zoveel mogelijk opnieuw kunnen worden opgebouwd aan de hand van:

  • OS-installatiedocumentatie;
  • hardeningdocumentatie;
  • installatiecommando's;
  • configuratiebestanden;
  • systemd-units;
  • scripts;
  • GitHub-repositories.

De wiki beschrijft voornamelijk de architectuur, keuzes en procedures.

GitHub bevat waar mogelijk de daadwerkelijke configuratiebestanden en scripts.


๐Ÿ“š Gerelateerde documentatie


Laatste update: augustus 2026

De huidige infrastructuur is bewust compact opgezet. De combinatie van Velocity en de Lobby op mc-proxy001 is een kosten- en efficiรซntiekeuze en kan in de toekomst worden gescheiden wanneer schaal, belasting of beschikbaarheid daar aanleiding toe geeft.

  • technische-infrastructuur/overzicht.1787465778.txt.gz
  • Laatst gewijzigd: 2026/08/23 08:16
  • door rroethof