Boinc PHP-Gui

ydeeps

Vice Admiral Special
Mitglied seit
03.05.2017
Beiträge
553
Renomée
330
  • BOINC Pentathlon 2019
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2020
  • THOR Challenge 2020
  • BOINC Pentathlon 2021
  • BOINC Pentathlon 2022
  • BOINC Pentathlon 2023
Hallo Mitcruncher,
vor einiger Zeit hatte ich mich mal mit einem Projekt beschäftigt, womit man ein Boinc-clienten über PHP/Webserver bedienen kann. Link
Sehr alt und nur für ein Client. Ich hab mich mal daran gesetzt und versucht eine vernünftige Oberfläche zum verwalten von mehreren Clienten zu basteln. Mich hat dieses ständige umschalten im BM genervt, auf die einzelnen Clienten zugreifen zu können. Herausgekommen ist nun dieses.
img2.pngimg3.pngimg1.pngimg4.pngimg5.png

Wer denn Interesse hat, das auch nutzen zu wollen, ein Linux->Webserver sein eigen nennt, übergebe ich gerne die Dateien (PN).
(Dank an koschi für die Ideen, die ich mit einbauen konnte *great* )
 
Mega Teil, ich klicke meine ARMs nur noch damit durch, kann ich empfehlen :-)

Danke nochmal dafür :-)
 
Ohne diese Anwendung könnte ich beim Cluster gar nicht den Überblick über die ganzen Instanzen behalten.
Vorher hatte ich eine heillose Zettelwirtschaft. Jetzt kann ich bequem 200 Instanzen verwalten, und weiß genau,
was wo wann läuft oder nicht. Eine große Hilfe sind mir auch die Zählwerke in der untersten Zeile.

Darum von mir auch nochmal ein dickes Dankeschön. *greater*
 
Stony666 hat sich auch gemeldet um das mal auf ein Raspi zu installieren. Dabei sind wiedermal einige Sachen aufgefallen die nicht funktionieren, wenn man neu beginnt. Er will dazu auch eine Anleitung schreiben, echt super!
 
Hallo zusammen,
ich habe das boincphpgui von ydeeps auf einen Raspberry PI 4 unter dem aktuellen Raspberry PI OS installiert. Diese Anleitung sollte auch unter Ubuntu oder einem Ubuntu Clone oder Debian funktionieren.
Natürlich auch auf einem Raspberry PI 3...

So wird es gemacht.

1. Installation eines Raspberry PI mit Raspberry PI OS findet ihr hier beschrieben.

Danach als user pi folgende Schritte durchführen:

sudo apt update
sudo apt upgrade


Danach ist das System aktuell und sollte einmal rebootet werden.

2. Danach habe ich Apache2 installiert.

sudo apt install apache2 -y


Webserver ist jetzt installiert und läuft.

Test im Browser mit http://<ip-auf-der-der-Webserver-läuft>

Es sollte die „Apache2 Debian Default Page“ im Browser erscheinen.

3. PHP installieren
Im nächsten Schritt php und notwendige Module installieren.

sudo apt install php libapache2-mod-php php-xml -y

4. Das Datenfile des boincphpgui per PN bei ydeeps anfragen.


Zuerst nach /var/www/html wechseln

sudo wget https://<Lokation-und-Name-des-Datenfiles>

Danach sollte das ZIP Archiv im lokalen Verzeichnis vorhanden sein.
Exemplarisch ist der Name des Verzeichnisses boincphpgui für alle weiteren Schritte.
Das könnt ihr nach euren Bedürfnissen anpassen.

Erstellen eines Verzeichnisses für den Inhalt des Datenfiles und wechseln dorthin
sudo mkdir boincphpgui
cd boincphpgui

Entpacken des Archives in das neue Verzeichnis
sudo unzip ../<Datenfile>


5. Berechtigung der Dateien im Webserver Datenverzeichnis ändern.


Aus Sicherheitsgründen sollten diese Rechte gesetzt sein!

cd /var/www/html/boincphpgui
sudo find * -type d -exec chmod 755 {} +
sudo find * -type f -exec chmod 644 {} +
sudo chown -R www-data:www-data *

6. Einen virtuellen Host im Webserver anlegen

cd /etc/apache2/sites-available


Dort eine Konfigurationsdatei für das boincphpgui anlegen, z.B. boincphpgui.conf

Inhalt der Datei sieht bei mir so aus:

NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@boincpi.fritz.box
DocumentRoot /var/www/html/boincphpgui
ServerName fritz.box
ServerAlias *.fritz.box
ErrorLog /var/log/fritz.box-error_log
CustomLog /var/log/fritz.box-access_log common
</VirtualHost>


7. Virtuellen Host aktivieren und Webserver durchstarten

sudo a2ensite boincphpgui.conf
sudo service apache2 restart


Danach sollte das boincphpgui über den Browser erreichbar sein.

Im Browser aufrufen: http://<ip-auf-der-der-Webserver-läuft>/boincphpgui
Im Reiter Computer kann man jetzt seine Systeme anlegen. ;)

Aber... Die Kisten müssen natürlich für remote Kontrolle konfiguriert sein!

Noch ein paar Tipps, wenn es läuft und ihr einen/ein paar Rechner am Laufen habt:
Unter Optionen -> Web Einstellungen den Haken bei aktualisieren machen, 10 Sekunden ist OK und darunter bei Computer (wegen der Betrachtung der unterschiedlichen WU Stati) und Aufgaben (damit man sehen kann ob was hängt oder auch Fortschritt) einen Haken setzen. Wenn ihr einen neuen Rechner eintragen wollt und habt das update auf den Computer aktiv müsst ihr seeehr schnell schreiben... :D Also erst nachdem die Rechner drin sind den Haken setzen.
Unter Optionen -> Web Einstellungen den Timeout für ping auf 1 setzen, wenn die Rechner oft als nicht verbunden angezeigt werden.

Wenn ich hier einen Fehler gemacht habe, dann bitte melden und ich passe das an!
 
Zuletzt bearbeitet:
Ich hab das ganze mal mit dem USBWebServer unter Windows ausprobiert, was auch funktioniert.
Man entpackt das USBWebServer Zip-Archiv in einen Ordner seiner Wahl.

bild1.jpg
dann legt man zusätzlich ein Ordner "boincphpgui" darin an (Name kann jeder selbst festlegen) und kopiert die Dateien aus meinem Archiv hinein.
bild2.jpg
Dann startet man die usbwebserver.exe aus dem Verzeichnis darüber.

bild3.jpg
und akzeptiert die Firewallmeldungen und hat folgendes Fenster:

bild4.jpg
Wähle die Sprache aus die dir liegt, und gehe auf "Einstellungen/Settings"

bild5.jpg
und ändere das "root" zu "boincphpgui"

bild6.jpg
und "Speichern" -> "Ok".
Unter "Allgemein" -> "Localhost" auswählen

bild7.jpg
und der Webbrowser sollte sich öffnen mit
bild8.jpg
ab hier kann man seine Rechner eintragen. Der Rest sollte dann eigentlich selbsterklärend sein, man hat dann ein Boincmanager in einer Weboberfläche für mehrere Rechner oder Instanzen.

Um den Zugriff vom Webserver zum Clienten zu erlauben, kann man beim Clienten
in der cc_config.xml innerhalb der

<options>
<allow_remote_gui_rpc>1</allow_remote_gui_rpc>
...
</options>

eintragen oder in der remote_hosts.cfg die IP des Rechners hinterlegen auf dem der USBWebServer läuft.
Danach den Clienten neu starten.

Viel Glück :-)
 
Zur Info für alle, die das Ganze auf einem System laufen lassen wollen, auf dem bereits ein Pihole läuft:

PiHole verwendet standardmässig lighttpd anstatt Apache. Für diesen Fall reicht das Ausführen der Schritte 4 & 5 für die Einrichtung aus. dann fuktioniert es automatisch. Total super. *great*
 
Moin, gibts ne Möglichkeit das ganze Passwort geschützt laufen zu lassen? Wenn man jetzt von außen drauf zugreifen möchte.
 
Ja, ist auf jeden Fall machbar.
Man könnte auch eine Benutzerverwaltung einbauen wo man Rechte vergeben könnte, hm, mal sehen....
 
Zuletzt bearbeitet:
Moin, gibts ne Möglichkeit das ganze Passwort geschützt laufen zu lassen? Wenn man jetzt von außen drauf zugreifen möchte.
Müsstest du mit einer .htaccess im entsprechenden Verzeichnis lösen können, bis es die Seite selbst kann...
 
Ja das wäre super Klasse, dann kann man das Interface auch beruhigt übers Web benutzen. Und könnte man vllt. noch was machen damit sich die Spaltenbreiten verschieben/anpassen lassen?😇
 
So, Login ist jetzt in den Web-Einstellungen konfigurierbar.
websettings.jpg
Name und Password kann leer bleiben oder nur Name oder nur Password. :-)
Der Haken Login erzeugt im Menu ein Abmelde-Button (Programmbedingt erst nach nochmaligem laden der Seite).
Ab dann sollte das dann mit dem Login laufen.
Bei vergessenem Password in ./config/boinc_web_settings.json den MD5-String einfach löschen.

vorher
"passwd":"<md5-string>"
nachher
und dann nur mit Name einloggen und gegebenenfalls neu vergeben in den Web-Settings.

Link zum Download ist der gleiche geblieben.

Mit der Spaltenbreite ist das etwas schwieriger. Ich hatte auch schon die Idee das in Irgendeiner Weise mit Prozentwerten konfigurierbar oder auch ausblendbar zu machen. Das macht aber echt Aufwand den ganzen Code umzuschreiben.

Grüße Dani
 
Zuletzt bearbeitet:
Dani du bist der Beste! Vielen Dank für deine Mühe *clap* 👍
 
Läuft in einem Container auf einem Qnap TS453d Nas.
 
In den DC-Wikis, unter "Instanzen anlegen und verwalten", habe ich auf diesen Thread verlinkt.
Nun bin ich am überlegen, ob ich die Bedienungsanleitung auch nach hier verlinke, oder Eure beiden Anleitungen in die Wiki übernehme?
 
Hallo und guten Morgen ;-)
Gibt es dafür irgendwo ein Repository (Github, Sourceforge, etc.)?
 
Ich hab mal wieder bisschen weiter gebastelt. Dazugekommen ist die Anmeldung an einer Kontoverwaltung (BAM! GRCPool ...), einigen Webeinstellungen und sonstige Fehler die mir so aufgefallen sind.

Viel Spaß.

Grüße Dani
 
Ich habe gerade folgende Situation:
- ubuntup3dn ISO im Einsatz (danke Nero :-) )
- darauf Apache2 inkl. PHP installiert
- boincphpgui heruntergeladen und abgelegt inkl. notwendiger Rechte gesetzt, siehe Thread hier

Sobald ich aber nun (quasi) den "localhost" steuern möchte, lädt einfach boincphpgui nicht mehr zu Ende.
Einstellungen in remote_hosts.cfg sind sowohl die IP der VM, als auch "localhost", als auch "127.0.0.1".

Woran kann es jetzt noch liegen?
 
Schwierig von ferne das herauszufinden. Was heißt "nicht zu Ende" ? Bleibt der Browser weiß ohne Daten oder ist was zu sehen und wird scheinbar nicht fertig mit laden? Welche Boinc-Version läuft auf dem "localhost" und kommst du mit dem BM auf den Clienten?
 
Was ich hier des öfteren beobachte ist, wenn einer der sich in der Liste befindlichen Rechner nicht erreichbar ist, dann hängt der ganze php-boincgui und wird extrem zäh. Kann man da evtl. irgendwie einen Timeout einbauen der die Rechnerabfrage abbricht wenn nicht verfügbar? Wenn das überhaupt machbar ist, ich stecke da ja nicht drin.

Diese Meldung macht sich dann immer breit. Mal auch in 2-3 facher Ausführung.
Warning: socket_read(): unable to read from socket [104]: Connection reset by peer in /var/www/html/boincphpgui/gui_rpc_client.php on line 103

Edit: OK; den Timeout Reiter unter Web Einstellungen habe ich gefunden. Dieser steht auf 0,02s
 
Zuletzt bearbeitet:
Schwierig von ferne das herauszufinden. Was heißt "nicht zu Ende" ? Bleibt der Browser weiß ohne Daten oder ist was zu sehen und wird scheinbar nicht fertig mit laden? Welche Boinc-Version läuft auf dem "localhost" und kommst du mit dem BM auf den Clienten?
"wird scheinbar nicht fertig mit laden" <- das trifft es
wenn ich "irgendeinen" rechnernamen/IP eintrage, dann steht da wenigstens sofort "offline".

Evtl. habe ich mit dem Tool auch schon zu lange nicht mehr gearbeitet, irgendwie fehlt mir da auch die Möglichkeit das remote-passwort einzugeben oder?
 
@seTTam

Wenn du oben auf den Reiter "Computer" klickst, dann kommt ja die Übericht all deiner angelegten Rechner. Dort ist in der jeweiligen Zeile auch ein Eingabefeld für das Remotepasswort zu finden. Die neueste Version von PHP Gui hast du dir gezogen? Ich habe meine gestern geupdatet.
 
@Landjunge , das mit dem Timeout sollte das eigentlich genau bewirken, dass die GUI nicht zu dolle hängen bleibt. Bei mir scheint das auch recht gut zu funktionieren trotz vieler nicht erreichbarer Hosts.
Sind deine Hosts alle im lokalem Netz oder auch über Inet?
 
Zurück
Oben Unten