technische-infrastructuur:overzicht

Verschillen

Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.

Link naar deze vergelijking

Volgende revisie
Vorige revisie
technische-infrastructuur:overzicht [2026/08/23 08:16] – aangemaakt rroethoftechnische-infrastructuur:overzicht [2026/08/23 08:27] (huidige) – [Hostingmodel] rroethof
Regel 1: Regel 1:
 # Technische infrastructuur # Technische infrastructuur
  
-Deze pagina beschrijft de technische basis waarop het **Tulpencraft-netwerk** draait+Deze pagina beschrijft de technische basis waarop het Tulpencraft-netwerk momenteel draait en hoe deze infrastructuur in de toekomst kan worden uitgebreid.
- +
-Waar [[serverinfrastructuur:overzicht|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+## Huidige infrastructuur
  
-Tulpencraft bestaat uit een centrale netwerklaag met daarachter de verschillende Minecraft-servers.+Tulpencraft draait momenteel als virtuele infrastructuur binnen een **Proxmox VE-omgeving**.
  
-De huidige infrastructuur is bewust compact opgezet. De **Velocity Proxy en de Lobby draaien momenteel op dezelfde node**.+De primaire fysieke host waarop de Tulpencraft-VM'momenteel draaien is:
  
 ```text ```text
-                         INTERNET +hv002
-                             │ +
-                             ▼ +
-                  ┌─────────────────────┐ +
-                  │     mc-proxy001     │ +
-                  │                     │ +
-                  │  Rocky Linux 10     │ +
-                  │                     │ +
-                  │  ┌───────────────┐  │ +
-                  │  │    Velocity   │  │ +
-                  │  │     Proxy     │  │ +
-                  │  └───────┬───────┘  │ +
-                  │          │          │ +
-                  │  ┌───────▼───────┐  │ +
-                  │  │     Lobby     │  │ +
-                  │  │     Paper     │  │ +
-                  │  └───────┬───────┘  │ +
-                  └──────────┼──────────┘ +
-                             │ +
-                ┌────────────┼────────────┐ +
-                ▼            ▼            ▼ +
-           Survival       Events       SkyBlock+
 ``` ```
  
-### Huidige situatie+Deze host wordt beschikbaar gesteld door **FastWebHosting.nl** en **Override.nl**. Naast Tulpencraft draait op deze fysieke host ook andere infrastructuur.
  
-De volgende onderdelen draaien momenteel gezamenlijk op:+Tulpencraft maakt gebruik van de beschikbare overcapaciteit van deze host.
  
 ```text ```text
-mc-proxy001+                    hv002 
 +              Proxmox VE 9.2 
 +                     │ 
 +        ┌────────────┴────────────┐ 
 +        │                         │ 
 +        ▼                         ▼ 
 +   Tulpencraft VM'       Overige infrastructuur
 ``` ```
  
-| Onderdeel       | Functie              | +De huidige situatie is daarmee een gedeelde virtualisatieomgeving. Tulpencraft beschikt over eigen VM's, maar niet over de volledige fysieke host.
-| --------------- | -------------------- | +
-| Rocky Linux 10  | Operating System     | +
-| Velocity        | Minecraft Proxy      | +
-| Paper           | Lobby                | +
-| LobbyPlugin     | Lobbyfunctionaliteit | +
-| Citizens        | NPC'               | +
-| DecentHolograms | Hologrammen          | +
-| LuckPerms       | Rechten              | +
-| TAB             | Tablist              | +
-| WorldEdit       | Beheer               | +
-| WorldGuard      | Beveiliging          |+
  
 --- ---
  
-💰 Waarom Proxy en Lobby op dezelfde node draaien+Proxmox-host `hv002`
  
-De huidige combinatie van Proxy en Lobby op `mc-proxy001is een **bewuste ontwerpkeuze**.+| Eigenschap     | Waarde                            | 
 +-------------- | --------------------------------- | 
 +| Hostname       `hv002`                           | 
 +| Hypervisor     | Proxmox VE                        | 
 +| Proxmox-versie | 9.2.10                            | 
 +| Kernel         | Linux 7.0.14-4-pve                | 
 +| Boot           | EFI                               | 
 +| CPU            | 32 logische CPU'                | 
 +| CPU-sockets    | 2                                 | 
 +| CPU-model      | Intel Xeon Silver 4208 @ 2.10 GHz | 
 +| RAM            | ± 1,01 TiB                        | 
 +| Opslag         | ± 1,80 TiB                        | 
 +| Swap           | 8 GiB                             |
  
-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.+De host beschikt over aanzienlijke capaciteit. Hierdoor is er momenteel voldoende ruimte om de Tulpencraft-infrastructuur verder uit te bouwen.
  
-Daarom worden Proxy en Lobby voorlopig gecombineerd op één node. +De beschikbare capaciteit wordt echter gedeeld met andere infrastructuurResourcegebruik wordt daarom actief meegewogen bij verdere uitbreiding.
- +
-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+Virtuele machines
  
-Wanneer Tulpencraft groeit, kan de Lobby worden afgesplitst.+De Tulpencraft-componenten worden waar mogelijk als afzonderlijke VM's uitgevoerd.
  
-De huidige situatie:+Een vereenvoudigd overzicht:
  
 ```text ```text
-mc-proxy001 +hv002 
-├── Velocity +└── Proxmox VE 
-── Lobby+    │ 
 +    ├── mc-proxy001 
 +    │   ├── Velocity 
 +    │   ├── Lobby 
 +    │   └── Database 
 +    │ 
 +    ├── mc-survival001 
 +    │   └── Paper Survival 
 +    │ 
 +    ├── mc-events001 
 +    │   └── Paper Events 
 +    │ 
 +    └── toekomstige game-VM's
 ``` ```
  
-Een toekomstige situatie kan bijvoorbeeld zijn:+De exacte VM-indeling kan veranderen wanneer Tulpencraft groeit of wanneer een verdere scheiding van diensten technisch of organisatorisch wenselijk wordt.
  
-```text +---
-mc-proxy001 +
-└── Velocity+
  
-mc-lobby001 +# `mc-proxy001`
-└── Lobby +
-```+
  
-Daarmee ontstaat:+De VM `mc-proxy001` vormt momenteel het centrale onderdeel van de netwerk-infrastructuur.
  
-```text +Op deze VM draaien momenteel meerdere diensten:
-Internet +
-   │ +
-   ▼ +
-mc-proxy001 +
-Velocity +
-   │ +
-   ▼ +
-mc-lobby001 +
-Paper Lobby +
-   │ +
-   ├──► Survival +
-   ├──► Events +
-   └──► SkyBlock +
-```+
  
-Deze uitbreiding vereist geen fundamentele wijziging aan het netwerkconcept.+* Velocity Proxy; 
 +* de centrale Lobby; 
 +* de database.
  
----+Dit is een bewuste keuze voor de huidige ontwikkelen groeifase.
  
-# 🖥️ Servernodes +De Lobby is hierdoor momenteel niet ondergebracht in een afzonderlijke VMWanneer de schaal of belasting dit noodzakelijk maakt, kan de Lobby worden verplaatst naar een eigen VM.
- +
-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+Game-servers
  
-De gewenste verbindingsroute voor spelers is:+Game-servers worden zoveel mogelijk als afzonderlijke VM's uitgevoerd.
  
-```text +Hierdoor kunnen game-servers onafhankelijk van de netwerkdiensten worden beheerd en krijgen zij hun eigen resources.
-Speler +
-  │ +
-  ▼ +
-Internet +
-  │ +
-  ▼ +
-mc-proxy001 +
-Velocity +
-  │ +
-  ▼ +
-Lobby +
-  │ +
-  ├──────────► Survival +
-  │ +
-  ├──────────► Events +
-  │ +
-  └──────────► SkyBlock +
-```+
  
-De speler heeft uitsluitend een publieke verbinding met de netwerkentree. +Bijvoorbeeld:
- +
-Backendservers zijn **niet zelfstandig vanaf het internet bereikbaar**. +
- +
---- +
- +
-# 🔀 Velocity Proxy +
- +
-Velocity vormt de centrale netwerklaag. +
- +
-De proxy draait momenteel op:+
  
 ```text ```text
-mc-proxy001+mc-survival001 
 +└── Rocky Linux 10 
 +    └── Paper 
 +        └── Survival
 ``` ```
  
-Velocity verzorgt onder andere:+Dit maakt het mogelijk om een game-server afzonderlijk te:
  
-de eerste verbinding van spelers+starten
-doorsturen naar de Lobby+stoppen
-serverselectie+herstarten
-verbindingen met backendservers+onderhouden
-moderne forwarding+upgraden
-netwerkbrede communicatie. +migreren; 
- +voorzien van extra resources.
-Zie: +
- +
-[[serverinfrastructuur:proxy|Proxy]]+
  
 --- ---
  
-🏠 Lobby+Netwerkarchitectuur
  
-De Lobby draait momenteel eveneens op:+Spelers verbinden niet rechtstreeks met de afzonderlijke backendservers.
  
-```text +De publieke toegang verloopt via Velocity:
-mc-proxy001 +
-``` +
- +
-De Lobby gebruikt:+
  
 ```text ```text
-Paper+Speler 
 +   │ 
 +   ▼ 
 +tulpencraft.nl 
 +   │ 
 +   ▼ 
 +Velocity 
 +   │ 
 +   ▼ 
 +Lobby 
 +   │ 
 +   ├── Survival 
 +   ├── Events 
 +   └── toekomstige servers
 ``` ```
  
-en vormt de centrale gebruikersomgeving van Tulpencraft.+De Lobby fungeert als centraal toegangspunt tot de rest van het netwerk.
  
-De Lobby bevat onder andere: +Backendservers zijn niet bedoeld als zelfstandig publiek toegangspunt.
- +
-* NPC's; +
-* hologrammen; +
-* servermenu; +
-* scoreboard; +
-* tablist; +
-* spawn; +
-* lobby-items; +
-* navigatie naar spelservers. +
- +
-Zie: +
- +
-* [[serverinfrastructuur:lobby|Lobby]]+
  
 --- ---
  
-🎮 Backendservers+Operating system
  
-Backendservers bevatten de daadwerkelijke spelwerelden.+De Minecraft-VM's gebruiken als uitgangspunt **Rocky Linux 10**.
  
-Voorbeelden zijn+De technische lagen zijn daarmee:
- +
-* Survival; +
-* Events; +
-* toekomstige SkyBlock; +
-* toekomstige andere spelmodi. +
- +
-Deze servers zijn geen zelfstandige publieke Minecraft-servers. +
- +
-De toegang verloopt via: +
- +
-```text +
-Client +
-  ↓ +
-Velocity +
-  ↓ +
-Lobby +
-  ↓ +
-Backendserver +
-``` +
- +
---- +
- +
-# 🐧 Operating System +
- +
-De Tulpencraft-nodes gebruiken als uitgangspunt:+
  
 ```text ```text
 +Fysieke hardware
 +       ↓
 +Proxmox VE
 +       ↓
 +Virtuele machine
 +       ↓
 Rocky Linux 10 Rocky Linux 10
 +       ↓
 +Minecraft-server
 ``` ```
  
-Rocky Linux vormt de basis voor: +De specifieke installatie en hardening van Rocky Linux worden afzonderlijk gedocumenteerd.
- +
-* Minecraft; +
-* Velocity; +
-* Java; +
-* systemd; +
-* netwerkconfiguratie; +
-* firewalld; +
-* SELinux; +
-* logging; +
-* beheer.+
  
 Zie: Zie:
Regel 279: Regel 179:
 * [[technische-infrastructuur:os-installatie|OS-installatie]] * [[technische-infrastructuur:os-installatie|OS-installatie]]
 * [[technische-infrastructuur:rocky-linux-10|Rocky Linux 10]] * [[technische-infrastructuur:rocky-linux-10|Rocky Linux 10]]
-* [[technische-infrastructuur:server-hardening|Server hardening]] 
  
 --- ---
  
-☕ Java+Schaalbaarheid
  
-De Minecraft-infrastructuur gebruikt:+De huidige infrastructuur is bewust zo ingericht dat Tulpencraft later relatief eenvoudig kan worden opgeschaald.
  
-```text +Zolang `hv002voldoende capaciteit beschikbaar heeft, kunnen extra VM's op deze host worden toegevoegd.
-Java 25 +
-```+
  
-Java wordt op de betreffende Minecraft-nodes geïnstalleerd en beheerd.+Wanneer de belasting verder toeneemt, zijn meerdere scenario's mogelijk.
  
-Zie:+### Scenario 1 — Uitbreiden binnen `hv002`
  
-* [[technische-infrastructuur:java|Java]]+Extra VM's worden op de bestaande Proxmox-host geplaatst zolang daarvoor voldoende capaciteit beschikbaar is.
  
----+### Scenario 2 — Tweede Proxmox-node
  
-# 🔥 Firewall +Een tweede fysieke host kan worden toegevoegd.
- +
-De servers gebruiken:+
  
 ```text ```text
-firewalld +Proxmox hv002 
-```+├── netwerkdiensten 
 +└── game-VM's
  
-Het uitgangspunt is: +Proxmox hv003 
- +└── aanvullende game-VM's
-> **Alleen noodzakelijke netwerkverbindingen worden toegestaan.** +
- +
-De publieke Minecraft-poort wordt op de netwerkentree beschikbaar gesteld. Backendservers worden niet rechtstreeks aan het internet blootgesteld. +
- +
-Zie: +
- +
-* [[technische-infrastructuur:firewall|Firewall]] +
- +
---- +
- +
-# 🛡️ SELinux +
- +
-SELinux wordt gebruikt als aanvullende beveiligingslaag. +
- +
-Het uitgangspunt is: +
- +
-```text +
-SELinux = Enforcing+
 ``` ```
  
-SELinux wordt niet uitgeschakeld om applicatieproblemen op te lossen. Problemen worden opgelost door de juiste contexten en policies te configureren.+De game-servers kunnen dan over meerdere fysieke nodes worden verdeeld.
  
-Zie:+### Scenario 3 — Dedicated server
  
-* [[technische-infrastructuur:selinux|SELinux]]+Wanneer de resourcebehoefte of belasting dit noodzakelijk maakt, kan Tulpencraft overstappen naar een eigen dedicated server.
  
----+Een dedicated omgeving geeft meer controle over:
  
-# ⚙️ systemd+* CPU; 
 +* RAM; 
 +* opslag; 
 +* I/O; 
 +* netwerk; 
 +* resourceverdeling.
  
-Minecraft-componenten worden als systemd-services beheerd. +Daar staan echter ook aanzienlijk hogere structurele kosten tegenover.
- +
-De huidige node bevat bijvoorbeeld: +
- +
-```text +
-velocity +
-minecraft-lobby +
-``` +
- +
-Hierdoor kunnen services: +
- +
-* automatisch starten; +
-* gecontroleerd worden gestopt; +
-* worden herstart; +
-* via journald worden gelogd; +
-* centraal worden beheerd. +
- +
-Voorbeeld: +
- +
-```bash +
-sudo systemctl status minecraft-lobby +
-```+
  
 --- ---
  
-📂 Bestandsstructuur+Resourcebeheer
  
-De Minecraft-installaties bevinden zich onder:+Bij verdere groei wordt niet alleen gekeken naar de hoeveelheid beschikbare RAM of CPU.
  
-```text +Voor Minecraft zijn onder andere de volgende factoren belangrijk:
-/srv/minecraft/ +
-```+
  
-De huidige structuur bevat onder andere:+* CPU-performance per core; 
 +* tick performance; 
 +* RAM-gebruik; 
 +* opslag-I/O; 
 +* wereldgrootte; 
 +* aantal spelers; 
 +* pluginbelasting; 
 +* view-distance; 
 +* simulation-distance; 
 +* netwerkbelasting.
  
-```text +Een uitbreiding wordt daarom gebaseerd op de daadwerkelijke belasting en niet uitsluitend op theoretisch beschikbare capaciteit.
-/srv/minecraft/ +
-├── velocity/ +
-└── lobby/ +
-``` +
- +
-Wanneer aanvullende servers worden toegevoegd, krijgen deze hun eigen directory. +
- +
-Bijvoorbeeld: +
- +
-```text +
-/srv/minecraft/ +
-├── velocity/ +
-├── lobby/ +
-├── survival/ +
-└── events/ +
-```+
  
 --- ---
  
-📊 Monitoring & logging+Migratie
  
-Systeemen servicegegevens worden via systemd/journald beschikbaar gesteld.+Doordat Tulpencraft als VM's binnen Proxmox draait, is een toekomstige migratie naar andere hardware eenvoudiger dan wanneer de Minecraft-servers rechtstreeks op fysieke hardware zouden draaien.
  
-Voorbeeld:+De huidige infrastructuur kan daardoor worden beschouwd als een flexibele basis voor verdere groei.
  
-```bash +Een toekomstige dedicated omgeving hoeft daarom niet te betekenen dat de volledige Tulpencraft-architectuur opnieuw moet worden opgebouwd.
-sudo journalctl -u minecraft-lobby -f +
-``` +
- +
-Voor Velocity: +
- +
-```bash +
-sudo journalctl -u velocity -f +
-``` +
- +
-Fouten kunnen bijvoorbeeld worden gezocht met: +
- +
-```bash +
-sudo journalctl -u minecraft-lobby --since "10 minutes ago" --no-pager | \ +
-grep -Ei 'error|exception|warn' +
-``` +
- +
-Zie: +
- +
-* [[technische-infrastructuur:monitoring|Monitoring & logging]]+
  
 --- ---
  
-💾 Storage+Hostingmodel
  
-Minecraft-data wordt lokaal op de betreffende node opgeslagen.+Tulpencraft maakt momenteel gebruik van **gastgebruik van beschikbare capaciteit** op `hv002`.
  
-Belangrijke data bestaat onder andere uit:+Dit is een belangrijke reden waarom het netwerk momenteel relatief kostenefficiënt kan worden ontwikkeld.
  
-* werelden; +De huidige hostingvorm is geen garantie voor onbeperkte capaciteit. Wanneer de belasting van Tulpencraft of de belasting van de overige infrastructuur daartoe aanleiding geeft, kan in overleg worden gekeken naar uitbreiding, migratie of een eigen dedicated omgeving.
-* plugins; +
-* configuraties; +
-* logs; +
-* serverdata; +
-* gebruikersdata.+
  
-Storagegebruik moet worden gemonitord omdat Minecraft-werelden en logs in de loop van de tijd kunnen groeien.+Voor meer informatie en onze dank aan de partijen die deze infrastructuur mogelijk maken, zie:
  
-Zie: +**[[technische-infrastructuur:dankwoord|Dankwoord]]**
- +
-* [[technische-infrastructuur:storage|Storage]]+
  
 --- ---
  
-# 💾 Backups+> **Status:** Actieve infrastructuur
  
-Backups moeten in ieder geval de kritieke Minecraft-data beschermen.+> **Primaire Proxmox-host:** `hv002`
  
-Belangrijke backupdoelen zijn:+> **Besturingssysteem Minecraft-VM's:** Rocky Linux 10
  
-Minecraft-werelden; +**Virtualisatie:** Proxmox VE 9.2.10
-configuraties; +
-pluginconfiguraties; +
-belangrijke scripts; +
-* serverdata. +
- +
-GitHub kan worden gebruikt voor broncode, configuraties en scripts, maar is **geen vervanging voor backups van Minecraft-werelden**. +
- +
-Zie: +
- +
-* [[technische-infrastructuur:backups|Backups]] +
- +
---- +
- +
-# 🔐 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 +
- +
-### Serverinfrastructuur +
- +
-* [[serverinfrastructuur:overzicht|Serverinfrastructuur — Overzicht]] +
-* [[serverinfrastructuur:proxy|Proxy]] +
-* [[serverinfrastructuur:lobby|Lobby]] +
-* [[serverinfrastructuur:survival|Survival]] +
-* [[serverinfrastructuur:events|Events]] +
- +
-### Technische infrastructuur +
- +
-* [[technische-infrastructuur:os-installatie|OS-installatie]] +
-* [[technische-infrastructuur:rocky-linux-10|Rocky Linux 10]] +
-* [[technische-infrastructuur:server-hardening|Server hardening]] +
-* [[technische-infrastructuur:java|Java]] +
-* [[technische-infrastructuur:firewall|Firewall]] +
-* [[technische-infrastructuur:selinux|SELinux]] +
-* [[technische-infrastructuur:systemd|systemd]] +
-* [[technische-infrastructuur:storage|Storage]] +
-* [[technische-infrastructuur:monitoring|Monitoring & logging]] +
-* [[technische-infrastructuur:backups|Backups]] +
- +
----+
  
-> **Laatste update:** augustus 2026 +> **Laatst bijgewerkt:** 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