Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeIntux

Nextcloud entfernt Open AI aus Picker

08. Mai 2024 um 04:00

Seit Nextcloud Hub 8 (29.0.0) ist ChatGPT nicht mehr über den Picker der Nextcloud zu erreichen. Dieser Umstand kann Nerven kosten, wenn OpenAI’s KI-Dienst hin und wieder genutzt wird und man plötzlich feststellt, dass dieser nicht mehr funktioniert. So ging es mir, als ich den in die Nextcloud integrierten KI-Assistenten einem kleinen Publikum vorstellen wollte. Da das neueste Release 29.0.0 noch recht frisch ist, findet man derzeit wenig Hinweise, wie man ChatGPT weiter nutzen kann.

Einrichtung

Dies hat mich nun dazu bewogen einen kleinen Artikel hierzu zu schreiben. Grundvoraussetzung ist jedoch ein Account beim US-amerikanischen Softwareunternehmen OpenAI bei dem ein API-Key erstellt wird.

Des weiteren müssen in der Nextcloud die Apps OpenAI and LocalAI integration und Nextcloud Assistant hinzugefügt und aktiviert werden.

Nextcloud - Apps OpenAI and LocalAI integration und Nextcloud Assistant
Nextcloud – OpenAI and LocalAI integration und Nextcloud Assistant

Im Anschluss wird der API-Key, wie im Screenshot zu sehen ist, in der App OpenAI and LocalAI integration hinterlegt.

Nextcloud - App OpenAI and LocalAI integration (API Key)
Nextcloud – OpenAI and LocalAI integration (API Key)

Nun kann man über den neuen Nextcloud-Assistent das KI-Tool nutzen.

Nextcloud - Nextcloud-Assistent
Nextcloud – Nextcloud-Assistent
Nextcloud - Nextcloud-Assistent (Eingabe)
Nextcloud – Nextcloud-Assistent
Nextcloud - Nextcloud-Assistent (Ausgabe)
Nextcloud – Nextcloud-Assistent

Viel Spaß!

Raspberry Pi OS Bullseye -> Bookworm

30. April 2024 um 04:00

Da ich einiges an Zeit in meine auf dem Raspberry Pi 4 laufende Nextcloud investiert habe, wäre es schade, für das aktuelle Raspberry Pi OS 12, alles noch einmal aufsetzen und konfigurieren zu müssen. Obwohl die Entwickler des Betriebssystems von einem Upgrade generell abraten, habe ich mich auf die Suche nach einer guten und funktionierenden Anleitung gemacht und bin auf den vielversprechenden Artikel „Raspberry Pi OS – Update von Bullseye (11) auf Bookworm (12)“ von Sascha Syring gestoßen.

Um das Ganze ausgiebig zu testen, habe ich das Upgrade zuerst auf einem Raspberry Pi 4 durchgeführt, auf dem ein Mumble-Server läuft, den unsere Community produktiv zum Erfahrungsaustausch nutzt. Nachdem dies alles problemlos funktioniert hat, habe ich mich an meinen Nextcloud-RasPi gewagt. Was es weiter zu beachten gab, darauf gehe ich am Ende des Artikels noch ein.

Systemupgrade

Bevor es los geht muss das System auf den aktuellsten Stand unter Raspberry Pi OS 11 Bullseye gebracht werden. Hierzu führt man Folgendes aus:

sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

Paketquellen

Danach werden die Paketquellen auf das neue System Bookworm angepasst. Hierzu öffnet man die /etc/apt/sources.list

sudo nano /etc/apt/sources.list

und kommentiert alle aktiven Quellen, indem man vor jede aktive Zeile eine Raute „#“ setzt. Danach fügt man die drei Zeilen

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware

am Anfang ein und speichert die Datei mit Ctr + o ab und verlässt dann den Editor mit Ctr + x.

Paketquellen
Paketquellen

Das Gleiche Spiel wiederholt man mit den zusätzlichen Paketquellen.

sudo nano /etc/apt/sources.list.d/raspi.list

Hier wird nun folgende Zeile an den Anfang gesetzt:

deb http://archive.raspberrypi.org/debian/ bookworm main

Die Datei wird mit Ctr + o gespeichert und der Editor mit Ctr + x verlassen. Ist dies geschehen, können die Paketquellen neu eingelesen werden.

Zusätzliche Paketquellen
Zusätzliche Paketquellen
sudo apt update

Bootpartition

Nun kommt der kniffligste Teil. Die Bootpartition muss an die neuen Gegebenheiten angepasst werden. Dazu wird die alte Boot-Partition ausgehängt.

sudo umount /boot

Dann wird das neue Verzeichnis /boot/firmware erstellt.

sudo mkdir /boot/firmware

Jetzt bearbeitet man die Partitionstabelle:

sudo nano /etc/fstab

Hier wird der Eintrag der Bootpartition entsprechend eingetragen. Bei mir sieht das so aus:

Datei zum Einbinden der Datenträger
Datei zum Einbinden der Datenträger

Die Datei wird wieder mit Ctr + o gespeichert und der Editor mit Ctr + x verlassen. Damit die Änderungen wirksam werden, wird systemd neu geladen

sudo systemctl daemon-reload

und die neue Boot-Partition gemountet.

sudo mount /boot/firmware

Bootloader und Kernel

Im Nachgang werden die aktuelle Firmware und der aktuelle Kernel für das Raspberry Pi OS 12 (Bookworm) installiert

sudo apt install raspi-firmware linux-image-rpi-v8

und der alte Bootloader und Linux-Kernel entfernt.

sudo apt remove raspberrypi-kernel raspberrypi-bootloader

Ist dies geschehen, müssen die Paketquellen nochmalig mit

sudo apt update

eingelesen werden.

Upgrade

Nun kann das eigentlich Upgrade durchgeführt werden. Hierbei stoppt der Vorgang bei den wichtigsten Konfigurationsdateien. Diese werden in der Regel alle beibehalten.

sudo apt full-upgrade

System aufräumen

Nun wird das System noch aufgeräumt.

sudo apt autoremove
sudo apt clean

Neustart

Nach dem Neustart

sudo reboot now

sollte nun das aktuelle Raspberry Pi OS 12 laufen. Das installierte Betriebssystem lässt man sich mit

cat /etc/os-release

anzeigen.

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Mit

uname -a

kann man nun den aktuellen Kernel checken. Meine Ausgabe sieht wie folgt aus:

Linux nextcloud 6.6.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux

(„nextcloud“ in dieser Zeile ist der Hostname)

Abschließend sei darauf hingewiesen, dass das Upgrade einige Gefahren in sich birgt. Bitte vorher unbedingt an ein Backup denken, was im Bedarfsfall wieder eingespielt werden kann!

Noch zu erwähnen

Eingangs des Artikels hatte ich erwähnt, dass es Weiteres zu beachten gibt. Durch das Upgrade wurden die Einstellungen des Dienstes zu meinem Turn-Server zurück gesetzt. Ein funktionierender Turn-Server ist wichtig, um reibungslosen Verlauf in Videokonferenzen zu ermöglichen.

Wer also wie ich eine Nextcloud auf dem Raspberry Pi installiert hat und bisher meinen Anleitungen gefolgt ist, muss den zeitverzögerten Start des Turnservers, wie im Artikel „coTurn zeitverzögert auf Raspberry Pi starten“ beschrieben, wieder neu konfigurieren. Dazu editiert man die Datei /lib/systemd/system/coturn.service:

sudo nano /lib/systemd/system/coturn.service

Nun fügt man den folgenden Eintrag unter [Service] ein und speichert die Änderung mit Ctlr + o.

ExecStartPre=/bin/sleep 30

Den Editor verlässt man dann wieder mit Ctrl + x. Durch den Eintrag wird nun eine Verzögerung von 30 Sekunden erzwungen. Mit 

sudo service coturn restart

wird der Turnserver zeitverzögert neu gestartet. jetzt arbeitet coTURN nach dem nächsten Reboot des Raspberry Pi wie gewünscht.

Viel Erfolg!

Besuch bei den Chemnitzer Linux-Tagen 2024

17. März 2024 um 14:43

Gestern, am 16.03.2024, habe ich die Chemnitzer Linux-Tage besucht. Für mich sind die CLT immer das Highlight des Jahres. Da ich meist nicht an beiden Tagen vor Ort sein kann, schaue ich mir das Programm im Vorfeld genau an und plane meinen Ausflug.

CLt - Einlassbändchen
Einlassbändchen

Themen wie Finanzen und Börse faszinieren mich, deshalb wollte ich natürlich einen der ersten Vorträge „Jeder Meter zählt – Linux @ Deutsche Börse“ nicht verpassen. Das Kurse und Handel über eine Linux-Infrastuktur ermittelt bzw. abgewickelt werden, war interessant zu hören. Erst Latenzen von < 1ms des Trading-Systems machen den sogenannten Hochfrequenzhandel der Börse möglich. Dieser Vortrag erlaubte einen Blick aus einer etwas anderen Perspektive auf den Handelsplatz Frankfurt der Deutschen Börse.

Vortrag - Jeder Meter zählt – Linux @ Deutsche Börse
Jeder Meter zählt – Linux @ Deutsche Börse

Ein weiterer spannender Vortrag war, „Wie funktioniert ChatGPT? Gibt es das auch als Open Source?„. Hier konnte man etwas über Ideen und Grundlagen des jetzigen Stands der Künstlichen Intelligenz hören, z.B. wie Algorithmen aufgebaut sind und Fragen von ChatGPT abgearbeitet werden. Auch ein kleiner Ausblick in die von Nvidia dominierte Hardware wurde gewagt.

Vortrag - Wie funktioniert ChatGPT? Gibt es das auch als Open Source?
Wie funktioniert ChatGPT? Gibt es das auch als Open Source?

Den interessantesten Vortrag hielt wie immer Prof. Klaus Knopper mit „Ransomware-Angriffe abwehren mit Linux und Open Source„. Dieses Mal wurde nicht das neue Knoppix vorgestellt, sondern es wurde ein aktuelles Thema, wie die erfolgreiche Ransomeware-Attacke auf die Universität Heidelberg, aufgegriffen. Interessant war die Herangehensweise einer Datenrettung nach solch einem Vorfall.

Vortrag - Ransomware-Angriffe abwehren mit Linux und Open Source
Ransomware-Angriffe abwehren mit Linux und Open Source

Ein weiterer sehr informativer Vortrag „Sichere Datenhaltung und Backup in der Cloud“ bestärkte mich in meinem Handeln im Umgang mit meinen eigenen Daten, auf dem richtigen Weg zu sein.

Vortrag - Sichere Datenhaltung und Backup in der Cloud
Sichere Datenhaltung und Backup in der Cloud

Der für mich letzte Vortrag des Tages hatte den Titel „Static Website am Beispiel Hugo„. Hier bekam ich einen kleinen Eindruck in die freie Software Hugo zur Erzeugung statischer Webseiten. Ich muss ganz ehrlich zugeben, dass ich mir Hugo an dieser stelle sehr viel einfacher vorgestellt hatte. Jedoch bin ich der Meinung, dass sich viele Sachen ganz selbstverständlich erschließen, sobald ich das System tatsächlich einmal produktiv einsetzen würde. Diesen Selbstversuch werde ich sicher demnächst einmal wagen.

Vortrag - Static Website am Beispiel Hugo
Static Website am Beispiel Hugo

Am Ende des Tages gab noch einen Tux und dann ging es nach Hause.

Lego-Tux
Tux

In ein paar Themen konnte ich heute via Stream noch hinein hören bzw. schauen. Ein Großteil der Vorträge wird demnächst über die Webseite chemnitzer.linux-tage.de verfügbar sein.

Umzug der Nextcloud von 32-Bit auf 64-Bit

16. Februar 2024 um 05:30

Nachdem unsere Community-Cloud das vorab letzte Software-Upgrade und eine neue SSD erhalten hatte, wurde es nun Zeit auch die Hardware auf eine neue Stufe zu heben. Da wir der Meinung waren, dass hierzu ein Raspberry P4 4 Modell B mit 8GB völlig ausreicht, haben wir uns bewusst für dieses Gerät entschieden. Eingepackt in ein passiv gekühltes Metallgehäuse wird uns diese Kombination, so hoffe ich, die nächste Zeit zuverlässig begleiten.

Da ein Upgrade der installierten Software vom Raspberry Pi 3 auf den Raspberry Pi 4 wenig sinnvoll und auch fast unmöglich umzusetzen ist, war die Idee, die Datenbank und das Datenverzeichnis der Nextcloud in eine Neuinstallation (64-Bit) einzubinden.

Für den Wechsel auf 64-Bit hätte eigentlich parallel zum bestehenden System eine Neuinstallation auf dem erwähnten Raspberry Pi durchgeführt werden müssen. Hier konnte ich mir die Arbeit aber ein wenig erleichtern, indem ich die MicroSD meiner eigenen Cloud klonen konnte. Auf dem geklonten System waren so nur einige Anpassungen vorzunehmen, bevor das neue Gerät an Stelle des 32-Bit-Systems in Betrieb genommen werden konnte.

Aufnahme mit Wärmebildkamera (passiv gekühltes Gehäuse für Raspberry Pi 4)
Aufnahme mit Wärmebildkamera (Raspberry Pi 4 – passive Kühlung)

Die aus dem Raspberry Pi 3 gesicherte Datenbank wurde in den Raspberry Pi 4 eingelesen und die Daten-SSD in die /etc/fstab eingebunden. Danach wurde der ddclient mit der DynDNS neu konfiguriert. Ein neues Zertifikat wurde erstellt und die automatische Upgrade-Routine hierzu angepasst. Zum Schluss mussten nur noch die Ports im Speedport-Router für die neue Hardware freigegeben werden.

Fazit

Der Aufwand hat sich in dem Sinne gelohnt, da dieses nun mittlerweile über fünfeinhalb Jahre existierende Projekt, zukunftssicher weiterbetrieben werden kann.

Bruteforce-Einträge in Nextcloud-Datenbank löschen

13. Februar 2024 um 05:00

Nachdem nun unsere Community-Cloud endlich wieder lief, habe ich versucht innerhalb der Gemeinschaft unseren Cloud-Speicher etwas zu bewerben. Bei einigen Nutzern war dieser inzwischen etwas in Vergessenheit geraten, samt den nötigen Passwörtern.

Es kommt natürlich immer wieder vor, dass Zugangsdaten nicht richtig verwahrt werden oder gar ganze Passwörter nicht mehr auffindbar sind. Mehrfache fehlerhafte Eingaben können jedoch, wie im Fall der Nextcloud, dazu führen, dass Nutzer-IPs ausgesperrt bzw. blockiert werden. Diesen Schutz nennt man Bruteforce-Schutz.

Bruteforce-Schutz

Nextcloud bietet einen eingebauten Schutzmechanismus gegen Bruteforce-Angriffe, der dazu dient, das System vor potenziellen Angreifern zu sichern, die wiederholt verschiedene Passwörter ausprobieren. Diese Sicherheitsvorkehrung ist standardmäßig in Nextcloud aktiviert und trägt dazu bei, die Integrität der Daten zu wahren und unautorisierten Zugriff auf das System zu verhindern.

Wie es funktioniert

Die Funktionsweise des Bruteforce-Schutzes wird besonders deutlich, wenn man versucht, sich auf der Anmeldeseite mit einem ungültigen Benutzernamen und/oder Passwort anzumelden. Bei den ersten Versuchen mag es unauffällig erscheinen, doch nach mehreren wiederholten Fehlversuchen wird man feststellen, dass die Überprüfung des Logins mit zunehmender Häufigkeit länger dauert. An dieser Stelle tritt der Bruteforce-Schutz in Kraft, der eine maximale Verzögerung von 25 Sekunden für jeden Anmeldeversuch einführt. Nach erfolgreicher Anmeldung werden sämtliche fehlgeschlagenen Versuche automatisch gelöscht. Wichtig zu erwähnen ist, dass ein ordnungsgemäß authentifizierter Benutzer von dieser Verzögerung nicht mehr beeinträchtigt wird, was die Sicherheit des Systems und die Benutzerfreundlichkeit gleichermaßen gewährleistet.

Bruteforce-Schutz kurzzeitig aushebeln

Hat nun einmal die Falle zugeschnappt und ein Anwender wurde aus der Nextcloud ausgesperrt, so kann sich das Problem über die Zeit von selbst lösen. Es gibt aber auch die Möglichkeit die Datenbank entsprechend zurückzusetzen.

Zuerst wechselt man in das Nextcloud-Verzeichnis. Danach werden über den folgenden OCC-Befehl die Bruteforce-Einträge der Datenbank resetet.

cd /var/www/html/nextcloud/
sudo -u www-data php occ security:bruteforce:reset 0.0.0.0

Neue Bruteforce-Attacken werden natürlich danach wieder geloggt und verdächtige IPs ausgesperrt.

Viel Erfolg!

Raspberry Pi OS Buster -> Bullseye

27. Januar 2024 um 09:40

Heute möchte ich noch einmal ein Thema aus der Mottenkiste holen, welches ja eigentlich schon abgehakt sein sollte. Es geht um das Upgrade von Raspbian 10 auf das Raspberry Pi OS 11.

Anlass des Ganzen ist unsere Community-Cloud mit über 25 Nutzern. Diese Cloud wurde vor über fünfeinhalb Jahren zum Zwecke des Datenteilens ins Leben gerufen. Durch einen bedingten öfteren Standortwechsel verblieb das System auf einem Softwarestand von vor über zwei Jahren. Jetzt im neuen Zuhause stand dadurch ein gründlicher Tapetenwechsel an. D.h., dass im ersten Schritt das Betriebssystem auf Raspberry Pi OS 11 Bullsleye angehoben werden musste, bevor die Nextcloud von Version 22 auf 27 aktualisiert wurde. Weiterhin musste parallel PHP 7.3 auf Version 8.1 gezogen werden, um wieder in sicheres Fahrwasser zu gelangen. Bei der Hardware handelt es sich um einen Raspberry Pi 3 Model B. Auch dieses Gerät soll im laufe des Jahres noch ein Refresh erhalten.

Nun zum Upgrade auf das erwähnte Raspberry Pi OS 11.

Installation

Hilfreich bei der Installation war die Anleitung von linuxnews.de, die ich abschließend noch um zwei Punkte ergänzen musste. Hierbei konnte ich mich noch an mein erstes Upgrade dieser Art erinnern, dass es zu Unverträglichkeiten mit dem Desktop kam. Dieses Problem wird ganz am Ende des Artikels behandelt.

Zuerst wurde ein vollständiges Upgrade auf die aktuellste Version Raspbian 10 durchgeführt.

sudo apt update
sudo apt full-upgrade
sudo rpi-update

Danach wurden die Quellen auf Bullseye angepasst.

sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/raspi.list

Im Anschluss folgte ein Update der Quellen und die erforderliche Installation von gcc-8.

sudo apt update && sudo apt install libgcc-8-dev gcc-8-base
sudo apt full-upgrade 
sudo apt -f install

Danach wurden unnötige Pakete und verbliebene heruntergeladene Pakete entfernt.

sudo apt autoremove
sudo apt clean

Nun mussten noch die Kernelbased Mode-Setting (KMS) in der /boot/config.txt angepasst werden. Hierzu wurden folgende zwei Befehle ausgeführt:

sudo sed -i 's/dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/g' /boot/config.txt
sudo sed -i 's/\[all\]/\[all\]\ndtoverlay=vc4-kms-v3d/' /boot/config.txt

Desktop aufräumen

Nach dem Reboot mit angeschlossenem Monitor fiel auf, dass sich das Programm Parcellite in der Menüleiste verewigt hatte. Parcellite war vor dem Systemupgrade auf Raspberry Pi OS 11 Bullseye nicht an Bord. Aus diesem Grund konnte es auch ohne Bedenken gelöscht werden.

sudo apt remove parcellite

Weiterhin fiel auf, dass die ganze Menüleiste des Desktops etwas vermurkst aussah. Diese wurde auf die Grundeinstellungen mit

cd ~/
sudo rm -rf .cache

zurückgesetzt.

Nach einem erneuten Reboot läuft Raspberry Pi OS 11 wie gewünscht.

sudo reboot
Nextcloud 27 - Raspberry Pi Modell B Rev 1.2
Nextcloud 27 – Raspberry Pi Modell B Rev 1.2
Nextcloud 27 - PHP 8.1
Nextcloud 27 – PHP 8.1

Fazit

Um unsere Community-Cloud wieder sicher zu machen, war ein wenig Wochenendarbeit nötig. Die so investierte Zeit hat sich aber durchaus gelohnt. Im nächsten Schritt erfolgt dann der Tausch des Raspberry Pi und ein Wechsel der Daten-SSD gegen ein größeres Modell.

PHP8.2-fpm für Nextcloud 28

27. Dezember 2023 um 14:00

Dieser Beitrag baut auf dem Artikel „PHP7.4-fpm auf PHP8.1-fpm für Nextcloud“ auf.

Im Januar 2023 hatte ich erklärt, wie ich mein Raspberry Pi OS 11 (basierend auf Debian 11 Bullseye), durch Einbinden einer Fremdquelle, von PHP7.4-fpm auf PHP8.1-fpm aktualisiert habe. Warum ich zu diesem Zeitpunkt die Version 8.1 installiert habe, ist recht einfach zu beantworten. Die aktuelle Version Nextcloud 25 war noch nicht kompatibel zu PHP 8.2. Erst mit Nextcloud 26 war ein Upgrade möglich.

Nun habe ich mich nach der Aktualisierung auf Nextcloud 28 entschieden auf PHP 8.2 zu wechseln. Da ich den FastCGI-Prozessmanager FPM bevorzuge, unterscheidet sich das Upgrade etwas von einer herkömmlichen PHP-Installation.

Unterstützungszeiträume der aktuellen PHP-Versionen
Quelle: https://www.php.net/supported-versions.php

Installation

Zuerst wird das System auf den aktuellen Stand gebracht.

sudo apt update && sudo apt upgrade -y

Ein Check zeigt, welche PHP-Version momentan aktiv ist.

php -v

Hier die Ausgabe:

PHP 8.1.27 (cli) (built: Dec 21 2023 20:17:59) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.27, Copyright (c) Zend Technologies
with Zend OPcache v8.1.27, Copyright (c), by Zend Technologies

Jetzt werden alle benötigten Pakete nachinstalliert (auch das von Nextcloud 28 verlangte bz2 und der von mir eingesetzte Redis-Server).

sudo apt install php8.2 php8.2-mbstring php8.2-gd php8.2-curl php8.2-imagick php8.2-intl php8.2-bcmath php8.2-gmp php8.2-mysql php8.2-zip php8.2-xml php8.2-apcu libapache2-mod-php8.2 php8.2-bz2 php8.2-redis

Nun wird via CLI die PHP-Version von 8.1 auf 8.2 mit

sudo update-alternatives --config php

umgestellt.

sudo update-alternatives --config php
Es gibt 5 Auswahlmöglichkeiten für die Alternative php (welche /usr/bin/php bereitstellen).

  Auswahl      Pfad                  Priorität Status
------------------------------------------------------------
  0            /usr/bin/php.default   100       automatischer Modus
  1            /usr/bin/php.default   100       manueller Modus
  2            /usr/bin/php7.4        74        manueller Modus
* 3            /usr/bin/php8.1        81        manueller Modus
  4            /usr/bin/php8.2        82        manueller Modus
  5            /usr/bin/php8.3        83        manueller Modus
sudo update-alternatives --config php
Es gibt 5 Auswahlmöglichkeiten für die Alternative php (welche /usr/bin/php bereitstellen).

  Auswahl      Pfad                  Priorität Status
------------------------------------------------------------
  0            /usr/bin/php.default   100       automatischer Modus
  1            /usr/bin/php.default   100       manueller Modus
  2            /usr/bin/php7.4        74        manueller Modus
  3            /usr/bin/php8.1        81        manueller Modus
* 4            /usr/bin/php8.2        82        manueller Modus
  5            /usr/bin/php8.3        83        manueller Modus

Ein abschließender Check zeigt die aktuelle Version.

php -v
PHP 8.2.14 (cli) (built: Dec 21 2023 20:18:00) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.14, Copyright (c) Zend Technologies
with Zend OPcache v8.2.14, Copyright (c), by Zend Technologies

Ist die Ausgabe korrekt, kann PHP8.1-fpm deaktiviert, PHP8.2-fpm installiert und aktiviert werden.

sudo a2disconf php8.1-fpm
sudo apt install php8.2-fpm
sudo a2enconf php8.2-fpm

Der Restart des Webservers führt nun die Änderungen aus.

sudo service apache2 restart

Nextcloud-Konfiguration

Da in der Nextcloud nun wieder die bekannten Fehlermeldungen auftauchen, heißt es, diese schrittweise abzuarbeiten. Dazu wird die neue php.ini geöffnet

sudo nano /etc/php/8.2/fpm/php.ini

und die Werte für memory_limit sowie session_lifetime wie empfohlen angepasst.

memory_limit = 512M
session.gc_maxlifetime = 3600

Der Block

opcache.enable=1
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=10000
opcache.memory_consumption=256
opcache.save_comments=1
opcache.revalidate_freq=1

für den Zwischenspeicher OPchache wird ans Ende der php.ini gesetzt.

Zur Optimierung von PHP8.2-fpm werden speziell für das Modell Raspberry Pi 4 mit 4GB RAM in der Datei www.conf mit

sudo nano /etc/php/8.2/fpm/pool.d/www.conf

folgende Werte von

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

auf

pm = dynamic
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18

angepasst und der Dienst neu gestartet.

sudo service php8.2-fpm restart

Danach muss in der apcu.ini das Command Line Interface des PHP Cache noch aktiviert werden, indem

sudo nano /etc/php/8.2/mods-available/apcu.ini

folgende Zeile am Ende eingetragen wird.

apc.enable_cli=1

Ist dies geschehen, wird der Webserver ein letztes Mal neu gestartet.

sudo service apache2 restart

Fazit

Die Umstellung bringt zwar im Moment keine erkennbaren Vorteile, jedoch verschafft es wieder ein wenig Zeit und senkt den Druck das eigentliche Raspberry Pi OS 11 Bullseye durch die aktuelle Version 12 Bookworm zu ersetzen.

SSD der Nextcloud ersetzen

08. Dezember 2023 um 17:01

Der Black Friday ist für den Einzelhandel ein willkommenes Datum, um Waren an den Mann bzw. die Frau zu bringen. In dieser Zeit wird Lagerware abverkauft, um Platz für Neues zu schaffen. Der Endverbraucher profitiert meist durch Rabatte und Nachlässe auf interessante Artikel.

Angelockt durch solch ein Angebot, habe ich mir eine externe 2TB-SSD zugelegt, um den Speicher meiner Nextcloud zu erweitern. Im Vorfeld hatte ich mir hierzu schon einige Gedanken gemacht, wie ich die alte 500GB SSD durch das neue und größere Speichermedium ersetze.

Nextcloud auf dem Raspberry Pi mit SanDisk SSD (2 TB)
Raspberry Pi mit SanDisk SSD

Die perfekte Lösung für mich war das Duplizieren der Quelle mit Clonezilla. Hierbei wurden beide Festplatten an den Rechner angeschlossen, Clonezilla gestartet und mit device-device ein Duplikat erstellt. Bei diesem musste dann nur noch die Partition vergrößert werden. Da der Zielfestplatte die selbe UUID vergeben wurde, waren im Anschluss keine weiteren Maßnahmen erforderlich.

Clonezilla Auswahl device-device
Clonezilla device-device

Nextcloud Auto Logout

16. November 2023 um 16:57

Heute möchte ich über ein sinnvolles und relativ schnell nachzurüstendes Feature zur Nextcloud berichten. Der zeitliche Aufwand beträgt nur wenige Minuten, ist aber zum Schutz der eigenen Daten eine gut investierte Zeit.

Ab und zu kam es vor, dass ich mich aus meiner Cloud nicht richtig abgemeldet, sondern nur den Browser geschlossen hatte. Beim nächsten Aufruf meiner Nextcloud stellte ich fest, dass ich plötzlich im Datenbereich bin, ohne mich vorher eingeloggt zu haben.

Mein Gedanke: Was würde passieren, wenn ein Unberechtigter so Zugriff auf alle in einer Cloud abgelegten Daten bekommt? Nicht auszudenken, der Schaden wäre wohl immens.

Damit dies nicht vorkommt, ist es sinnvoll ein Auto Logout einzurichten. Hierzu öffnet man als Erstes die config.php der Nextcloud

sudo nano /var/www/html/nextcloud/config/config.php

und trägt die folgenden Werte am Ende ein.

'remember_login_cookie_lifetime' => 1296000,
'session_lifetime' => 3600,
'session_keepalive' => false,
'auto_logout' => true,

Eine Session wird auf 30 Minuten sowie die Lebensdauer des Login-Cookies auf 15 Tage begrenzt. Diese Werte können natürlich den eigenen Wünschen und Gegebenheiten angepasst werden.

Dabei gilt zu beachten, dass die session.gc_maxlifetime in der php.ini >= der eingestellten session_lifetime sein muss. Dazu öffne ich die php.ini von PHP 8.1 FPM

sudo nano /etc/php/8.1/fpm/php.ini

und setze den Wert auf 3600.

session.gc_maxlifetime = 3600

Nun muss PHP bzw. der Webserver neu gestartet werden, um die Änderungen wirksam umzusetzen.

sudo service php8.1-fpm restart

Ein geschlossener Browser führt nun, wie gewünscht, zu einem Auto Logout.

Integration von OpenAI in Nextcloud

15. November 2023 um 17:43

Mit Hub 4 integriert Nextcloud die künstliche Intelligenz auf ethische Weise. So heißt es zumindest in der damaligen Vorstellung von Frank Karlitschek, CEO und Gründer der Nextcloud GmbH.

Nextcloud Hub 4 ist die erste Kollaborationsplattform, die intelligente Funktionen umfassend in ihre Anwendungen integriert und gleichzeitig die mit KI-Technologien einhergehenden Herausforderungen in Bezug auf Datenschutz und Kontrolle bewältigt.

Nextcloud Hub bietet fortschrittliche, KI-basierte Funktionen, von intelligenten Datei- oder Freigabe-Empfehlungen bis hin zur Erkennung verdächtiger Logins über neuronale Netzwerke und vieles mehr. Diese Version verbessert die bestehenden intelligenten Funktionen wie den intelligenten Posteingang in Mail und die Standortverwaltung mit Fotos und führt gleichzeitig die Dateiklassifizierung, die on-premises Übersetzung, die Umwandlung von Sprache in Text, Bilderstellung via Stable Diffusion und Dall-e, ChatGPT-basierte Texterzeugung, DeepL-Übersetzungen und mehr ein.

nextcloud.com

Diese intelligenten Funktionen findet man im Smart Picker. Hierüber wird es möglich, u.a. Links und Inhalte einzufügen. Weitere Optionen sind:

  • Aufgaben von Deck
  • Orte von Open Street Map
  • Wissensdatenbankeinträge von Collectives
  • Videos von YouTube und PeerTube
  • GIF-Dateien von Giphy
  • Vordefinierte Textausschnitte
  • Filme, Serien und Personen aus The Movie Database (TMDB)
  • Stable Diffusion (on-premises) oder Dall-E (online) generierte Bilder
  • ChatGPT generierter Text
  • Tabellen und mehr.

Den Smart Picker wählt man in der entsprechenden Anwendung (z.B. Text) aus, indem man ein „/“ eintippt. Dort öffnet sich ein Kontextmenü und die Anwendung kann ausgewählt werden.

Um jedoch auch Funktionen von OpenAI, wie ChatGPT, speech-to-text oder AI image nutzen zu können, muss zusätzlich die App OpenAI and LocalAI integration installiert werden. Hierzu benötigt man eine API, welche einen OpenAI-Account voraussetzt.

Smart Picker – OpenAI in der Nextcloud

Viel Spaß!

OCC-Befehle bei ALL-INKL.COM ausführen

29. Juli 2023 um 09:07

Vor ein paar Tagen hatte ich im Artikel „Nextcloud bei ALL-INKL.COM installieren“ erklärt, wie man seine eigene Nextcloud beim Hoster ALL-INKL.COM aufsetzen kann.

Nachdem die Cloud dort installiert ist, sollte man damit beginnen, die Fehlermeldungen in den „Sicherheits- und Einrichtungswarnungen“ abzuarbeiten. Die meisten Fehlermeldungen können nach der Installation recht einfach eliminiert werden. Leider ist es aber nicht möglich, alle zu beseitigen, was jedoch den fehlerfreien Betrieb der eigenen Cloud nicht weiter beeinflussen sollte.

Wie verhält es sich aber, wenn es in Folge von Upgrades zu weiteren Fehlermeldungen kommt? Diese werden i.d.R. mit einem entsprechenden OCC-Befehl behoben. Hat man bei ALL-INKL ein entsprechendes Hosting-Paket gebucht, dann muss man hier etwas anders vorgehen als z.B. auf dem eigenen Server.

Variante 1

Ab dem Paket Premium hat der Nutzer die Möglichkeit sich via SSH einzuloggen. Da man jedoch über keine root-Rechte verfügt, muss hier der entsprechende OCC-Befehl an die Gegebenheiten angepasst werden. Dies setzt allerdings voraus, dass man mindestens PHP 8 verwendet (bei niedrigereren Versionen ist der Befehl entsprechend anzupassen).

Im folgenden Beispiel zeige ich, wie fehlende Indizes der Datenbank hinzugefügt werden. Dazu wählt man sich via SSH ein, wechselt in das Hauptverzeichnis der Nextcloud und führt folgenden Befehl aus:

php80 -d memory_limit=512M ./occ db:add-missing-indices

Variante 2

Ist der Zugriff über SSH nicht möglich, können OCC-Befehle mit einem kleinen Trick ausgeführt werden. Hierzu wird eine PHP-Datei mit folgendem Inhalt erstellt. Der Dateiname spielt dabei keine Rolle. Wenn man z.B. den Dateinamen oc.php verwendet, kann das Skript über die entsprechende Domain mit https://cloud.domain.tld/occ.php im Browser angestoßen werden.

<?php
exec("/usr/bin/php80 -d memory_limit=512M ./occ db:add-missing-indices");
?>

Hier noch ein Beispiel, wie man die Nextcloud in den Wartungsmodus versetzt

<?php
exec("/usr/bin/php80 -d memory_limit=512M ./occ maintenance:mode --on");
?>

und dort wieder heraus holt.

<?php 
exec("/usr/bin/php80 -d memory_limit=512M ./occ maintenance:mode --off"); 
?>

Zum Schluss sollte die zusätzlich erstellte PHP-Datei wieder gelöscht werden, da sonst ein manuelles Upgrade auf die nächsthöhere Nextcloud Version nicht ausgeführt werden kann.

Memory Caching mit Redis für Nextcloud 27

14. Juli 2023 um 16:00

Wer bisher meinen Anleitungen zur Installation der Nextcloud auf dem Raspberry Pi gefolgt ist, setzt im Moment das Raspberry Pi OS (64-bit) basierend auf Debian 11 mit dem Webserver Apache 2 und PHP 8.1 aus einer Fremdquelle ein. Nach dem Upgrade auf Nextcloud Version 27 erscheint neben dem Hinweis, die Datenbank mit fehlenden Inidizes zu fixen, folgende Fehlermeldung in den Sicherheits- & Einrichtungswarnungen:

Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, richte bitte, sofern verfügbar, Memcache ein. Weitere Informationen findest du in der Dokumentation ↗.

Sicherheits- & Einrichtungswarnungen

Bisher bin ich allein mit APCu als Memcache recht gut gefahren. Nun möchte jedoch die Nextcloud in Version 27 einen funktionellen Redis-Server aufgesetzt bekommen.

Da ich, wie oben erwähnt, im Moment PHP 8.1 verwende, muss ich neben Redis auch das entsprechende Paket für diese PHP-Version herunterladen und installieren.

sudo apt install redis-server php8.1-redis

Ist dies geschehen, wird die /etc/redis/redis.conf konfiguriert.

sudo nano /etc/redis/redis.conf

Hierbei sind die entsprechenden Einträge zu suchen, auszukommentieren und anzupassen. Mit Ctrl + o wird die Konfiguration gespeichert mit Ctrl + x der Editor wieder verlassen.

unixsocket /var/run/redis/redis.sock
unixsocketperm 770

Nun kann der Redis-Server gestartet werden.

sudo service redis start

Jetzt wird noch redis der Gruppe www-data hinzugefügt.

sudo usermod -aG redis www-data

Damit das alles funktioniert, muss Redis in die Konfiguration der Nextcloud eingetragen werden.

sudo nano /var/www/html/nextcloud/config/config.php

In meinem Fall wird dann folgender Block unter die Zeile ‚memcache.local‘ => ‚\\OC\\Memcache\\APCu‘, gesetzt:

'filelocking.enabled' => true,
  'memcache.locking' => '\OC\Memcache\Redis',
  'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     'timeout' => 0.0,
      ),

Nach dem Abspeichern via Ctrl + o und dem Verlassen des Editors mit Ctrl + x wird der FastCGI-Prozessmanager PHP-FPM neu gestartet.

sudo service php8.1-fpm restart

Nun sollte die Fehlermeldung verschwunden sein.

Viel Spaß!

Nextcloud bei ALL-INKL.COM installieren

10. Juni 2023 um 15:00

Heute möchte ich zeigen, wie einfach man seine eigene Cloud mit Nextcloud beim Shared-Hoster all-inkl.com realisieren kann. Hierbei sind ein paar Dinge zu beachten.

Ich nutze Nextcloud quasi seit der ersten Stunde, erst auf einem vServer und später auf einem Homeserver. Die letztere Variante ist natürlich die, die mir am besten gefällt, da meine Daten zu Hause aufbewahrt werden und nicht auf den Rechnern Dritter.

Wenn ich eine Cloud bei einem Shared-Hoster wie all-inkl.com installiere, liegen meine Daten zwar nicht zu Hause, jedoch gebe ich die Hoheit hierüber nicht ganz in fremde Hände. Es ist schon ein beruhigenderes Gefühl, der Administrator seiner eigenen Cloud zu sein, wobei weitere Abstriche gemacht werden müssen. So können Erweiterungen wie Nextcloud-Talk, Collabora-Office etc. nicht genutzt werden. Trotz dieser Einschränkungen erhält man aber eine voll funktionstüchtige und schnelle File-Sharing-Lösung. Die wichtigsten Funktionen, wie die Datenspeicherung (z.B. Dateien, Kalender, Kontakte etc.), erledigt die Nextcloud nach der Installation beim Hoster all-inkl.com problemlos. Somit ist diese Variante durchaus interessant für kleine Firmen, Vereine und natürlich auch Privatpersonen.

Installation

Zuallererst macht man sich Gedanken über die Domain bzw. Subdomain für dieses Vorhaben. Ich habe für den produktiven Test dieses Artikels eine Subdomain cloud.doman.tld verwendet (domain.tld ist hierbei eine fiktive Adresse und muss entsprechend angepasst werden).

Wurde die Subdomain eingerichtet, geht man im KAS auf Software-Installation -> Software auswählen -> Software -> Cloud und wählt Nextcloud. Diese wird dann in das entsprechende Verzeichnis zur zuvor erstellten Subdomain installiert. Dabei wird eine neue Datenbank erstellt. Um das Ganze realisieren zu können, ist mindestens das Paket ALL-INKL privat beim Hoster zu buchen. Nach der Eingabe des Benutzernamens, des Passwortes und der Mailadresse des neuen Administrators der Cloud sowie der Bestätigung der Nutzungsbedingungen, wird die Installation ausgeführt. Nach ein paar Minuten ist die Nextcloud nun bereit für den ersten Login.

In den Administratoreinstellungen der Nextcloud findet man allerdings einige Fehlermeldungen, die es für den reibungslosen Betrieb der eigenen Cloud zu beseitigen gilt.

 

Fehlermeldungen

Fehlermeldungen beseitigen

Fehlermeldungen bezüglich des fehlenden SSL-Zertifikats lassen sich durch Erstellung eines Let’s Encrypt Zertifikates beseitigen. Hierbei sind die Einstellungen SSL aktivieren, SSL erzwingen und HSTS aktivieren zu setzen. Weiterhin muss folgender Wert angepasst werden: max-age = 15552000.

Um die PHP-Speichergrenze zu erhöhen, muss in die Datei .user.ini im Hauptverzeichnis wie folgt erweitert werden. Zu beachten hierbei ist, dass nach einem Nextcloud-Upgrade diese Änderungen wieder verloren gehen und wiederholt werden müssen.

mbstring.func_overload=0
always_populate_raw_post_data=-1
default_charset='UTF-8'
output_buffering=0

memory_limit=512M 
max_execution_time=7200

Die Fehlermeldung zum Memory Cache lässt sich leider nicht beseitigen, da OPcache aus Sicherheitsgründen als Filecache beim Hoster installiert ist.

Eine weitere Fehlermeldung findet man in der Nextcloud unter Verwaltung -> Grundeinstellungen. Diese betrifft die Hintergrund-Aufgaben.

Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundjobs richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen findest du in der Dokumentation. 

Um diese Fehlermeldung zu eliminieren, erstellt man im KAS von all-inkl.com über Tools -> Cornjobs einen neuen Cronjob, der die Hintergrund-Aufgaben erledigt (siehe Grafik).

Als E-Mail-Filter sollte success gewählt werden. So bekommt man nur dann System-Nachrichten, wenn der angelegte Conjob fehlerhaft ausgeführt wird.

Cronjob

Unter Verwaltung -> Grundeinstellungen wird nun in der Nextcloud die Einstellung Webcron gewählt (siehe Grafik).

Hintergrund-Aufgaben

Nun ist die eigene Cloud einsatzbereit und kann genutzt werden.

Viel Spaß!

Besuch bei den Chemnitzer Linux-Tagen 2023

11. März 2023 um 20:25

Am 11. und 12 März 2023 finden nach dreijähriger Zwangspause endlich wieder die Chemnitzer Linux-Tage an der TU Chemnitz statt. Unter dem Motto „Bewusst sein“ treffen sich zahlreiche Aussteller, Vortragende und Besucher zum Thema Linux und freie Software auf dem Uni-Campus.

TU Chemnitz
Chemnitzer Linux-Tage
Halbleiter von Chemnitz

Ich freute mich riesig dieses Event nach 2019 wieder besuchen zu können, um interessante Leute zu treffen und Gedanken auszutauschen. Am ersten Tag verabredete ich mich mit meinem Mitstreiter Andi alias Waldstepper aus Berlin, um gemeinsam einige Vorträge zu besuchen.

Das Highlight war einmal mehr der lebendige Beitrag „Nachhaltiges Computing mit KNOPPIX“ von Prof. Dipl.-Ing. Klaus Knopper. Überlegungen zu CO2-Fußabdrücken des von Knopper entwickelten Betriebssystems sowie Einblicke in das Innenleben dieser Live-Distribution stießen auf reges Interesse.

Vortrag Nachhaltiges Computing mit KNOPPIX

Natürlich konnte ich noch weiteren interessanten Vorträgen lauschen, wie VPN via WireGuard, Programmierung mit Scratch und Ausführungen zur komplexen Thematik Linux-Desktop, wo darüber philosophiert wurde, warum sich das OS bis heute noch nicht im Desktopbereich durchsetzen konnte und was nötig wäre, um ein solches Projekt zu realisieren. Hier gab es natürlich interessante und praxisnahe Ansätze, die zum Nachdenken anregten.

Einige gute Gespräche konnte ich auch an den Ständen von den Ubuntuusers, der FSFE, TUXEDO, Linuxnews, LibreOffice und den CMS Gardeners führen.

Besuch bei den Ubuntuusers
FSFE-Stand

Alles in allem war es heute ein interessanter und informativer Tag an der TU, der morgen seine Fortsetzung findet.

Die Zukunft des Speicherns: Was wir von Terabyte-Laufwerken und anderen Technologien erwarten können

15. Februar 2023 um 05:30

Datenspeicherung ist ein kritischer Aspekt für Unternehmen und Organisationen jeder Größe. Die ständig wachsenden Datenmengen erfordern immer größere Speicherkapazitäten und höhere Übertragungsgeschwindigkeiten. Eine Herausforderung bei der Datenspeicherung heute ist die Verwaltung der hohen Kapazitäten und hohen Verfügbarkeitsanforderungen, die durch den Betrieb von Unternehmensanwendungen und Datenbanken erforderlich sind. Darüber hinaus ist es wichtig, Daten sicher und kontinuierlich zu speichern, um eine ununterbrochene Verfügbarkeit sicherzustellen und Datenverlust oder Datenkorruption zu vermeiden. In diesem Zusammenhang spielen Technologien wie Cloud-Speicher eine wichtige Rolle bei der Überwindung dieser Herausforderungen, indem sie skalierbare, zuverlässige und sichere Speicherlösungen bereitstellen.

Die Vorteile von Terabyte-Laufwerken im Vergleich zu herkömmlichen Speichermedien

Terabyte-Laufwerke bieten eine Vielzahl von Vorteilen im Vergleich zu herkömmlichen Speichermedien wie Festplatten oder USB-Sticks. Einer der wichtigsten Vorteile ist die Kapazität. Terabyte-Laufwerke bieten eine enorme Speicherkapazität, die es ermöglicht, große Datenmengen effizient und sicher zu speichern, sie sind sehr zuverlässig und bieten eine lange Lebensdauer. Ein weiterer Vorteil ist die Geschwindigkeit. Terabyte-Laufwerke nutzen modernste Technologien, um eine schnelle Datenübertragung zu ermöglichen. Dies ist besonders wichtig für Anwendungen, die große Datenmengen bearbeiten müssen, wie Videobearbeitung oder 3D-Modellierung.

In Bezug auf die Sicherheit bieten Terabyte-Laufwerke eine Vielzahl von Schutzfunktionen wie Passwort-Schutz, verschlüsselte Übertragung und Backup-Optionen, um sicherzustellen, dass wichtige Daten geschützt sind.

Die Entwicklung und Zukunftsaussichten von Terabyte-Laufwerken

Sie stellen eine bedeutende Weiterentwicklung in der Datenspeicherung dar und bieten enorme Kapazitäten und hohe Übertragungsgeschwindigkeiten im Vergleich zu herkömmlichen Speichermedien wie HDDs. Die Technologie basiert auf SSDs und nutzt moderne Controller- und Speicher-Technologien. Die Kapazität von Terabyte-Laufwerken kann durch die Verwendung von 3D-NAND-Speicherzellen und anderen Technologien wie QLC-Speicher erhöht werden. Die Entwicklung von Terabyte-Laufwerken geht weiter und es werden kontinuierlich neue Fortschritte erwartet, wie z.B. die Verwendung von NVMe-Protokollen und erhöhte Kapazitäten.

Cloud-Speicher als alternative Lösung für die Datenspeicherung

Durch die Nutzung von Serverinfrastrukturen in Rechenzentren bieten Cloud-Speicher auch eine vielseitige Lösung zur Datenspeicherung. Diese Technologie ermöglicht es Benutzern, ihre Daten von jedem Gerät aus zu speichern und zu übertragen, solange sie eine Internetverbindung haben. Die Datensicherheit ist durch die Verwendung von Verschlüsselung und Backup-Systemen gewährleistet.

In Bezug auf Büroanwendungen, wie LibreOffice, Zoho Office Suite, WPS Office und Microsoft 365 Single, bieten sichere Cloud-Speicherdienste eine bequeme Möglichkeit, Dateien zu speichern und zu teilen. Es ermöglicht den Benutzern, auf ihre Dateien von jedem Gerät aus zuzugreifen, was für mobiles Arbeiten und die Zusammenarbeit mit anderen Teammitgliedern sehr praktisch ist. Auch das Risiko eines Datenverlusts durch fehlerhafte Geräte oder Systemausfälle wird minimiert.

Terabyte-Laufwerken vs. Cloud-Speicher

Terabyte-Laufwerke und Cloud-Speicher sind beide wichtige Optionen für die Datenspeicherung. Terabyte-Laufwerke sind eine lokale Lösung, die eine hohe Kapazität und Geschwindigkeit bieten, aber auch gegenüber physischen Schäden und Datenverlust anfällig sind. Cloud-Speicher hingegen bieten die Möglichkeit, Daten über eine Netzwerkverbindung zu speichern und von überall auf der Welt auf sie zuzugreifen. Allerdings hängt die Zugänglichkeit von einer stabilen Internetverbindung ab und es kann eine Gebühr für den Zugang zu den Diensten erhoben werden. Unternehmen benötigen möglicherweise mehr Kapazität und Kontrolle über ihre Daten, während Privatanwender die Flexibilität und Kosteneinsparungen von Cloud-Speicher bevorzugen könnten.

PHP7.4-fpm auf PHP8.1-fpm für Nextcloud

08. Januar 2023 um 17:00

Einige Leser haben eine Nextcloud nach meinen Anleitungen und Vorgaben auf einem Raspberry Pi installiert, um ihre Daten nicht in fremde Hände zu geben, sondern diese in den eigenen vier Wänden zwischenzuspeichern. Seit Ende November verhangenen Jahres besteht hier jedoch ein Sicherheitsrisiko, da PHP 7.4 nicht mehr mit Sicherheits-Updates versorgt wird. Im Artikel „PHP 8.2 auf Raspberry Pi OS“ hatte ich bereits darauf hingewiesen.

Quelle: https://www.php.net/supported-versions.php

Da sich PHP 8.2 nicht mit der aktuellen Version Nextcloud 25 verträgt, möchte ich heute zeigen, wie man PHP7.4-fpm mit PHP8.1-fpm ersetzen kann. Dabei gehe ich auch noch auf die spezifische Konfiguration der Nextcloud auf dem Raspberry Pi ein.

Installation

Zuerst wird der Key für die neu einzubindende Paketquelle heruntergeladen.

sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Danach wird diese in das System eingebunden.

sudo echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

Es erfolgt ein Upgrade.

sudo apt update && sudo apt upgrade -y

Ein erster Check zeigt die neue PHP-Version.

php -v

Hier wird im Moment noch PHP 8.2 ausgegeben. Um jedoch auf PHP 8.1 downzugraden, lädt man die entsprechenden Pakete nach.

sudo apt install php8.1 php8.1-mbstring php8.1-gd php8.1-curl php8.1-imagick php8.1-intl php8.1-bcmath php8.1-gmp php8.1-mysql php8.1-zip php8.1-xml php8.1-apcu libapache2-mod-php8.1

Mit folgendem Befehl muss nun die Version 8.1 manuell als aktuelle Version gesetzt werden.

sudo update-alternatives --config php

in meinem Fall ist das die Option 3.

php -v

Ein erneuter Check zeigt die gesetzte PHP-Version.

Nun wird PHP7.4-fpm deaktiviert, PHP8.1-fpm heruntergeladen und aktiviert.

sudo a2disconf php7.4-fpm
sudo apt install php8.1-fpm
sudo a2enconf php8.1-fpm

Ein nachfolgender Restart des Webservers führt die Änderungen abschließend aus.

sudo service apache2 restart

Nextcloud-Konfiguration

Jetzt muss die Nextcloud noch an die neue PHP-Version angepasst werden, um alle internen Checks zu bestehen. Dazu öffnet man die neue php.ini

sudo nano /etc/php/8.1/fpm/php.ini

setzt das memory_limit hoch auf 512MB

memory_limit = 512M

und fügt folgende Einträge am Ende für den Zwischenspeicher OPchache ein.

opcache.enable=1
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Zur Optimierung von PHP8.1-fpm werden speziell für das Modell Raspberry Pi 4 mit 4GB RAM in der Datei www.conf mit

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

folgende Einträge angepasst.

pm = dynamic
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18

Ein Restart des Dienstes aktiviert diese anschließend.

sudo service php8.1-fpm restart

Jetzt wird in der apcu.ini

sudo nano /etc/php/8.1/mods-available/apcu.ini

noch am Ende diese Zeile eingetragen

apc.enable_cli=1

und abschließend der Webserver ein letztes Mal neu gestartet.

sudo service apache2 restart

Fazit

Mit ein wenig zeitlichem Aufwand lässt sich die eigene Cloud seitens der Skriptsprache wieder absichern. Auf das neue Release von Raspberry Pi OS zu warten, welches wieder eine mit Sicherheitspatches unterstützte PHP-Version mitbringt, wäre nicht ratsam.

Nextcloud-Upgrade mit Hindernissen

20. November 2022 um 14:34

Gestern bekam ich den Hinweis, dass meine Nextcloud nun bereit für das Upgrade auf Nextcloud 25.0.1 wäre. Ich hatte schon die Vorahnung, es könnte Probleme geben die Version 24.0.7 auf die aktuellste Version anzuheben. Also habe ich mich nicht sofort an die Aktualisierung gewagt.

Das Upgrade über die Weboberfläche

Heute dann konnte ich das Ganze in Ruhe angehen. Ich habe das Upgrade via Webinterface angestoßen, mit dem Ergebnis, dass meine Cloud währenddessen irgendwann nicht mehr zu erreichen war. Es kam natürlich etwas Frust auf, aber ich wusste auch, dass die Chancen gut standen das Upgrade via CLI abzuschließen bzw. neu starten zu können.

Upgrade über das Terminal

Das Upgrade über das Terminal lief dann eigentlich sauber durch. Zum Schluss wurde ich wie gewohnt gefragt, ob der Wartungsmodus wieder deaktiviert werden soll, was ich natürlich bestätigte. Leider befand sich aber die Nextcloud via Web noch immer im Wartungsmodus. Also wechselte ich zurück in Terminal und schaltete den Wartungsmodus noch einmal ein und wieder aus. Das änderte jedoch nichts an der Situation. Die Nextcloud ließ sich so nicht aus dem Wartungsmodus heraus holen.

Nach einem Reboot hingegen, konnte ich mich wieder in meine Cloud einloggen. Hier erhielt ich jedoch folgende Fehlermeldung.

In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von „occ db:add-missing-indices“ können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.

  • Fehlender Index „preferences_app_key“ in der Tabelle „oc_preferences“.

Ein fehlender Index musste noch der Datenbank hinzugefügt werden, damit das System wieder ohne Beanstandungen lief.

Nextcloud 25

Die Lösung

Man wechselt einfach in das Nextcloud-Verzeichnis

cd /var/www/html/nextcloud

und fügt mit folgender Eingabe die fehlenden Indizes hinzu:

sudo -u www-data php occ db:add-missing-indices

Am Ende wurden alle Überprüfungen bestanden und mich erwartete die neue Nextcloud-Version 25 auf die ich mich schon gefreut hatte.  

Überprüfungen bestanden

NextcloudPi angesehen

04. Januar 2022 um 17:18

Wie schön wäre es doch, seine Daten sicher zu Hause aufzubewahren, sie immer und überall verfügbar zu haben und diese nicht an zweifelhafte Cloud-Dienstleister auszulagern. Geht das? Na klar, mit der Nextcloud!

Hierzu benötigt man nicht viel. Ein Raspberry Pi mit Internetanschluss und etwas Interesse sich mit dieser interessanten Materie zu beschäftigen reicht völlig aus. Ich bevorzuge generell die klassische Installation der Cloud-Software auf einem LAMP-Server.

Einen etwas einfacheren Weg zur eigenen Cloud geht OWN YOUR BITS. Die Entwickler stellen komplette Images zur Verfügung, um die Cloud ohne Linux-Erfahrung in den eigenen vier Wänden zu realisieren.

Installation

Ich habe mir nun einmal NextcloudPi für den Raspberry Pi etwas genauer angesehen. Das Image hierzu ist 4,3GB groß und kann direkt von der Webseite kostenlos heruntergeladen und eingesetzt werden. Dabei muss man natürlich aufpassen, dass das richtige Download-Paket ausgewählt wird. Ist dies geschehen, wird das Image entpackt und z.B. mit dem Raspberry Pi Imager auf eine mindestens 16GB-große MicroSD geschrieben.

Der erste Kontakt

Nachdem die MicroSD in den Raspberry Pi eingelegt und dieser gestartet wurde (ohne Bildschirm, Tastatur und Maus), erreicht man NextcloudPi über die lokale Adresse https://nextcloudpi.local im heimischen Netzwerk. Voraussetzung ist jedoch der vorherige Anschluss des Einplatinencomputers über LAN-Kabel an den Router.

Wenn alles funktioniert, wird man nach dem Booten von folgendem Bildschirm begrüßt. 

NextcloudPi – Erstkontakt

Hier bekommt man Benutzernamen und Passwörter für das NextcloudPi Webinterface sowie die Nextcloud. Nach der Aktivierung gelangt man nun in den NextcloudPi-Maschinenraum. Dazu wird das erste Passwort benötigt, welches später auch geändert werden kann. Weiter geht es mit einem Installations-Wizard, welcher dabei hilft die Cloud mit einer Festplatte oder SSD über USB zu erweitern. Außerdem hat man nun die Möglichkeit das System über einen DynDNS-Anbieter von außen über das Internet erreichbar zu machen.

NextcloudPi – Installations-Wizard

Im Webinterface lassen sich serverseitig einige Einstellungen erledigen, ohne jedoch wirklich selbst Serverkenntnisse besitzen zu müssen. Das birgt allerdings die Gefahr, dass das System ungewollt beschädigt werden kann, was mir tatsächlich einige Male gelungen ist. Um nun in solch einer Situation zur Reparatur selbst Hand anzulegen, muss an den Raspberry Pi ein Monitor und eine Tastatur angeschlossen werden, damit auf den eigentlichen Server zugegriffen werden kann. Dies geht nun direkt auf dem Raspberry Pi oder nach SSH-Aktivierung von einem anderen Computer. Im letzteren Fall kann der RasPi wieder von den zuvor angeschlossenen Peripheriegeräten getrennt werden. Ohne ein wenig Linux-Erfahrung ist man aber hier aufgeschmissen.

Die Nextcloud

Die Nextcloud erreicht man nach erfolgreicher Beendung der Installationsroutine über https://nextcloudpi oder die vom Router für den Raspberry Pi vergebene IP-Adresse. In meinem Fall: https://192.168.178.32. Falls die DynDNS-Adresse zu diesem Zeitpunk schon eingerichtet und in die config.php über das Webinterface aufgenommen wurde, wäre die Nextcloud-Instanz auch über die vergebene Web-Adresse erreichbar, vorausgesetzt die Ports 80 und 443 sind am Router auf Port Forwarding gesetzt.  Das Login erfolgt nun über das am Anfang vergebene zweite Passwort. Begrüßt wird der neue Nutzer nun erstmalig von der eigenen Cloud-Instanz. Ratsam wäre es hier, einen neuen Benutzer als Administrator anzulegen und den User ncp später zu löschen.

Nextcloud - Login

Auch in der Nextcloud sind Änderungen am System mit äußerster Vorsicht vorzunehmen! Die Erstellung eines Backups ist aus meiner Sicht vorher ebenfalls unverzichtbar. So wurde ich z.B. nach einem App-Upgrade komplett ausgesperrt, da die Cloud dauerhaft im Wartungsmodus verharrte.

Auch anzumerken ist, dass die verwendete Nextcloud-Version nicht up to date ist, wie auch das auf Debian basierende Raspberry Pi OS. Das ist aber nicht weiter schlimm, da diese Versionen eine Langzeitunterstützung seitens der Entwickler erfahren. Die aktuelle Nextcloud-Version ist die 23. Auf NextcloudPi läuft Version 21 und Raspberry Pi OS 10, aktuell v11.

Nextcloud – Fehlermeldungen

Wie man oben im Bild sehen kann, kommt es noch zu diversen Fehlermeldungen, die ebenfalls ohne Serverkenntnisse nicht beseitigt werden können. Es müssen Pakete nachinstalliert werden, bzw. sind Eingriffe in die Konfigurationsdatei der Nextcloud-Instanz notwendig.

Fazit

NextcloudPi ist mit Sicherheit ein interessantes Projekt, welches es dem User erlaubt, schnell eine eigene Nextcloud-Instanz auf dem Einplatinencomputer Raspberry Pi einzurichten und in Betrieb zu nehmen. Die Erreichbarkeit aus dem Internet wird bei Bedarf über eine DynDNS-Adresse realisiert. Wer nicht die neueste Version der Nextcloud einsetzen muss und bereit zu Abstrichen ist, für den ist das System durchaus empfehlenswert.

Meinen Zugang zur Cloud konnte ich problemlos via 2FA mit einem YubiKey absichern.

Leider fehlt ein Turn-Server im System, welcher es quasi unmöglich macht Videokonferenzen via nachinstallierter App Talk zu führen. Ein Turn-Server kann aber im Nachhinein auf dem Raspberry Pi noch nachinstalliert werden. Auch hierzu sind Linux-Kenntnisse von Vorteil.

Fehlermeldung nach Nextcloud-Upgrade auf Version 21.0.3

12. August 2021 um 05:05

Beim Upgrade auf die Version 21.0.3 meiner Nextcloud erhielt ich folgende Fehlermeldung:

Letzte Cron-Job-Ausführung: Vor 5 Stunden. Check the background job settings.

Die Hintergrund-Aufgaben via CronDen System-Cron-Dienst verwenden, um die Datei cron.php alle 5 Minuten aufzurufen. Die cron.php muss durch den Systemnutzer „www-data“ ausgeführt werden.„, konnten nicht mehr ausgeführt werden.

Normalerweise kommt es i.d.R. zu solchen Meldungen eher beim Upgrade auf die nächste Major-Version. Da ich diesen Fehler nun auf zwei betreuten Nextcloud-Instanzen feststellen musste, konnte es nur etwas mit der Konfiguration der Server zu tun haben.

Nach ein wenig Recherche im Netz fand ich die Lösung. Das Command Line Interface des PHP Cache musste explizit nachträglich aktiviert werden. Wenn ich das richtig deute, ist dies aber nur in meiner älteren PHP 7.3 nötig.

Hierzu öffnet man im Editor nun die Config /etc/php/7.3/mods-available/apcu.ini mit

sudo nano /etc/php/7.3/mods-available/apcu.ini

trägt folgende Zeile am Ende ein

apc.enable_cli=1

und speichert diese ab. Bei Verwendung von FPM startet man das Ganze neu.

sudo /etc/init.d/php7.3-fpm restart

Wer kein FPM aktiviert hat, führt einen Restart des Webservers durch.

❌
❌