amshove / gameserver_webinterface

Webinterface für LAN-Partys zum einfachen starten/stoppen/verwalten von Gameservern.
http://www.amshove.net/wiki/webinterfaces:gameserver
GNU General Public License v2.0
4 stars 3 forks source link

Gameserver Webinterface

Features

Das Gameserver Webinterface ist dafür gedacht, auf einer LAN-Party bestimmte Gameserver (CS, COD, ..) auf Linux-Servern zu starten. Vorteil daran ist, man kann das Webinterface für etliche Server nutzen und muss nicht für jeden Server einzeln auf die Konsole gehen. Außerdem kann die Webseite z.B. an den Turnier-Support übergeben werden, damit diese ohne Linux- und Server-Kenntnisse mit einem Knopfdruck Gameserver bereitstellen können. Deswegen auch die unterschiedlichen Rechte für die Benutzer:

Featureliste

Installation

ACHTUNG: Um die Sync-Funktion nutzen zu können, muss auf jedem Server (Quelle & Ziel) rsync installiert werden.

  1. Pakete nachinstallieren apt-get install apache2 libapache2-mod-php5 php5-mysql mysql-server mysql-client sshpass screen
  2. Daten in das htdocs Verzeichnis entpacken
  3. SSH-Keys erzeugen (Passphrase leer lassen):
    ssh-keygen -f /etc/apache2/ssh_key_gswi
    chown www-data:www-data /etc/apache2/ssh_key_gswi*
  4. In der config.inc.php die MySQL-Daten anpassen (alles andere kann bleiben)
  5. DB-Struktur einspielen: DB.sql
    mysql -u mysql_user -p mysql_db < DB.sql
  6. Seite aufrufen

    User: superadmin
    PW: default

Anbindung an dotlan Turniersystem

  1. Auf dem dotlan-Server in der /etc/mysql/my.cnf einstellen, dass der Server auch auf externe IPs lauscht (bind-address)
  2. Auf dem dotlan-Server einen MySQL-User anlegen: GRANT USAGE ON *.* TO 'gameserver_wi'@'%' IDENTIFIED BY '<HIER EIN SICHERES PW ...>';
    GRANT SELECT ON `dotlan`.`t_teilnehmer` TO 'gameserver_wi'@'%';
    GRANT SELECT ON `dotlan`.`t_turnier` TO 'gameserver_wi'@'%';
    GRANT SELECT (nick, id) ON `dotlan`.`user` TO 'gameserver_wi'@'%';
    GRANT SELECT ON `dotlan`.`events` TO 'gameserver_wi'@'%';
    GRANT SELECT ON `dotlan`.`t_teilnehmer_part` TO 'gameserver_wi'@'%';
    GRANT SELECT ON `dotlan`.`t_contest` TO 'gameserver_wi'@'%';
  3. Auf dem Gameserver Webinterface Server in der config.inc.php die MySQL-Daten von dem dotlan-Server eintragen
    WICHTIG: Nutzt den oben eingerichteten User mit den wenigen Rechten und mit gutem Passwort!!
  4. Auf dem Gameserver Webinterface Server in der config.inc.php ein sichere SOAP-PW eintragen ($soap_user und $soap_pw)
  5. Das Verzeichnis "turnier_server" auf den dotlan-Server in das dotlan-Verzeichnis verschieben und in der index.php das gleiche SOAP-PW eintragen ($soap_user und $soap_pw)
  6. Die Dotlan-Templates um einen Button erweitern (html/templates/tpl_name/turnier/turnier_contest_single.tpl und turnier_contest_team.tpl):
    <tr>
    <td class="msghead3" colspan="2" style="padding: 2px 6px;">Contest-Server:</td>
    </tr>
    <tr>
    <td class="msgrow1" colspan="2" style="padding: 2px 6px;">
    <div align="center">
    <input type="button" value="Contest-Server starten" onclick="location.href='/turnier_server/?tcid={$tcid}&round={$round}';" style="font-weight: bold;"/>
    </div>
    </td>
    </tr>
  7. Auf dem Gameserver Webinterface Server einen Cronjob in die /etc/crontab eintragen:
    */1 * * * * www-data /usr/bin/php /var/www/cronjob_turniere.php > /dev/null 2>&1

Einrichtung

Server einrichten

Games einrichten

Turniere einrichten

Die Sache mit den Scores