LGSL v6.2.1 sur VestaCP — monitorer ses serveurs CS 1.6 et TeamSpeak 3 en temps réel

Published by David on






Installer LGSL v6.2.1 sur VestaCP — 2manygames.fr


Installer LGSL v6.2.1 sur VestaCP

Guide complet pour 2manygames.fr — serveur 141.95.154.67 — Mise a jour : fevrier 2026

1. Contexte

LGSL (Live Game Server List) est un script PHP open-source qui interroge des serveurs de jeux en temps reel et affiche leur statut (en ligne / hors ligne), le nombre de joueurs connectes, la carte en cours, le ping, etc. La version 6.2.1 est disponible sur GitHub.

Dans le cadre de 2manygames.fr, LGSL sera utilise pour surveiller :

  • 8 serveurs Counter-Strike 1.6 (protocol halflife) sur les ports 27015 a 27022
  • 1 serveur TeamSpeak 3 (protocol ts3) sur le port 9987 (query : 10011)

Le serveur EmuLinker / Kaillera n’est pas supporte par LGSL. Une solution de contournement legere en PHP est proposee en section 8.

LGSL s’installe cote serveur web (Apache + PHP) et interroge les serveurs de jeux via des sockets UDP/TCP. Il ne necessite pas d’agent installe sur les serveurs de jeux.

2. Prerequis

Composant Requis Remarque
Serveur web Apache 2.4+ Gere par VestaCP
PHP 7.4 ou 8.x Avec extensions sockets et prise en charge UDP
MySQL / MariaDB 5.6+ Pour stocker la liste des serveurs
Acces SSH Oui Port 38592 sur 141.95.154.67
VestaCP Installe Pour creer la base de donnees et gerer les vhosts

Verifier les extensions PHP requises

Connectez-vous en SSH et executez :

Les extensions sockets, pdo_mysql (ou mysqli) et mbstring doivent apparaitre. Si sockets est absent :

LGSL utilise fsockopen() et les sockets UDP directement. La fonction allow_url_fopen doit etre activee dans php.ini (valeur par defaut : On).

3. Creer la base de donnees MySQL via VestaCP

  1. Connectez-vous au panel VestaCP : https://141.95.154.67:8083
  2. Cliquez sur l’onglet DB dans la barre superieure.
  3. Cliquez sur le bouton vert Add Database.
  4. Remplissez le formulaire :
Champ Valeur recommandee
Database lgsl (VestaCP prefixe automatiquement : admin_lgsl)
User lgsl (prefixe : admin_lgsl)
Password Choisissez un mot de passe fort
Host localhost
Charset utf8mb4

Cliquez sur Add. VestaCP cree la base et l’utilisateur. Notez les informations :

  • Nom de la base : admin_lgsl
  • Utilisateur : admin_lgsl
  • Mot de passe : (celui que vous avez saisi)
  • Host : localhost
VestaCP prefixe toujours le nom de la base et de l’utilisateur avec le nom du compte (ici admin_). Tenez-en compte lors de la configuration de LGSL.

4. Telecharger et installer LGSL

4.1 Connexion SSH

4.2 Creer le dossier cible

4.3 Telecharger LGSL v6.2.1

Si wget n’est pas disponible, utilisez curl -L -o lgsl-6.2.1.zip https://github.com/tltneon/lgsl/archive/refs/tags/v6.2.1.zip

4.4 Extraire et copier les fichiers

4.5 Verifier les permissions

4.6 Verifier la structure

Vous devriez voir, entre autres : index.php, install.php, admin.php, lgsl_config.php, lgsl/ (dossier du moteur), themes/.


5. Configuration initiale via install.php

Ouvrez votre navigateur et accedez a :

Le script d’installation vous demande les informations de connexion MySQL. Remplissez le formulaire :

Champ Valeur
Database Host localhost
Database Name admin_lgsl
Database User admin_lgsl
Database Password (votre mot de passe)
Table Prefix lgsl_ (valeur par defaut, laisser tel quel)
Admin Password Choisissez un mot de passe pour admin.php

Cliquez sur Install. LGSL cree les tables dans la base de donnees et genere le fichier lgsl_config.php.

Si l’installation echoue avec une erreur de connexion MySQL, verifiez que le nom de la base et de l’utilisateur comportent bien le prefixe admin_ ajoute par VestaCP.

Verification manuelle du fichier de configuration

Apres l’installation, vous pouvez inspecter le fichier genere :

Il doit contenir les constantes DB_HOST, DB_NAME, DB_USER, DB_PASS correctement renseignees.


6. Supprimer install.php (securite obligatoire)

Laissez install.php accessible apres l’installation est un risque de securite majeur. N’importe qui pourrait reinitialiser votre configuration. Supprimez-le immediatement apres l’installation.

Verifiez que la suppression est effective :


7. Ajouter les serveurs via admin.php

Accedez a l’interface d’administration :

Connectez-vous avec le mot de passe admin choisi lors de l’installation.

7.1 Tableau de configuration des serveurs

Ajoutez chaque serveur via Add Server en utilisant les parametres suivants :

# Nom Protocole IP / Host Port jeu Port query
1 CS 1.6 Deathmatch halflife 141.95.154.67 27015 27015
2 CS 1.6 GunGame halflife 141.95.154.67 27016 27016
3 CS 1.6 Deathrun halflife 141.95.154.67 27017 27017
4 CS 1.6 HNS halflife 141.95.154.67 27018 27018
5 CS 1.6 Kreedz halflife 141.95.154.67 27019 27019
6 CS 1.6 WAR halflife 141.95.154.67 27020 27020
7 CS 1.6 Retro (CS 1.0) halflife 141.95.154.67 27021 27021
8 CS 1.6 Surf halflife 141.95.154.67 27022 27022
9 TeamSpeak 3 ts3 141.95.154.67 9987 10011
Pour les serveurs Counter-Strike 1.6, le protocole halflife utilise le protocole Valve A2S (UDP). Le port query est generalement identique au port de jeu pour CS 1.6.

7.2 Particularites TeamSpeak 3

Pour TS3, LGSL a besoin d’acceder au port ServerQuery (10011) en TCP. Ce port est distinct du port vocal (9987 UDP). Dans le formulaire d’ajout :

  • Game Port : 9987 (port vocal TS3)
  • Query Port : 10011 (port ServerQuery TCP)
  • Protocol : ts3

Le port 10011 doit etre joignable depuis PHP. Voir la section 10 pour le cas particulier d’un TS3 tourne dans Docker.


8. EmuLinker / Kaillera — serveur non supporte

LGSL ne supporte pas le protocole EmuLinker / Kaillera. Il n’existe pas de plugin officiel pour ce protocole dans LGSL v6.x.

Solution de contournement : script PHP de verification UDP

Une approche simple consiste a creer un petit script PHP qui tente d’ouvrir une connexion UDP vers le port Kaillera et affiche En ligne ou Hors ligne selon la reponse (ou l’absence de reponse).

Creez le fichier /home/admin/web/2manygames.fr/public_html/lgsl/kaillera_status.php :

Cette detection est approximative. Kaillera/EmuLinker peut ne pas repondre au paquet minimal envoye, ce qui donnerait un faux « Hors ligne » meme si le serveur tourne. Pour une detection fiable, il faudrait implementer le protocole complet d’handshake Kaillera, ce qui depasse le cadre de LGSL.

Vous pouvez integrer ce statut dans votre page d’accueil en faisant un appel AJAX vers /lgsl/kaillera_status.php et en affichant le resultat a cote des serveurs LGSL.


9. Personnalisation

9.1 Changer la langue en francais

Editez le fichier lgsl_config.php et cherchez la ligne de configuration de la langue :

Modifiez ou ajoutez :

Verifiez que le fichier de langue francais existe :

9.2 Changer le theme

Les themes sont dans le dossier themes/. Pour appliquer un theme, editez lgsl_config.php :

9.3 CSS personnalise

Pour personnaliser l’apparence sans modifier les fichiers du theme (afin de faciliter les mises a jour), creez un fichier CSS personnalise dans le dossier du theme actif :

Puis incluez-le dans le template du theme (themes/default/header.php ou equivalent) :

9.4 Intervalle de rafraichissement

Dans lgsl_config.php, l’intervalle de cache (en secondes) entre deux interrogations des serveurs :


10. Probleme courant : port ServerQuery TS3 (10011)

Contexte du probleme

Si votre TeamSpeak 3 tourne dans un conteneur Docker, le fichier docker-compose.yml lie probablement le port ServerQuery 10011 uniquement a l’interface locale du conteneur ou a 127.0.0.1 de l’hote :

Pourquoi LGSL peut quand meme fonctionner

Dans votre configuration, Apache et PHP s’executent directement sur l’hote (pas dans un conteneur). Le PHP de LGSL peut donc atteindre 127.0.0.1:10011 car ce port est expose sur l’interface loopback de l’hote, et PHP tourne sur ce meme hote.

Resume : PHP (hote) –> 127.0.0.1:10011 (hote) –> conteneur Docker TS3. Cette chaine fonctionne car PHP est sur l’hote, pas dans Docker.

Si LGSL etait lui aussi dans Docker

Si LGSL tournait dans son propre conteneur Docker, il ne pourrait PAS atteindre 127.0.0.1:10011 de l’hote via cette adresse. Il faudrait alors :

  • Soit lier le port TS3 a 0.0.0.0:10011 dans le docker-compose (expose publiquement)
  • Soit placer les deux conteneurs sur le meme reseau Docker et utiliser le nom du service TS3 comme hostname
  • Soit utiliser l’IP interne du reseau Docker bridge (172.17.0.1 par defaut)

Verifier que le port 10011 est accessible depuis PHP

Ou via PHP en ligne de commande :

Si le port 10011 n’est pas accessible

Modifiez votre docker-compose.yml pour exposer le port sur toutes les interfaces :

Puis relancez le conteneur :

Exposer le port 10011 publiquement (0.0.0.0) permet a n’importe qui de se connecter au ServerQuery TS3. Assurez-vous que le compte ServerQuery admin a un mot de passe fort, ou utilisez un pare-feu (iptables/ufw) pour n’autoriser que localhost.

11. Verification du fonctionnement

11.1 Verifier l’affichage de la liste

Ouvrez dans un navigateur :

Vous devriez voir la liste des serveurs avec leur statut. Les serveurs allumes affichent le nombre de joueurs et la carte.

11.2 Tester l’interrogation d’un serveur CS 1.6 manuellement

11.3 Verifier les logs PHP / Apache

11.4 Tester depuis PHP

Creez un script de test temporaire /home/admin/web/2manygames.fr/public_html/lgsl/test_query.php :

Accedez a http://2manygames.fr/lgsl/test_query.php puis supprimez-le apres le test :

11.5 Verifier les tables MySQL

Cela liste tous les serveurs enregistres avec leur dernier statut connu.


12. Securite

12.1 Proteger admin.php par .htaccess

La methode la plus simple est de restreindre l’acces a admin.php par IP ou par authentification HTTP :

Ajoutez (en remplacant VOTRE_IP par votre adresse IP publique) :

Ou par authentification HTTP basique :

12.2 Mot de passe admin fort

Le mot de passe admin de LGSL est stocke dans lgsl_config.php. Si vous souhaitez le changer sans repasser par install.php :

Copiez le hash genere et remplacez la valeur LGSL_ADMIN_PASSWORD dans lgsl_config.php.

12.3 Permissions fichiers

12.4 Mises a jour LGSL

Surveillez les nouvelles versions sur github.com/tltneon/lgsl/releases. Pour mettre a jour :

  1. Sauvegardez lgsl_config.php et le dossier themes/ (vos personnalisations)
  2. Telechargez la nouvelle version et extrayez-la
  3. Remplacez les fichiers du dossier LGSL (sauf lgsl_config.php et vos themes personnalises)
  4. Verifiez si la structure de la base de donnees a change (voir le fichier CHANGELOG ou install.php de la nouvelle version)

12.5 Pare-feu et ports exposes

Verifiez quels ports sont actuellement exposes sur le serveur :


Recapitulatif des URLs

Page URL Remarque
Liste des serveurs (publique) http://2manygames.fr/lgsl/ Page principale
Administration http://2manygames.fr/lgsl/admin.php Proteger par IP ou .htaccess
Installation http://2manygames.fr/lgsl/install.php A supprimer apres installation
Panel VestaCP https://141.95.154.67:8083 Gestion base de donnees
Statut Kaillera http://2manygames.fr/lgsl/kaillera_status.php Script personnalise (optionnel)

Guide redige pour 2manygames.fr — LGSL v6.2.1 — VestaCP — Serveur 141.95.154.67 — Fevrier 2026

Source LGSL : github.com/tltneon/lgsl



Catégories : Non classé

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *