txAdmin, wat is dat precies?
txAdmin zit sinds 2020 standaard in FXServer: er is niets te kopen en niets apart te installeren. Bij de eerste start van FXServer komt txAdmin automatisch op en biedt het een webinterface aan (standaard op poort 40120). Het is het standaardgereedschap van de FiveM-gemeenschap, opensource en onderhouden door het Cfx.re-team.
- Live console: serverlogboeken in real time, commando's, geschiedenis
- Recipes: automatische uitrol van een volledige basis (QBCore, ESX Legacy, vanilla)
- Planner: geplande herstarts met aankondigingen in het spel
- Spelersbeheer: bans, waarschuwingen, whitelist, notities, geschiedenis per identificatie
- Monitoring: crashdetectie met automatische herstart
Vereisten
- Een VPS met minstens 4 GB RAM — 8 GB aangeraden voor een QBCore/ESX-basis met spelers. Onder Linux zijn Debian en Ubuntu de best gedocumenteerde distributies: zie onze pagina's VPS Debian en VPS Ubuntu. Onder Windows hebt u een Windows-VPS met RDP-toegang nodig.
- Een gratis licentiesleutel die u op portal.cfx.re aanmaakt (verplicht voor elke FiveM-server), in te vullen in
server.cfg via sv_licenseKey
- De poorten 30120 in TCP en in UDP (spel) en 40120 in TCP (txAdmin-paneel) open in de firewall
- Een MariaDB- of MySQL-database als u een roleplayframework uitrolt: zowel QBCore als ESX bewaren daar de personages, de inventaris en de economie
Installatie op een Linux-VPS
Download de laatste FXServer-build van runtime.fivem.net, pak ze uit in een map (bv. ~/fxserver) en start ./run.sh. txAdmin komt automatisch op en toont in de terminal een PIN-code van 4 cijfers die enkele minuten geldig blijft. Open http://IP-VAN-DE-VPS:40120 in uw browser, voer de PIN in en koppel daarna uw Cfx.re-account: dat wordt uw beheerdersidentificatie. Wilt u dat de server een SSH-verbreking overleeft, start hem dan in tmux, screen of via een systemd-dienst — de volgende sectie geeft de volledige unit.
FXServer als systemd-dienst laten draaien
Een server die u met de hand in een terminal start, sterft met uw SSH-sessie en komt niet terug als de VPS herstart. Een systemd-dienst lost beide op. Maak /etc/systemd/system/fxserver.service aan met de inhoud hieronder, waarbij u gebruiker en paden door de uwe vervangt:
[Unit] — Description=FXServer FiveM en dan After=network.target mariadb.service: de server start niet voordat het netwerk en de database klaar zijn
[Service] — User=fivem, WorkingDirectory=/home/fivem/fxserver, ExecStart=/home/fivem/fxserver/run.sh, Restart=always, RestartSec=10
[Install] — WantedBy=multi-user.target
- Daarna
systemctl daemon-reload, systemctl enable --now fxserver, en journalctl -u fxserver -f om de opstartlogboeken te lezen — daar verschijnt de PIN bij de eerste start
Laat de server onder een eigen account draaien
Start FXServer niet als root. Maak een aparte systeemgebruiker aan (adduser --system --group fivem), zet de servermap daar en geef hem het eigendom van de map txData. Een slecht geschreven resource van derden — en daar circuleren er veel in het roleplay-ecosysteem — heeft dan alleen toegang tot de spelbestanden, niet tot de rest van de machine. Op een VPS waar u ook een site of een database host, is die scheiding het minimum.
txAdmin op een Windows-VPS installeren
FXServer bestaat ook als Windows-build, en veel roleplaygemeenschappen blijven daarbij omdat hun ontwikkelgereedschap daarop draait. Het principe is identiek: download het archief server.zip van runtime.fivem.net, pak het uit en start FXServer.exe. txAdmin komt op, toont de PIN in het consolevenster, en het paneel antwoordt op http://IP-VAN-DE-VPS:40120. Een paar verschillen om te kennen:
- De Windows-firewall blokkeert standaard: maak twee regels voor inkomend verkeer, een voor poort 30120 in TCP en UDP, een voor poort 40120 in TCP (Windows Defender Firewall met geavanceerde functies, of
New-NetFirewallRule in PowerShell)
- Het consolevenster sluit met de RDP-sessie: wilt u dat de server permanent draait, registreer
FXServer.exe dan als Windows-dienst (NSSM en WinSW zijn de twee door de gemeenschap gebruikte hulpmiddelen) of neem een geplande taak die « bij het opstarten van de computer » wordt geactiveerd
- Voorzie meer geheugen dan onder Linux: het systeem zelf gebruikt er meer. Op onze Windows-VPS'en begint het instapmodel op 8 GB, wat de nodige marge laat voor een QBCore- of ESX-basis
- De Microsoft-licentie is niet inbegrepen: dat is een extra kost om in te calculeren, anders dan bij een Linux-VPS
Een basis uitrollen met de recipes
Bij de eerste toegang stelt de assistent van txAdmin voor om een recipe uit te rollen: een volledige serverbasis die automatisch wordt geïnstalleerd (framework, database, startresources). Kies QBCore of ESX Legacy voor een roleplayserver, of een vanilla-basis om van nul te beginnen. De recipe stelt ook de MySQL/MariaDB-verbinding in — installeer op een VPS eerst MariaDB en maak een eigen database aan.
Welke poorten open moeten, en waarom
Slechts drie poorten, maar een klassieke fout is om 30120 alleen in TCP te openen. FiveM gebruikt hetzelfde poortnummer in TCP en in UDP: TCP dient voor de ontdekking en de serverlijst, UDP voor het speltraffiek. Een server die in de lijst verschijnt maar waarop niemand verbinding krijgt, is bijna altijd de vergeten UDP.
- 30120/tcp en 30120/udp: het spel. Voor iedereen open. Onder Debian of Ubuntu opent
ufw allow 30120 beide protocollen in één keer
- 40120/tcp: het txAdmin-paneel. Te beperken tot uw eigen IP-adres, zie hieronder
- 3306/tcp (MariaDB): niet naar buiten openen. De database draait op dezelfde machine als FXServer en wordt bereikt via
127.0.0.1. Een MySQL-poort die op het internet staat, is een van de snelste manieren om een personagedatabase te verliezen
- De spelpoort kan worden gewijzigd (
endpoint_add_tcp en endpoint_add_udp in server.cfg): nuttig om twee servers, een productie- en een testserver, op dezelfde machine te laten draaien
Hoeveel middelen naar aantal spelers
De RAGE-engine is zeer afhankelijk van één enkele kern: de kloksnelheid van de processor weegt zwaarder dan het aantal vCores. Een VPS met 8 langzame kernen houdt minder spelers vast dan een VPS met 4 snelle kernen. Aan de geheugenkant beslissen de resources van derden — een volledige roleplayserver laadt gemakkelijk een honderdtal scripts.
- Vanilla-basis, een handvol spelers: 4 GB RAM volstaat, dat is de bodem om FXServer te starten
- QBCore of ESX, 20 tot 40 spelers: 8 GB. De vijftig scripts van een beginnende roleplayserver gebruiken alleen al 2 tot 4 GB, MariaDB vraagt daar ongeveer 1 bij
- Gevestigde server, 64 slots en meer, eigen scripts: 16 GB, en SSD-opslag — het heen en weer met de database is tijdens de sessies onafgebroken
- Schijf: reken het gewicht van uw resources plus de database, en houd plaats over voor de back-ups. Roleplayservers groeien met de tijd, nooit omgekeerd
De txAdmin-console in het dagelijks gebruik
Het tabblad Live Console toont de serverlogboeken in real time en aanvaardt alle FXServer-commando's (refresh, ensure mijn-resource, restart es_extended…). Gevoelige handelingen worden per beheerdersaccount bijgehouden: elke kick, ban of herstart laat een spoor, handig wanneer meerdere moderators de server beheren.
- Scheduler: plan 1 of 2 herstarts per dag met automatische aankondigingen — het geheugen van een FiveM-server raakt met de tijd gefragmenteerd
- Back-ups: maak regelmatig een kopie van uw datamap en van de MySQL-database (txAdmin bewaart de database niet in uw plaats)
- Rechten: maak per moderator een beheerdersaccount met beperkte rechten, in plaats van het hoofdaccount te delen
FXServer en txAdmin bijwerken
txAdmin heeft geen eigen update: het zit in de FXServer-artifact, dus de server bijwerken werkt het paneel bij. De handeling is eenvoudig maar gebeurt in volgorde, anders verliest u een configuratie.
- Maak een momentopname van de VPS vanuit de klantenzone, of minstens een kopie van de servermap en een export van de database
- Stop de server netjes (
systemctl stop fxserver, of de Stop-knop van txAdmin)
- Vervang uitsluitend de bestanden van de artifact — raak noch
txData/, noch uw map resources/, noch server.cfg aan: dat zijn uw gegevens, niet die van de server
- Herstart en kijk daarna in de console of alle resources laden. Een resource die niet met de nieuwe build overweg kan, valt meteen op in de logboeken
- Houd de vorige artifact enkele dagen bij: teruggaan bestaat dan uit het terugzetten van de oude map
Back-up maken van wat werkelijk telt
Eén opmerking komt vaak terug bij de ondersteuningsvragen: « txAdmin maakt toch back-ups? » Het maakt ze, maar niet van wat u denkt. De database wordt niet door txAdmin bewaard. En net daarin zitten de personages, de voertuigen, de bankrekeningen en de inventarissen — alles wat uw gemeenschap heeft opgebouwd en waarvan niemand het verlies zal vergeven.
- De database: een dagelijkse
mysqldump als cron-taak, weggeschreven naar elders dan de VPS zelf
- De map
txData/: daarin zitten admins.json, de configuratie van het paneel en de geschiedenis van de sancties
- Uw map
resources/ en server.cfg: vooral als u aangekochte scripts hebt aangepast, bestaan die aanpassingen nergens anders
- De momentopnamen van de VPS dekken de hele machine en worden met één klik uit de klantenzone teruggezet. Ze vullen de database-exports aan, ze vervangen die niet: een momentopname herstelt ook de fout die u wilde ongedaan maken
De toegang tot het paneel beveiligen
Een beheerpaneel dat op een publiek IP-adres staat, is een duidelijk doelwit. Drie maatregelen volstaan:
- Beperk poort 40120 tot uw IP:
ufw allow from UW_IP to any port 40120 en dan ufw deny 40120 — alleen uw medebeheerders komen bij het paneel, de spelpoort (30120) blijft voor iedereen open
- Schakel de aanmelding nooit uit, ook niet « even om te testen »: de wachtwoordloze modus van txAdmin is voor plaatselijke ontwikkeling bedoeld, nooit op een publieke VPS
- HTTPS-reverseproxy in productie (optioneel): Nginx of Caddy ervoor met een subdomein en een Let's Encrypt-certificaat, in plaats van
ip:40120 onversleuteld bloot te geven — let erop dat u de WebSocket-kopregels (Upgrade/Connection) goed doorgeeft, de live console hangt ervan af
- Eén beheerdersaccount per persoon, met zo weinig rechten mogelijk: txAdmin houdt handelingen per account bij, wat niets oplevert als iedereen dezelfde identificatie deelt
Veelvoorkomende problemen en oplossingen
- Pagina 40120 niet bereikbaar: de poort is dicht — open ze in de firewall (
ufw allow 40120/tcp) of kijk of txAdmin echt luistert (opstartlogboeken)
- De server staat in de lijst maar niemand krijgt verbinding: poort 30120 staat alleen in TCP open. Open ze ook in UDP
- PIN verlopen: start FXServer opnieuw, er verschijnt een nieuwe PIN in de terminal
- Beheerderstoegang kwijt: stop de server en verwijder het bestand
txData/admins.json — txAdmin start de assistent van de eerste opstart opnieuw
- « Invalid license key »: de Cfx.re-sleutel is aan een IP-adres gebonden. Bent u van server veranderd, genereer ze dan opnieuw op portal.cfx.re en vervang de regel
sv_licenseKey in server.cfg
- De live console blijft leeg achter een reverseproxy: de WebSocket-kopregels worden niet doorgegeven. Voeg
Upgrade en Connection toe aan de Nginx-configuratie
- De server herstart in een lus: lees de logboeken van net voor de crash. Negen van de tien keer is het een resource van derden die de dag ervoor is toegevoegd — haal ze uit
server.cfg en herstart om het te bevestigen
- Server die stottert: houd het monitoringtabblad in het oog; loopt het RAM vol met uw database en uw spelers, stap dan naar een hoger VPS-plan. De overstap gebeurt vanuit de klantenzone, zonder herinstallatie
- Herhaalde aanvallen tijdens de sessies: veelbezochte roleplayservers worden regelmatig geviseerd. Filteren op netwerkniveau is het enige middel; zie onze gids De Anti-DDoS begrijpen