Auf dieser Seite
Neuer Bereich: FiveM-Server, in drei Schritten
Eine dreiteilige Reihe vom leeren Debian bis zum Server, der sich selbst aktuell hält: Installation, txAdmin hinter HTTPS und automatische Artefakt-Updates. Die Skripte gibt es zum Herunterladen.
Es gibt einen neuen Bereich in den Guides: FiveM-Server. Die Debian-Tutorials waren bisher eine flache Liste, und für etwas, das aufeinander aufbaut, passt das nicht. Die drei Teile hängen zusammen und lassen sich der Reihe nach durcharbeiten.
Entstanden ist die Reihe aus dem Setup auf meinem eigenen Server, samt der Fehler, die dabei aufgefallen sind.
Schritt 1: FiveM-Server installieren
Vom leeren Debian bis zum laufenden Dienst: eigener Systembenutzer, das FXServer-Artefakt, die Trennung von Artefakt und Serverdaten, eine systemd-Unit und der erste Start mit txAdmin.
Der Punkt, an dem sich dieses Tutorial von den üblichen unterscheidet: Port 40120 ist von Anfang an gesperrt. Für das Erstsetup läuft ein SSH-Tunnel statt eines offenen Ports. Das kostet zwanzig Sekunden und erspart das Zeitfenster, in dem ein frisches Verwaltungspanel offen im Netz steht.
Und ein Hinweis, der mich selbst Zeit gekostet hätte: die naheliegende Interface-Einstellung von txAdmin taugt dafür nicht. Sie bindet nicht nur das Panel, sondern zwingt auch den Spielserver auf dasselbe Interface. Auf Loopback gesetzt ist der Server danach für niemanden mehr erreichbar.
Schritt 2: txAdmin hinter einem Reverse Proxy
Apache 2.4 davor, HTTPS auf einer eigenen Subdomain, und eine WebSocket-Weiche, damit die Live-Konsole wirklich live ist. Dazu drei Dinge, die in fast jeder kopierten Konfiguration stecken und still Schaden anrichten:
- Ohne WebSocket-Upgrade fällt socket.io auf HTTP-Polling zurück. Das Panel läuft weiter, nur träge, und deshalb fällt es monatelang nicht auf. Getestet wird das im Browser, ein von Hand gebauter curl-Handshake misst nur sich selbst.
X-Forwarded-Forvon Hand zu setzen verdoppelt die Client-IP, weilmod_proxy_httpden Header selbst schon anhängt. In der Ban-Ansicht steht danach Unsinn.- Ein
connect-srcaus einer alten Konfiguration blockiert die WebSocket-Verbindung, und die Live-Konsole bleibt einfach leer.
Schritt 3: Artefakte automatisch aktualisieren
Ein Script, das die aktuelle Version über die Cfx-Changelog-API holt, das Artefakt austauscht und den Dienst neu startet. Zwei Eigenschaften sind mir dabei wichtig gewesen: es lädt und entpackt alles, bevor der Server gestoppt wird, und das alte Artefakt wird beiseitegeschoben statt gelöscht. Kommt der Dienst nach dem Update nicht innerhalb von 15 Sekunden hoch, holt das Script den alten Stand zurück und startet ihn.
Die Skripte zum Herunterladen
Alle vier Dateien liegen unter uploads.musiker15.de/fivem/:
| Datei | Zweck |
|---|---|
install-fxserver.sh | interaktiver Installer für Unit, Updater und Cron |
update-fxserver.sh | der Updater allein |
fivem.service | systemd-Unit als kommentierte Vorlage |
txadmin-vhost.conf | Apache-vHost für das Panel |
Bewusst steht in keinem der Tutorials ein curl … | sudo bash. Ein Script, das
als root läuft und den halben Server umbaut, gehört vorher gelesen. Deshalb sind
Herunterladen und Ausführen überall zwei getrennte Schritte.