Skip to content

Instantly share code, notes, and snippets.

@DrCR77
Last active January 31, 2021 17:10
Show Gist options
  • Save DrCR77/469fe9c6d9d4f495603b808ef8a213cc to your computer and use it in GitHub Desktop.
Save DrCR77/469fe9c6d9d4f495603b808ef8a213cc to your computer and use it in GitHub Desktop.
Volkszaehler bei Strato installieren

Volkszaehler bei Strato installieren

Die folgende Anleitung orientiert sich im Wesentlichen an: https://wiki.volkszaehler.org/howto/installation_auf_webhoster_2

Hier gehe ich lediglich noch auf die Besonderheiten bei Strato ein und passe ein paar Schritte an.

Das Ganze gibt es auch als pdf zum Herunterladen.

Vorbereitung lokal

Am besten setzt man ein brandneues VZ-Image von https://wiki.volkszaehler.org/howto/raspberry_pi_image auf einer separaten SD-Karte und testet dieses auf einem Raspberry Pi im lokalen Netzwerk.

ACHTUNG: diese Version funktioniert noch nicht reibungslos mit PHP 7.4. Daher ist es besser unter Ubuntu die middelware per install-script zu installieren: https://wiki.volkszaehler.org/software/middleware/installation

Wenn dieses Standardsetup soweit läuft, kann man die VZ-Datenbank, die middleware und das Frontend auch bei Strato hosten. Ggf. bereits vorhandene Daten brauchen noch nicht überspielt werden.

Vorbereitung bei Strato

  1. ein Subdomain im eigenen Strato-Paket anlegen, z.B. "vz.domain.tld"
  2. eine Datenbank im Paket anlegen
  • den Datenbanknamen "DBxxxxxxx"
  • Benutzernamen "Uxxxxxxx" und
  • das selbst gewählte PASSWORD notieren

im Terminal kann man den server nun mit

ssh subdomain@ssh.strato.de

sowie dem Paktemasterpasswort erreichen.

Falls mehrere unterschiedliche Volkszaehlerinstanzen auf dem gleichen webspace über unterschiedlice Subdomains laufen sollen, empfiehlt es sich, jeweils ein eigenes Verzeichnis zu erstellen:

mkdir vz

Überspielen der Daten

Nun überträgt man am besten mit FileZilla das gesamte Verzeichnis volkszaehler.org vom RPI auf den eigenen Computer und von dort auf den webspace bei Strato. Der Einfachheit halber habe ich as ".org" dabei auf dem Strato-Server weggelassen und

In der Domainverwaltung von Strato setzt man nun eine Weiterleitung der erstellten Subdomain auf das Verzeichnis

~/vz/volkszaehler/htdocs

Nun sollte beim Aufruf der subdomain.domain.tld bereits das VZ-Frontend noch mit Fehlermeldungen erscheinen.

Dateianpassungen

Als nächstes müssen noch folgende Dateien angepasst werden.

nano ~/vz/volkszaehler/htdocs/js/options.js

dort die Zeile mit "url" suchen und dort "middleware.php" verankern:

	middleware: [
		{
			title: 'Local (default)',
	//		url: '',
			url: 'middleware.php',
	//		url: 'api',
	//		live: 8082					// NOTE: live updates require
       ...

die mit "//" auskommentierten Zeilen können natürlich weggelassen werden. In

nano ~/vz/volkszaehler/etc/config.yaml

müssen die Standardangaben der MySQL-Datenbank host, Benutzername, Datenbankname und Passwort durch die vorgegebenen Werte von Strato (siehe oben) ersetzt werden:

host: rdbms.strato.de
user: Uxxxxxxx
password: xxxx
dbname: DBxxxxxxx
...
admin:
    user: Uxxxxxxx
    password: xxxxx 

MySQL-Datenbank übertragen

Falls man bereits eine funktionierende VZ-Instanz auf dem RPI laufen hat, kann man die Datenbank von diesem RPI zunächst z.B. mit dem Befehl

mysqldump -uvz -pdemo volkszaehler --single-transaction |  cat > ~/vzsicherung.sql

sichern und die Datei vzsicherung.sql mit FileZilla auf das Hauptverzeichnis bei Strato übertragen (also ~ und nicht ~/vz).

Nun kann man sich wieder per ssh bei Strato einloggen und das backup in die Strato-MySQL-Datenbank übertragen.

mysql -h rdbms -uUxxxxxxx -pPASSWORD DBxxxxxxx < vzsicherung.sql

Nun sollten die Datenbank und die enthaltenen Kanäle bereits über das Frontend im subdomain-Aufruf erreichbar sein.

Spätere backups usw. kann man übrigens nach dieser Anleitung anlegen und übertragen: https://www.strato.de/faq/hosting/so-einfach-koennen-sie-per-ssh-auf-ein-backup-ihrer-mysql-datenbank-zugreifen/

Anpassung im lokalen vzlogger

Nun muss nur noch der lokal betriebene vzlogger auf auf die neue Subdomain umgeleitet werden, damit die Daten auch in die Strato-Datenbank geschrieben werden. Dazu auf dem lokalen RPI mit

sudo nano /etc/vzlogger.conf

in der Zeile "middleware": "http://localhost/middleware.php",

"localhost" gegen die eigene Subdomain austauschen

"middleware": "http://vz.domain.tld/middleware.php",

Nun noch den vzlogger neu starten mit:

sudo systemctl stop vzlogger
sudo systemctl start vzlogger

Falls man den vzclient (sudo nano /etc/vzclient.conf) ggf. durch eigene Scripte direkt anspricht (wie bei mir mit einem Wetterdatensensor), sollte auch hier noch die der localhost auf die neue url geändert werden. Bitte aufpassen, dass keine end-of-line-Fehler in der Datei entstehen.

Datenaggregation

Soll auch das aggregate binary auf dem Webserver ausgeführt werden (z.B. via cronjob), müssen noch folgende 2 Zeilen in diese Datei auskommentiert werden:

nano ~/vz/volkszaehler/lib/Util/ConsoleApplication.php

//              if (!self::isConsole())  
//                      throw new \Exception('This tool can only be run locally.');  

Nun lässt sich die Aggregation per ssh oder cronjob mit dem gewohnten Befehl starten:

php aggregate run (ggf. uuid) -m full -l day -l hour -l minute
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment