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.
๐๏ธ Architectuur
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
Huidige situatie
De volgende onderdelen draaien momenteel gezamenlijk op:
mc-proxy001
| Onderdeel | Functie |
|---|---|
| Rocky Linux 10 | Operating System |
| Velocity | Minecraft Proxy |
| Paper | Lobby |
| LobbyPlugin | Lobbyfunctionaliteit |
| Citizens | NPC's |
| DecentHolograms | Hologrammen |
| LuckPerms | Rechten |
| TAB | Tablist |
| WorldEdit | Beheer |
| WorldGuard | Beveiliging |
๐ฐ 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.
| Hostname | Functie | OS | Status |
|---|---|---|---|
mc-proxy001 | Velocity + Lobby | Rocky Linux 10 | ๐ข Actief |
| Survival-node | Survival | Rocky Linux 10 | ๐ก In ontwikkeling |
| Events-node | Events | Rocky Linux 10 | ๐ก In ontwikkeling |
| SkyBlock-node | SkyBlock | Rocky 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:
- Backendservers zijn niet publiek bereikbaar.
- Alleen noodzakelijke firewallpoorten worden geopend.
- SELinux blijft ingeschakeld.
- SSH wordt beveiligd.
- Minecraft-services draaien niet onnodig met rootrechten.
- Geheimen worden niet opgeslagen in Git of de wiki.
- Configuraties worden zoveel mogelijk reproduceerbaar beheerd.
- Wijzigingen worden gedocumenteerd.
- Plugins worden bewust geselecteerd.
- 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
Serverinfrastructuur
Technische infrastructuur
Laatste update: augustus 2026
De huidige infrastructuur is bewust compact opgezet. De combinatie van Velocity en de Lobby op
mc-proxy001is een kosten- en efficiรซntiekeuze en kan in de toekomst worden gescheiden wanneer schaal, belasting of beschikbaarheid daar aanleiding toe geeft.