Auch in diesem Winter gab es wieder einiges am Computer zu tun.
Ich habe zwei Dinge in Angriff genommen, die mir schon lange unter den Nägeln brannten.

  1. Umzug der Website zu einem besseren (schnelleren) Hoster
  2. Den Cloud-Server auf eine VM umziehen

1. Migration der Website

Die Ladezeiten meiner Webseite waren indiskutabel. Ca. 5 Sekunden, bis die Startseite komplett geladen war. Auch das Arbeiten im Backend war sehr langsam - kein GZIP und HTTP2.

OK, ich benutze Joomla und ein Template, das auch nicht optimal ist. Aber ich hatte alles eingesetzt, was mit vertretbarem Aufwand machbar war. Ich habe Bilder verkleinert und Caching und Adaptive Images verwendet.
Die Serverarchitektur meines Hosters ist veraltet und nicht skalierbar.

Also habe ich mir auf Basis des Hoster-Vergleichs in der ct einige angeschaut und mich für den entschieden, der mir in Sachen Verfügbarkeit und Performance sehr gut gefällt. Nur bietet er kein DynDNS für Domains an.
Also bin ich mit meiner Cloud Domain beim alten Hoster geblieben und habe nur diese und die AJS & Matchless Website umgezogen.

Dank Akeeba-Backup war der Umzug mit nur 15 Minuten Downtime erledigt. Und der Performance-Unterschied ist enorm. Ladezeiten von deutlich unter einer Sekunde zeigen eine Beschleunigung um fast den Faktor 10.
Ich bin zufrieden!

Der nächste große Schritt wird die neue Joomla 4 Version mit neuem Template sein. Aber das ist etwas für die nächste Winterbastelei.

 

2. Der Cloud Server in der VM

Meine Nextcloud lief auf einem HPE-MicroServer mit einer Ubuntu Server Installation. Jedes Update, egal ob Nextcloud oder Ubuntu, barg das Risiko, die Cloud zu verlieren. Und das ist mir einige Male passiert. Gefolgt von einer nervigen Sitzung, um die Cloud wieder zum Laufen zu bringen.
Auch meine aktuelle Installation hatte einige latente Fehlermeldungen und Sicherheitswarnungen, die von einem fehlgeschlagenen PHP-Update herrührten.

Die Idee kam auf, die Cloud in einen Container oder eine virtuelle Maschine umzuziehen. Da mir die Containerlösung etwas fremd war, habe ich mich nach Virtualisierungslösungen umgesehen. Zuerst habe ich mir KVM auf Ubuntu Servern angeschaut. Ein Tipp von meinem Freund Jo, doch VirtualBox zu verwenden, da die Lernkurve deutlich geringer ist und sich der Erfolg schneller einstellt. Dies setzt allerdings einen Ubuntu Desktop als Host voraus.

VirtualBox auf der WHS2011

Zunächst wollte ich ausgiebig testen, wie es mit der VM funktioniert und möglichst alle Fehler im Vorfeld erkennen und beheben. Dabei wollte ich die bestehende Nextcloud-Installation nicht gefährden und die Tests unabhängig davon durchführen. Als Heimat für die Tests diente mein FSC Server mit WHS2011. Dort wurde VirtualBox installiert und eine VM mit Ubuntu Server erstellt. Dann wurde getestet, wie der SSH-Zugriff darauf funktioniert. Das war alles sehr einfach und funktionierte bei den ersten Versuchen. Auch wurde testweise der Zugriff von außen im Router freigeschaltet und geschaut, ob die VM über DynDNS erreichbar ist, was auch funktionierte. Der nächste Schritt war eine saubere Nextcloud-Installation, wieder nach der Beschreibung von C. Rieger (https://www.c-rieger.de). Nachdem auch dies erledigt war, wurde diese Installation aktiviert und als Cloud genutzt. Der HPE-Server konnte abgeschaltet werden und die VM auf WHS2011 wurde nun verwendet. Hier musste ich noch die LightsOut Erweiterung abschalten, damit die Cloud immer erreichbar war. Dies war aber nur der erste Schritt.

HPE-Server als neuer Host

Der nächste Schritt bestand darin, den HPE-Server mit einem Ubuntu-Desktop auszustatten und von außen über das interne Netzwerk darauf zuzugreifen. Dies stellte sich als die größte Hürde heraus. Ich versuchte es zuerst mit xRDP, da ich bereits mit RDP für Windows arbeite. Die Standardinstallation, wie auf den Ubuntu-Seiten beschrieben, funktionierte überhaupt nicht. Erst eine Beschreibung mit Skript von einem Belgier (http://c-nergy.be/blog/?p=14093) brachte es zum Laufen. Allerdings war es nicht möglich, über die Fernverwaltung Administrationsrechte zu erhalten. Alle Tipps dazu funktionierten einfach nicht.
Also suchte ich nach anderen Lösungen. X2Go war der nächste Kandidat, der getestet wurde. Die Installation war sehr einfach, hatte aber einen gravierenden Fehler. X2Go auf meinem Win10 Desktop PC funktionierte einwandfrei, aber mein ThinkPad 25 zeigte immer nur einen Ausschnitt des entfernten Desktops. Beim Versuch, diesen auf Vollbild zu schalten oder das Fenster zu vergrößern, wurde X2Go kommentarlos beendet. Ich bekam Guacamole von Apache als SSH-Client zum Laufen, aber der Aufwand mit einem zusätzlichen Server war mir zu groß. Daher habe ich mir nicht die Zeit genommen, den Remote-Desktop-Zugriff zu implementieren. In den nächsten Tagen googelte ich immer mal wieder nach möglichen Kandidaten oder Lösungen und fand mit X2Go eine Lösung für mein Problem. Es hatte mit der Kompatibilitätseinstellung für „Override high DPI scaling behavior“ zu tun.

Die Nextcloud VM zieht um.

Nachdem der Fernzugriff vom Desktop PC und dem ThinkPad 25 funktioniert hatte, konnten die Tests weitergehen. Ich habe eine Ubuntu Server VM exportiert und auf den HPE-Server importiert. Die Netzwerkkarte wurde korrekt implementiert, die IP-Adresse wanderte mit und der SSH-Zugriff war möglich. Nun konnte der letzte Schritt durchgeführt werden - die aktuelle Nextcloud VM wurde exportiert und auf dem HPE-Server mit Ubuntu Desktop importiert. Das Ganze dauerte keine 2 Stunden (Export/Import Zeit), dann war die VM auf dem neuen Server. Der WHS2011 konnte sich jetzt wieder mit der LightsOut-Erweiterung schlafen legen und nur bei Bedarf aus dem lokalen Netzwerk aufwachen.

Vor Updates oder Änderungen an der laufenden Nextcloud werden Snapshots erstellt, die sicherstellen, dass die Cloud lauffähig bleibt.

Neue Versionen können mit einem Clone getestet und bei Erfolg aktiviert werden.

Auch weitere Server können jetzt per VM auf dem HPE-Server installiert werden. Ideen gibt es bereits - z.B. PiHole in einer VM zu implementieren oder einen eigenen Server für den GPS Tracker zu verwenden.