Nur SFTP-Zugang (gemieteter Gameserver)¶
Bei vielen Hostern bekommst du für deinen GMod-Server nur SFTP (oder FTP) und eine Konsole. Du kannst dort keine Programme installieren und kein Node.js starten. Das Panel kann deshalb nicht auf dem Gameserver laufen. Es läuft auf einem anderen Rechner, und der Gameserver bekommt nur zwei kleine Dateien, den Agent. Der Agent ruft das Panel von sich aus über das Internet ab.
Gameserver (nur SFTP) Panel (anderer Rechner, immer an)
addons/trinityadmin/…lua ──HTTP──▶ Node.js, Port 3200, erreichbar im Internet
data/trinityadmin.json
Was dabei geht und was nicht¶
| Funktion | Mit Agent über Internet |
|---|---|
| Spieler, Chat, Ereignisse, Statistiken | ja |
| Bans, Verwarnungen, Kicks, Whitelist, Wartungsmodus | ja |
| Reports, Einsprüche, Ankündigungen an Spieler | ja |
| Server-Einstellungen (hostname, Passwort, Tags) | ja |
| Live-Konsole | nein |
| Dateien bearbeiten und Konfiguration (cfg) | nein |
| Start, Stopp, Neustart, Kill aus dem Panel | nein |
Konsole, Dateien und Power braucht das Panel direkten Zugriff auf den Server. Den hat es nur lokal oder über die Wisp-/Pterodactyl-API. Alles andere funktioniert wie sonst. Geprüft ist, dass ein Panel ohne Gameserver-Ordner startet und die Agent-Dateien mit der richtigen Adresse liefert. Der Agent auf einem echten Fremdhoster ist nicht getestet.
Was du brauchst¶
- Einen Rechner, auf dem das Panel dauerhaft läuft: ein günstiger vServer, ein Heimserver oder ein zweites Hosting-Paket mit Node.js. Node.js ab Version 20 muss darauf laufen.
- Eine Adresse, unter der der Gameserver das Panel erreicht, zum Beispiel
http://203.0.113.5:3200oder besserhttps://panel.meinedomain.de. Hinter einem Heimrouter musst du den Port weiterleiten. - Dein SFTP-Zugang zum Gameserver.
Sicherheit
Das Panel ist dann aus dem Internet erreichbar. Nutze HTTPS (Reverse-Proxy wie Caddy oder nginx), ein starkes Passwort und gib Teammitgliedern nur die Rechte, die sie brauchen.
1. Panel auf dem anderen Rechner starten¶
Kopiere den Ordner panel aus dem Repository (oder aus dem Paket) auf den Rechner, installiere die Abhängigkeiten und starte es:
cd panel
npm install --omit=dev
PORT=3200 \
DATA_DIR=/opt/trinityadmin/data \
PUBLIC_URL=https://panel.meinedomain.de \
TA_OWNER_USER=admin \
TA_OWNER_PASS='dein-startpasswort' \
node src/server.js
TA_GMOD_DIR und WISP_URL bleiben leer, das Panel weiß dann, dass der Server nicht neben ihm liegt. PUBLIC_URL ist die Adresse aus der Liste oben, sie landet später in der Datei für den Agent.
Damit das Panel dauerhaft läuft, trage es in systemd ein:
# /etc/systemd/system/trinityadmin.service
[Unit]
Description=TrinityAdmin
After=network.target
[Service]
WorkingDirectory=/opt/trinityadmin/panel
Environment=PORT=3200 DATA_DIR=/opt/trinityadmin/data PUBLIC_URL=https://panel.meinedomain.de TA_OWNER_PASS=dein-startpasswort
ExecStart=/usr/bin/node src/server.js
Restart=always
[Install]
WantedBy=multi-user.target
systemctl enable --now trinityadmin
Unter Windows legst du die Variablen in einer start.cmd mit set NAME=Wert an und startest node src\server.js darin, wie bei der lokalen Installation.
2. Server im Panel anlegen¶
- Im Browser die Panel-Adresse öffnen und mit
adminund dem Startpasswort anmelden. Beim ersten Login legst du ein eigenes Passwort fest. - Server → Server hinzufügen, Name eintragen (die Adresse ist optional).
- Beim neuen Server auf Agent klicken. Das Panel zeigt dir zwei Dateien mit fertigem Inhalt, in der zweiten stehen Adresse und Schlüssel.
3. Dateien per SFTP hochladen¶
Lege die beiden Dateien an genau diesen Stellen auf dem Gameserver ab:
| Datei | Zielpfad |
|---|---|
| Agent (Lua) | garrysmod/addons/trinityadmin/lua/autorun/trinityadmin.lua |
| Einstellungen | garrysmod/data/trinityadmin.json |
Die Datei trinityadmin.json sieht so aus. Der Schlüssel gehört nur diesem Server:
{ "url": "https://panel.meinedomain.de/api/agent/sync", "key": "…", "interval": 2 }
Starte den Gameserver neu (im Hoster-Panel). In dessen Konsole erscheint, dass der Agent gestartet ist. Wenige Sekunden später zeigt das Panel den Server als online.
4. Admin-Addon (optional)¶
Für Ränge, Befehle, Menü und Reports im Spiel lade zusätzlich den Ordner addon/trinity_admin per SFTP nach garrysmod/addons/trinity_admin. Sie sind unabhängig vom Panel, siehe Admin-Addon. Als Besitzer trägst du dich mit deiner SteamID in die Datei garrysmod/data/tadmin_owners.txt ein.
Wenn es nicht klappt¶
- Server bleibt offline: Prüfe, ob der Gameserver die Adresse aus
trinityadmin.jsonerreicht. Öffne sie auf dem Panel-Rechner selbst und teste den Port von außen. Die Firewall muss ihn freigeben. - GMod darf nur manche Ziele erreichen: Manche Hoster sperren ausgehende Verbindungen. Dann geht dieser Weg nicht, frag den Hoster oder nutze ein Egg.
- Falscher Schlüssel: Lade die Dateien über Agent neu herunter und überschreibe beide.
- Lokale Adressen: GMod verbietet HTTP-Anfragen an
localhostund private Adressen. Der Panel-Rechner muss eine öffentliche Adresse haben.