Guten Abend,
heute mal eine kleine Tagesarbeit. Ein kleines Controlpanel, mit dem es möglich ist, einen M2MP oder SAMP Server (oder jede beliebige Anwendung) zu starten.
Die Serverfiles können dazu auf dem selben Server wie das Controlpanel oder aber auf einem entfernten Server liegen. Auf diesen wird dann per SSH zugegriffen (dafür wird libssh2-php benötigt). Der Login ist via Passwort oder Public-Key-File möglich.
Es können mehrere Benutzer angelegt werden, der Standardbenutzer mit vollen Rechten heißt "foo" mit selbigem Passwort, das unbedingt geändert werden sollte.
Bilder sagen mehr als tausend Worte:
https://dl.dropboxusercontent.com/u/70016420/panel/login.png
https://dl.dropboxusercontent.…20/panel/home_stopped.png
https://dl.dropboxusercontent.…20/panel/home_started.png
https://dl.dropboxusercontent.…16420/panel/user_list.png
https://dl.dropboxusercontent.…016420/panel/user_add.png
https://dl.dropboxusercontent.…16420/panel/user_edit.png
Das Panel benötigt keine Datenbank, alles wird in der Konfigurationsdatei in app/config.yml gespeichert, in der auch der Pfad und die Datei des Servers sowie die SSH-Daten, falls der Server nicht auf dem selben Server liegt, angepasst werden müssen.
Zusätzlich können die Befehle für das Starten, Stoppen und Prüfen, ob der Server läuft, angepasst werden (siehe Kommentare). %file% und %path% dienen hier als Platzhalter für den Serverpfad und die Serverdatei.
Es sind drei Beispiel-Konfigurationen enthalten, eine für M2MP, eine für SAMP und eine für CS:GO, bei denen nur den Pfad angepasst werden muss.
Download befindet sich im Anhang (panel.zip (DIESE! Bei der anderen handelt es sich um eine alte Version)). Zusätzlich benötigt werden die Abhängigkeiten, die per Composer installiert werden können. Alternativ reicht es, das vendor.tar.gz.zip-Archiv (aus Platzgründen dreifach gepackt) in das Stammverzeichnis zu entpacken.
Viel Spaß damit!
Edit: http://pastebin.com/GDsVx6W2
Edit 2: config_mta.yml hinzugefügt, Möglichkeit Screen-Sessions mit einem Präfix zu versehen hinzugefügt (-> Mehrere Instanzen eines Servertyps sind nun möglich (wenn auch nur mit getrennten Panels), Standard IsRunning-Befehl angepasst