Die Administration eines Garry’s Mod Servers kann eine echte Herausforderung sein. Manuelle Updates, Konfigurationsänderungen, das Hinzufügen oder Entfernen von Addons – all das erfordert Präzision und kann schnell unübersichtlich werden. Fehler passieren, Konfigurationen gehen verloren, und die Fehlersuche wird zum Albtraum. Aber was wäre, wenn Sie Ihre Serververwaltung auf das nächste Level heben könnten? Was, wenn Sie eine vollständige Historie jeder Änderung hätten, Fehler rückgängig machen könnten und sogar mit anderen Admins nahtlos zusammenarbeiten könnten? Die Antwort liegt in der Nutzung von GitHub und Git für Ihr Server-Management.
Warum GitHub für Ihren Garry’s Mod Server? Das Ende des Chaos
Stellen Sie sich vor, Sie ändern eine wichtige Server-Konfiguration und der Server stürzt ab. Ohne Versionskontrolle müssten Sie mühsam die letzte funktionierende Version suchen oder schlimmstenfalls von Grund auf neu beginnen. Mit Git ist das anders: Jede Änderung wird erfasst, Sie können jederzeit zu einem früheren Zustand zurückkehren (ein sogenanntes Rollback) und genau sehen, wer wann welche Änderung vorgenommen hat. GitHub erweitert diese Vorteile um eine cloudbasierte Plattform, die Kollaboration und Fernzugriff ermöglicht.
Die Vorteile im Überblick:
- Vollständige Historie: Jede Änderung an Ihren Konfigurationsdateien und Skripten wird aufgezeichnet.
- Einfache Rollbacks: Bei Fehlern springen Sie in Sekundenschnelle zur letzten funktionierenden Version zurück.
- Kollaboration: Mehrere Admins können gleichzeitig an Konfigurationen arbeiten, ohne sich gegenseitig zu überschreiben.
- Zentrale Speicherung: Ihre Server-Konfigurationen sind sicher in der Cloud gespeichert und von überall zugänglich.
- Automatisierungspotenzial: Vereinfachen Sie Deployments und Updates durch Skripte.
- Struktur und Ordnung: Bringen Sie System in Ihr Server-Management.
Voraussetzungen für den „Level-Up”
Bevor wir loslegen, stellen Sie sicher, dass Sie Folgendes haben:
- Einen funktionierenden Garry’s Mod Server (Linux oder Windows).
- Einen GitHub-Account (kostenlos registrieren, falls noch nicht vorhanden).
- Git auf Ihrem Server installiert. Dies ist der Kern der Versionskontrolle.
- Für Linux (Debian/Ubuntu):
sudo apt update && sudo apt install git -y
- Für Windows: Laden Sie den Git Installer von git-scm.com herunter und installieren Sie ihn.
- Für Linux (Debian/Ubuntu):
- Grundlegende Kenntnisse der Kommandozeile (CMD unter Windows, Bash unter Linux) und grundlegende Git-Befehle sind hilfreich, aber wir führen Sie durch die wichtigsten Schritte.
Schritt 1: Das Git-Repository auf dem Server einrichten
Zuerst navigieren Sie in Ihrem Server-Verzeichnis dorthin, wo Sie Ihre Konfigurationsdateien und benutzerdefinierten Addons verwalten möchten. Im Idealfall ist dies das Hauptverzeichnis Ihres garrysmod/
Ordners oder ein Unterordner, der alle wichtigen Konfigurationen enthält. Wir empfehlen, das Git-Repository im Hauptverzeichnis des garrysmod/
Ordners zu initialisieren.
cd /path/to/your/garrysmod/
git init
Dieser Befehl initialisiert ein leeres Git-Repository in Ihrem aktuellen Verzeichnis. Es wird ein versteckter Ordner namens .git
erstellt, der alle Versionsinformationen speichert.
Schritt 2: Das .gitignore-File – Was gehört nicht ins Repository?
Nicht alles auf Ihrem Server sollte versioniert werden. Insbesondere große Binärdateien, Logs, Datenbanken oder temporäre Dateien, die sich häufig ändern, gehören nicht in ein Git-Repository. Erstellen Sie eine Datei namens .gitignore
im Root Ihres garrysmod/
Ordners (dort, wo auch .git
liegt) und fügen Sie folgende Einträge hinzu:
# Temporäre und Cache-Dateien
cache/
data/
logs/
downloads/
gamemodes/*/cache/
gamemodes/*/data/
# Datenbanken (falls vorhanden)
*.db
sv.db
# Server-Logs
server.log
console.log
# Workshop Addons (sehr wichtig!)
# Workshop-Addons sind groß und sollten NICHT direkt im Git-Repo liegen.
# Stattdessen sollten Sie lediglich die collection.txt oder das Lua-Skript für die Kollektion versionieren.
# Die Server laden die Workshop-Addons dann automatisch herunter.
addons/workshop/*
garrysmod/addons/workshop/*
# Windows-spezifische Dateien
Thumbs.db
Desktop.ini
# Linux-spezifische Dateien (falls nicht schon im globalen Gitignore)
*~
*.swp
Speichern Sie die Datei. Git wird nun alle Dateien und Ordner, die in dieser Liste stehen, ignorieren und nicht zur Versionskontrolle hinzufügen.
Schritt 3: Erste Dateien hinzufügen und den ersten Commit machen
Nun ist es Zeit, die wichtigen Konfigurationsdateien zu Ihrem Repository hinzuzufügen. Typischerweise sind das:
cfg/server.cfg
cfg/autoexec.cfg
addons/
(für Ihre benutzerdefinierten Addons, nicht Workshop!)gamemodes/
(für Ihre benutzerdefinierten Gamemodes oder Änderungen an bestehenden)- Startskripte (z.B.
start_server.sh
oderstart_server.bat
)
Fügen Sie diese Dateien zu Ihrer „Staging Area” hinzu:
git add cfg/server.cfg
git add cfg/autoexec.cfg
git add addons/your_custom_addon/ # Beispiel für ein benutzerdefiniertes Addon
git add gamemodes/your_custom_gamemode/ # Beispiel für einen benutzerdefinierten Gamemode
git add start_server.sh # Oder Ihr entsprechendes Startskript
Alternativ können Sie auch alle Änderungen im aktuellen Verzeichnis (außer den ignorierten) hinzufügen:
git add .
Jetzt committen Sie diese Änderungen. Ein Commit ist wie ein Schnappschuss Ihres Repositorys zu einem bestimmten Zeitpunkt:
git commit -m "Initialer Server-Setup: Grundkonfigurationen und benutzerdefinierte Addons"
Gute Commit-Nachrichten sind sehr wichtig, da sie Ihnen später helfen, die Historie zu verstehen.
Schritt 4: Verbindung zu GitHub herstellen
Erstellen Sie ein neues leeres Repository auf GitHub.com. Geben Sie ihm einen passenden Namen, z.B. garrysmod-server-configs
. Wählen Sie „Public” oder „Private” je nach Bedarf. Überspringen Sie die Initialisierung mit einer README oder .gitignore, da wir diese bereits lokal haben.
Nachdem Sie das Repository erstellt haben, zeigt Ihnen GitHub die Befehle an, um Ihr lokales Repository mit dem Remote-Repository zu verbinden. Es sollte in etwa so aussehen:
git remote add origin https://github.com/IhrBenutzername/IhrRepositoryName.git
git branch -M main # (oder master, falls Sie es so bevorzugen)
git push -u origin main
Wenn Sie nach Ihren GitHub-Anmeldedaten gefragt werden, geben Sie diese ein. Wenn Sie die Zwei-Faktor-Authentifizierung aktiviert haben (was sehr empfehlenswert ist!), müssen Sie stattdessen ein Personal Access Token (PAT) verwenden. Sie können dieses in Ihren GitHub-Einstellungen unter „Developer settings” > „Personal access tokens” > „Tokens (classic)” generieren.
Schritt 5: Der Admin-Workflow mit Git – So geht’s
Sobald Ihr Repository auf GitHub ist, beginnt der eigentliche Vorteil. Hier ist ein typischer Workflow:
A. Änderungen lokal vornehmen und auf den Server bringen
- Änderungen vornehmen: Bearbeiten Sie Ihre Konfigurationsdateien oder Addons lokal auf Ihrem Entwicklungsrechner.
- Änderungen hinzufügen: Öffnen Sie Ihr Terminal/CMD im lokalen Repository-Ordner und fügen Sie die geänderten Dateien hinzu:
git add .
- Commiten: Speichern Sie die Änderungen mit einer aussagekräftigen Nachricht:
git commit -m "Server-FPS auf 60 begrenzt und neues Anti-Cheat-Addon hinzugefügt"
- Auf GitHub pushen: Laden Sie die Änderungen zu Ihrem Remote-Repository hoch:
git push origin main
- Auf dem Server aktualisieren: Melden Sie sich auf Ihrem Garry’s Mod Server an und wechseln Sie in das Server-Verzeichnis, in dem Ihr Git-Repository liegt. Dann ziehen Sie die Änderungen vom Remote-Repository herunter:
git pull origin main
- Server neu starten: Damit die Änderungen wirksam werden, müssen Sie Ihren Garry’s Mod Server neu starten.
B. Fehler beheben mit Rollbacks
Sie haben eine Änderung gepusht, die den Server zum Absturz bringt? Kein Problem! Sie können einfach zur letzten funktionierenden Version zurückkehren:
- Commit-Historie ansehen: Finden Sie den Hash des Commits, zu dem Sie zurückkehren möchten (meistens der vorletzte oder ein bekannter guter Zustand):
git log
(Drücken Sie ‘q’ zum Beenden von
git log
) - Rollback durchführen: Sobald Sie den Hash des Commits gefunden haben (z.B.
abcdef12345
), können Sie entweder ein Revert oder ein Reset nutzen.git revert <commit_hash>
: Erstellt einen neuen Commit, der die Änderungen des angegebenen Commits rückgängig macht. Dies ist der sicherere Weg, da die Historie erhalten bleibt.git reset --hard <commit_hash>
: Setzt den Zustand des Repositorys auf den angegebenen Commit zurück und verwirft alle nachfolgenden Änderungen. **Vorsicht: Dies löscht ungespeicherte Änderungen!** Nutzen Sie dies nur, wenn Sie genau wissen, was Sie tun.
Für die meisten Notfälle ist
git revert
die bessere Wahl. - Änderungen auf GitHub pushen (nur bei revert): Wenn Sie
git revert
verwendet haben, müssen Sie den neuen Revert-Commit zu GitHub pushen:git push origin main
- Server neu starten: Starten Sie den Server neu, damit die Änderungen wirksam werden.
Schritt 6: Workshop-Addons – Die Sonderbehandlung
Wie bereits erwähnt, sollten Steam Workshop Addons nicht direkt über Git verwaltet werden, da sie zu groß sind und sich ständig ändern. Der beste Ansatz ist, die collection.txt
oder ein Lua-Skript, das die Workshop-Kollektion lädt, in Ihrem Git-Repository zu speichern. Der Server lädt die Addons dann automatisch beim Start herunter.
Stellen Sie sicher, dass Ihre collection.txt
(oder entsprechende Datei) versioniert ist. Wenn Sie neue Workshop-Addons hinzufügen, aktualisieren Sie diese Datei, committen Sie die Änderung und pushen Sie sie. Ihr Server zieht dann die neue Version der collection.txt
und lädt die neuen Addons herunter.
Schritt 7: Automatisierung – Das wahre Level-Up für Garry’s Mod Server!
Manuelles git pull
und Serverneustarts sind schon besser als rein manuelle Updates, aber es geht noch besser: Automatisierung!
A. Einfache Skripte für Updates
Erstellen Sie ein kleines Skript, das den Server stoppt, die neuesten Änderungen von GitHub zieht und den Server neu startet.
Für Linux (update_and_restart.sh
):
#!/bin/bash
# Pfad zum GMod Server-Verzeichnis
GMOD_DIR="/path/to/your/garrysmod/"
# Pfad zu Ihrem Startskript (z.B. your_start_script.sh im Server-Hauptverzeichnis)
START_SCRIPT="/path/to/your/gmod_server/your_start_script.sh"
echo "Stopping Garry's Mod server..."
# Ersetzen Sie dies durch Ihren tatsächlichen Befehl zum Stoppen des Servers
# Beispiel: pkill -f srcds_linux oder screen -S gmod -X quit
screen -S gmod -X quit
sleep 5 # Kurze Pause, um dem Server Zeit zum Beenden zu geben
echo "Pulling latest changes from GitHub..."
cd $GMOD_DIR
git pull origin main
echo "Starting Garry's Mod server..."
# Starten Sie den Server in einem neuen Screen-Session
# Oder wie auch immer Sie Ihren Server starten
screen -dmS gmod $START_SCRIPT
echo "Update complete. Server should be restarting."
Machen Sie das Skript ausführbar: chmod +x update_and_restart.sh
Für Windows (update_and_restart.bat
):
@echo off
SET GMOD_DIR="C:pathtoyourgarrysmod"
SET START_SCRIPT="C:pathtoyourgmod_serverstart_server.bat"
echo Stopping Garry's Mod server...
REM Ersetzen Sie dies durch Ihren tatsächlichen Befehl zum Stoppen des Servers
REM Zum Beispiel, wenn Ihr Server in einem Fenster läuft, müssen Sie es manuell schließen
REM Oder verwenden Sie Tools wie NSSM, um es als Dienst zu verwalten und zu stoppen
echo Pulling latest changes from GitHub...
cd /d %GMOD_DIR%
git pull origin main
echo Starting Garry's Mod server...
start "" %START_SCRIPT%
echo Update complete. Server should be restarting.
pause
B. Zeitgesteuerte Ausführung (Cronjob / Aufgabenplanung)
Sie können diese Skripte regelmäßig ausführen lassen:
- Linux (Cronjob): Öffnen Sie
crontab -e
und fügen Sie eine Zeile hinzu, um das Skript z.B. jede Nacht um 3 Uhr auszuführen:0 3 * * * /path/to/your/update_and_restart.sh > /dev/null 2>&1
- Windows (Aufgabenplanung): Suchen Sie nach „Aufgabenplanung”, erstellen Sie eine neue Aufgabe, die Ihr
.bat
-Skript zu einem bestimmten Zeitpunkt oder Intervall ausführt.
C. Advanced: GitHub Actions / Webhooks (Continuous Deployment)
Für Profis geht es noch einen Schritt weiter: Nutzen Sie GitHub Actions oder Webhooks. Jedes Mal, wenn Sie Änderungen auf den main
-Branch Ihres GitHub-Repositorys pushen, löst dies automatisch einen Workflow aus, der einen Befehl auf Ihrem Server ausführt (z.B. über SSH), um git pull
auszuführen und den Server neu zu starten. Dies ist echtes Continuous Deployment und erfordert etwas mehr Einrichtung (z.B. einen kleinen Webserver auf Ihrem Server oder einen Runner für GitHub Actions), ist aber die ultimative Automatisierung für ein reibungsloses Garry’s Mod Server-Management.
Best Practices für das Garry’s Mod Server-Management mit Git
- Klare Commit-Nachrichten: Schreiben Sie immer aussagekräftige Nachrichten, die beschreiben, was und warum Sie etwas geändert haben.
- Regelmäßiges Committen: Committen Sie kleine, zusammenhängende Änderungen. Das macht Rollbacks einfacher.
- Branching: Für größere Änderungen oder das Testen neuer Addons sollten Sie einen separaten Branch erstellen (z.B.
feature/neues-addon
). Sobald alles funktioniert, mergen Sie es in Ihrenmain
-Branch.git checkout -b feature/neues-addon # Änderungen vornehmen git add . git commit -m "Implementiert: Neues Anti-Cheat-Addon" git push origin feature/neues-addon # Zum Testen # Wenn fertig: git checkout main git pull origin main git merge feature/neues-addon git push origin main git branch -d feature/neues-addon
- Sensible Daten schützen: Speichern Sie niemals Passwörter, API-Keys oder andere sensible Informationen direkt in Ihrem Git-Repository. Nutzen Sie Umgebungsvariablen auf Ihrem Server oder externe Konfigurationsdateien, die Sie im
.gitignore
ignorieren. - Backups: Git ist großartig für Konfigurationen und Skripte, aber es ersetzt keine vollständigen Server-Backups. Stellen Sie sicher, dass Sie weiterhin regelmäßige Backups Ihrer gesamten Serverdaten (einschließlich Datenbanken, falls vorhanden) erstellen.
Fazit: Ein unverzichtbares Werkzeug für jeden GMod Admin
Die Integration von Git und GitHub in Ihre Garry’s Mod Serververwaltung mag auf den ersten Blick komplex erscheinen, aber die Vorteile sind immens. Sie gewinnen Kontrolle, Transparenz und Effizienz. Fehler werden seltener, die Behebung ist einfacher, und die Zusammenarbeit mit anderen Admins wird zum Kinderspiel. Sie transformieren Ihre Serververwaltung von einer oft frustrierenden, manuellen Aufgabe in einen professionellen, versionierten Prozess.
Geben Sie Ihrem Admin-Dasein ein echtes Level-Up und fangen Sie noch heute an, Git und GitHub für Ihren Garry’s Mod Server zu nutzen. Sie werden sich fragen, wie Sie jemals ohne es ausgekommen sind!