my-webi.de Server-ControlPanel
Hey alle zusammen,
wir möchten euch heute etwas zeigen, an dem wir schon etwas länger arbeiten, und von dem wir denken, dass es in den nächsten Tagen einsatzbereit ist.
History
Wer mich schon etwas länger kennt, weiß, dass ich mich schon an viele Projekte gewagt habe - als Beispiel mal das GF-UCP mit DarthXela, ein verdammt kompliziertes und hässliches Server-Controlpanel ( das ist nicht alles, ich will den Text nur nicht strecken - mehr in meinem Profil ).
Das Problem der meisten Projekte war, dass es entweder für Laien recht kompliziert war, diese einzurichten, oder, dass ich es nicht verkaufen wollte. Guckt man sich in der Szene der Webinterfaces für SA:MP um, gibt es auch entweder nur halbe, schlampige oder überteuerte Panels
Da ich sowieso in Skype von mehreren Personen vollgelabert werde, sie möchten eines der Panel unbedingt kaufen, habe ich beschlossen, dass ich mich an eines setze, dass den Fokus primär auf die Bedinbarkeit des Benutzers setzt, trotzdem aber nicht auf die Features eines teuren Controlpanels verzichten muss.
Damit der Entwicklungsprozess etwas flüssiger läuft, haben ich ein paar kompetente Freunde ins Boot gezogen, die mir bei der Entwicklung helfen und evtl später mit Kundensupport bieten.
Konzept
Geplant ist, dass wir das CP für jedermann billig (kostenlos?) zugänglich auf unserem Server hosten. Sollte zB ein Sponsoring das Controlpanel selber hosten wollen, können sie gegen eine "Entwicklungshilfegebühr" eine kodierte Version ( IonCube ) bekommen, gegen eine etwas höhere "Dekodiergebühr" auch den Source - das Prinzip musste leider so gewählt werden, eine andere Art der Vorbeugung der Piraterie ohne drastische Erhöhung des Preises fanden wir leider nicht.
Features
Da das Controlpanel erst in Entwicklung ist, ist diese Liste noch nicht vollständig. Grau gefärbte Einträge sind noch nicht vollständig fertig
- Root-Server administration
- Hinzufügen von Servern
- 1-Click-Installer ( das WebI installiert alle benötigten Packete selber und richtet sie ein )
- Anderen Benutzern Zugriff auf eigene Server vergeben
- 1 Benutzer darf mehrere Server haben
- 1 Server darf mehrere Benutzer haben
- SA:MP-Server
- 1-Click-Installation auf allen Servern, auf die man Zugriff hat
- Start / Stop / Restart direkt im Webinterface
- Einstellen der kompletten server.cfg ( außer Port )
- Online Filemanager, Upload und Download
- Erstellen von FTP-Benutzern
- Ansehen der server-logs, Fehlerquellen direkt im CP ermitteln
- Version-Switch - ist der Server offline, kann die Version des Servers geändert werden
- Anderen Benutzern den Zugriff auf den Server erlauben
- 1 Benutzer darf mehrere SA:MP-Server haben
- 1 SA:MP-Server darf mehrere Benutzer haben
- Support-System
- Support-Tickets m. Email-Benachrichtigung
- Dynamisches FAQ-System
Die Liste wird sich im Laufe des Laufes verlängern
Screenshots 1
Eine kurze Pause, in der man Screenshots begutachten kann
[tabmenu]
[tab='Root-Server']
[subtab='Hinzufügen eines Root-Servers']
[subtab='Installieren und Einrichten benötigter Pakete']
[subtab='Statistiken zu einem Server']
[/tabmenu]
Ab jetzt kommt technischer Kram, wer sich das nicht antun möchte, kann also zu Screenshots 2 scrollen
Technik
Das Controlpanel ist komplett responsive, jede Seite passt sich also der aktuellen Bildschirmauflösung an. Ich kann es optimal auf dem Smartphone, dem Tablet oder dem Computer / Laptop betrachten, die Webseite zoomt mit und die Elemente schieben sich passend hin ( Bootstrap ).
Rechen- und zeitintensive Aufgaben, wie etwa das Installieren von Gameservern, wird per AJAX ( jQuery ) realisiert - der Browser sendet also im Hintergrund eine Anfrage an den Server und wartet auf eine Antwort, ohne, dass der Benutzer unter Ladezeiten der kompletten Webseite leiden muss.
Der Code ist größtenteils OOP gehalten und arbeitet mit Controllern, bei denen Seiten und Querys angefragt werden. Ein Hooken einiger Sachen ist ebenfalls möglich, dazu gleich mehr.
Aktuell findet eine Umrüstung von statischem Text zu Language Vars statt. PDO statt mysql oder mysqli.
Verbunden wird mit SSH2, die einzelnden Server sind voneinander isoliert.
Hooking
Als Abnehmer einer eigenen Kopie sollte es möglich sein, sich das Controlpanel etwas weiter an die eigenen Wünsche anzupassen. Das ist es auch, denn sowohl CSS- als auch Javascript-Dateien sind unverschlüsselt und es gibt auch die Möglichkeit, sich in den Code zu klinken. In den Code zu klinken ?
Es wird ein selbstentworfenes Pluginsystem genutzt, bei dem man eigene Klassen in einen Ordner schiebt. Das Controlpanel liest diesen Ordner aus und ruft in diesen Klassen statische Methoden auf, wenn das entsprechende Event passiert ist.
Aktuell wird das ganze noch etwas ausgebaut, damit es auch möglich ist, Sachen von den Plugins wieder auszulesen, doch das hat erst mal niedrigere Priorität.
Folgende Hooks sind geplant:
- Logins ( erfolgreich / fehlerhaft )
- Erstellen von Benutzern
- Hinzufügen von Root-Servern
- Rechtevergabe für Root-Server
- Installieren von SA:MP-Servern
- Start / Stop / Restart von SA:MP-Servern
- Einstellen von SA:MP-Servern
- Upload- oder Download von Dateien von SA:MP-Servern
- Erstellen von FTP-Benutzern
- Ändern der Version
- Parsen einer AJAX-Anfrage
- Parsen einer Seitenanfrage
- Interner Fehler
- Abfrage von Sprachvariablen
Auch wieder nur einer Liste und es müssen nicht alle Features gehookt werden, fehlen welche, ist das unserem PluginLoader auch egal.
Sprachvariablen
Eine der zeitaufwendigsten Sachen, an der wir gerade arbeiten, sind die Sprachvariablen - nicht etwa, weil es so kompliziert ist, sondern, weil es lange dauert, die kompletten "Templates" selber zu durchforsten und alle Variablen zu kopieren.
Danach wird das ControlPanel mehrere Sprachen sprechen können - Deutsch, Englisch, Russisch (?), Spanisch (?) und Französisch (?).
Gibt es Interesse an einer anderen Sprache, werden wir nach einem Dolmetscher bezahlen, der sich entweder mit einem Copyright-Eintrag oder einer geldlichen Vergütung überreden lässt
Screenshots 2
Zum Ende dann die letzten Screenshots:
[tabmenu]
[tab='SA:MP Setup']
[subtab='Formular zum Erstellen eines SAMP-Servers']
[subtab='Auszug aus dem Server-Setup']
[subtab='Vorversion des Filemanagers']
[subtab='Versionswechsel']
[/tabmenu]
Mehr werden natürlich mit weiteren Versionen folgen
Projektstart
Wann das Projekt starten wird, wissen wir noch nicht, vermuten aber in den nächsten Tagen, hängt stark davon ab, wie ihr auf uns reagiert und wie schnell wir wieder Koffein bekommen, um es zu Code zu verarbeiten
Schlusswort
Da das Controlpanel für euch Gedacht ist, wäre es schön, wenn ihr auch darauf reagiert. Wir freuen uns dabei sowohl über Lob als auch über (gerechtfertigte) Kritik.
Toll würden wir es finden, wenn ihr auch noch begründet, damit wir wissen, was genau ihr gut/schlecht findet und das Prinzip beibehalten/verwerfen können.
Sagt, was ihr denkt, fragt, was ihr wissen wollt, es gibt keine dummen Fragen, nur dumme Antworten - und letzteres nicht von mir
PS: Ein Post sagt mehr als 1.000 Likes, gilt auch für @Andrzejxy':