Modifier les scripts du panel

En utilisant le panel vous aurez très certainement remarqué qu'on utilise des scripts bash pour faciliter la gestion des serveurs. Selon les cas d'utilisation, ces scripts ne seront peut être pas suffisament adapté à votre situation. Une première solution, assez évidente, peut être utilisé mais elle n'est pas dénué d'incovénient. Nous allons ici voir une seconde solution, celle que nous vous conseillons d'utiliser.

La première solution est de remplacer directement les scripts situés dans les dossiers de vos serveurs par vos propres scripts. Or cette solution présente un problème puisque le panel régénère ces scripts à chaque fois qu'il en a besoin (si vous modifiez la configuration de votre serveur, par exemple).

Une autre solution consiste à remplacer (on dit "surcharger") les templates de script utilisé par le panel par vos propres templates. Le problème posé par la première solution sera alors corrigé : le panel n'utilisera plus que vos templates pour (re)générer vos scripts. Ainsi tous vos serveurs Steam (si vous avez surchargé le template Steam), utiliseront le même script. Vous n'aurez plus besoin d'uploader votre script sur tous vos serveurs, le panel s'en chargera.

Attention tout de même, d'une version à l'autre du panel des fonctionnalités peuvent être ajoutés, les scripts modifiés, etc ... Cela risque de compliquer votre processus de mise à jour du panel. En effet, il vous faudra alors vérifier les mises à jour effectués sur les templates originaux et éventuellement répercutés vos modification sur vos propres templates. Il y a également le risque que vos surcharges soient supprimés lorsque vous faites une mise à jour du panel depuis la v0.5. Second point d'attention : il est très vivement conseillé de repartir des templates originaux et d'y ajouter vos propres modifications, ou vous risquez de modifier la structure du script et ainsi faire face à certains bugs.

Template de script

Chaque script bash utilisé par le panel est stocké dans le code source du panel, autrement dit dans le dossier src/. Le panel est découpé en plusieurs composants, dont un pour Steam (dans le dossier src/DP/GameServer/SteamServerBundle/) et un pour Minecraft (dans le dossier src/DP/GameServer/MinecraftServerBundle/). Celui-ci est stocké sous la forme d'un template, permettant ainsi de générer un script "personalisé" pour chaque serveur. Chaque template a donc accès à quelques variables contenant les informations sur le serveur.

Lorsque vous souhaitez ajouter votre propre template, nous vous conseillons très vivement de copier le template existant et ensuite de le modifier à votre guise. Ainsi vous serez sur de réutiliser la même structure.

Les templates sont stockés dans les dossiers Resources/views/sh/ des différents composants :

Surcharger les templates

Comme dit précédemment, commencez par copier le fichier original vers le dossier contenant les surcharge. Par exemple pour surcharger le script minecraft.sh, il vous faudra commencer par copier le fichier src/DP/GameServer/MinecraftServerBundle/Resources/views/sh/minecraft.sh vers le dossier app/Resources/DP/GameServer/MinecraftServerBundle/views/sh/minecraft.sh.

Vous pourrez alors faire vos modifications sur le template. Mais attention, le panel n'utilisera pas ce nouveau script tant que vous n'aurez pas vidé le cache du panel. Pour ce faire il vous faudra exécuter cette commande (à la racine du panel) : php app/console cache:clear --no-warmup --env=prod.

Une fois vos modifications faites et le cache vidé, vous pourrez régénérer la configuration des serveurs préexistant en passant par le lien présent sur les pages des serveurs. Votre template sera alors utilisé pour générer le script de votre serveur.