Après avoir détaillé dans l’article suivant la création d’un serveur Counter-Strike: Source avec SteamCMD sous Linux, voici la même méthode appliquée à la création d’un serveur Garry’s Mod dédié.
Quelques différences avec Counter-Strike: Source, notamment dans la mise en oeuvre de mods sur le serveur via le Steam Workshop.
Nous allons voir ensemble toutes les étapes d’installation d’un serveur Garry’s Mod sous Linux Ubuntu 13.04
Serveur Garry’s Mod sous Linux
Installation et mise à jour de Garry’s Mod via le mode console SteamCMD (voir plus bas l’installation et la MAJ de Garry’s Mod en mode console Linux) :
- Mettez à jour le système :
sudo apt-get update sudo apt-get upgrade
- Créez le dossier steamcmd sur votre Bureau :
mkdir steamcmd
- Créez le groupe et l’utilisateur steam avec son mot de passe :
sudo adduser --home /home/votre_login/Bureau/steamcmd --shell /bin/bash steam
- Changez le propriétaire du dossier steamcmd :
sudo chown -R steam:steam steamcmd
- Déconnectez-vous de votre compte et connectez vous avec l’utilisateur steam. Installez SteamCMD Update Tool :
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
- Extraire le contenu :
tar -xvzf steamcmd_linux.tar.gz
- Rendre le fichier exécutable :
chmod +x steamcmd.sh
- Lancez SteamCMD :
./steamcmd.sh
- Au prompt Steam, loguez-vous anonymement :
login anonymous
- Indiquez le répertoire d’installation :
force_install_dir ./gmod/
- Installez et mettez à jour le jeu :
app_update 4020 validate
- Une fois que c’est terminé, quittez proprement SteamCMD :
quit
- Si ce n’est pas déjà fait, installez Screen qui servira dans le script de lancement à se déconnecter du serveur Linux tout en laissant le serveur Garry’s Mod actif :
sudo apt-get install screen
#!/bin/sh sleep 1 screen -A -m -d -S gmod ./srcds_run -steam_dir steamcmd/ -steamcmd_script steamcmd/steamcmd.sh -console -game garrysmod +map gm_construct -maxplayers 20 -ip 0.0.0.0 -port 27015 -tickrate 66 -pingboost 2
- La commande screen permet de conserver le processus actif même après s’être déconnecté du serveur Linux
- Les options de la ligne de commande du programme srcds de SteamCMD sont expliquées sur le site de Valve
- Lui donner les droits d’exécution :
chmod +x serveur_gmod.sh
- Le lancer :
sh serveur_gmod.sh
- Votre serveur démarre et vos clients peuvent se connecter ! Pour lister les Screens actifs :
screen -ls
- pour revenir dans le Screen :
screen -r gmod
- Pour quitter le Screen : touches CTRL + A puis D
- Pour killer le Screen : touches CTRL + A puis K
Le fichier de configuration important du serveur est le suivant :
- server.cfg qui se trouve dans le dossier /steamcmd/gmod/garrysmod/cfg/. Il contient des infos importantes. C’est tout d’abord dans ce fichier que vous définissez les mots de passe rcon (remote console) et du serveur si vous ne souhaitez pas le rendre public. Un exemple de ce fichier est disponible ici
Il existe également des mods que vous pouvez installer sur votre serveur ou sur votre client :
- Des mods à installer sur votre serveur de façon “classique” dans le dossier /steamcmd/gmod/garrysmod/addons/ comme les mods d’administration ULIB/ULX
- Subversion (abrégé SVN) est un système de gestion de versions qui est aussi utilisé pour les mods clients de Garry’s Mod :
- Installez le logiciel TortoiseSVN
- Le guide suivant vous explique en détail comment utiliser les SVN Garry’s Mod
- Une liste de SVN Garry’s Mod
- La version SVN des mods d’administration Garry’s Mod ULIB/ULX
- Le Steam Workshop est une nouveauté Steam très intéressante, rapide à mettre en œuvre et qui offre les mods à tous puisque qu’ils sont automatiquement installés par Steam sur votre serveur. Il suffit simplement de les sélectionner dans le Steam Workshop Garry’s Mod et de les installer dans votre propre Workshop : plus d’info dans le tutorial suivant. Il faudra simplement déclarer votre Workshop dans le script de lancement de Garry’s Mod qui sera alors le suivant :
#!/bin/sh sleep 1 screen -A -m -d -S gmod ./srcds_run -steam_dir steamcmd/ -steamcmd_script steamcmd/steamcmd.sh -console -game garrysmod +map gm_construct -maxplayers 20 -ip 0.0.0.0 -port 27015 -tickrate 66 -pingboost 2 +host_workshop_collection INSERER_VOTRE_ID_WORKSHOP -authkey INSERER_VOTRE_AUTHKEY
Un logiciel sous Windows permet de gérer votre serveur Garry’s Mod mais aussi les plugins, c’est HLSW. Il suffit de s’enregistrer gratuitement sur le site Web de HLSW pour avoir accès à l’ensemble des fonctionnalités. Ca devient par exemple très facile de kicker un ou plusieurs joueurs en pleine partie 🙂
Installation et MAJ de Garry’s Mod en mode console Linux
Vous pouvez installer et mettre à jour Garry’s Mod en mode console SteamCMD comme indiqué plus haut ou passer plus directement par les commandes suivantes depuis la console Linux :
Installation Garry’s Mod :
- Reprendre les commandes détaillées en début d’article, la méthode change une fois que vous avez rendu le fichier d’installation exécutable :
chmod +x steamcmd.sh
- Installez le jeu :
./steamcmd.sh +login anonymous +force_install_dir ./gmod/ +app_update 4020 validate +quit
- Installez Screen qui servira dans le script de lancement à se déconnecter du serveur Linux tout en laissant le serveur Garry’s Mod actif (voir plus haut pour le script) :
sudo apt-get install screen
Mise à jour Garry’s Mod :
- Prenez soin au préalable de stopper le serveur Garry’s Mod via les commandes “Screen” (pour plus de détail, voir plus haut)
- Rendez-vous dans le dossier /steamcmd/
- Mettez à jour le jeu :
./steamcmd.sh +login anonymous +force_install_dir ./gmod/ +app_update 4020 validate +quit
Sécurité – pare-feu
Pensez à sécuriser vos accès Internet via le pare-feu de votre routeur ou de votre Box + le pare-feu Ubuntu en autorisant les port TCP/UDP de destination utilisés par SteamCMD.
Ne pas oublier de rediriger les ports de destination vers le serveur Linux via le menu adéquat de votre routeur ou de votre Box.
Les ports de destination suivants sont utilisés par le client et le serveur SteamCMD :
- Ports UDP 27000 à 27015 (Game client traffic)
- Ports UDP 27015 à 27030 (Typically Matchmaking and HLTV)
- Ports TCP 27014 à 27050 (Steam downloads)
- Port UDP 4380
- Port TCP 27015 (SRCDS Rcon port)
sudo ufw allow 27000:27030/udp sudo ufw allow 27014:27050/tcp sudo ufw allow 4380/udp