Normale Ansicht

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

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.

Eine Arduino Uhr

28. Februar 2024 um 18:00

Um auch einmal in die Welt des Arduino einzutauchen, habe ich mir ein paar Bauteile bestellt und etwas experimentiert. Da ich ein großer Uhren-Fan bin, hatte ich auch gleich eine adäquate Idee. Bei meiner Suche bin ich auf den Artikel „MAKING AN ARDUINO I2C-DIGITALUHR“ gestoßen. So war die Idee geboren, diese Uhr nachzubauen.

Nachdem alle Bauteile inkl. des Arduino Uno Rev. 3 bei mir eingetroffen waren, hieß es ein wenig löten. Die 7-Segmentanzeige HT16K33 sowie das Real Time Clock Modul DS1307 mussten mit Pins für das Steckboard versehen werden. Als das geschafft war, kämpfte ich damit den Code auf den Arduino zu übertragen.

Alte Arduino IDE Version

Hier begannen nun meine Probleme. Ich stellte mir das Vorhaben recht einfach vor. Ich musste doch einfach nur alle Bauteile verbinden, die benötigten Bibliotheken einbinden, den Code in die Software Arduino IDE hinein kopieren und diesen dann in den Arduino hochladen.

Leider funktionierte das aber nicht wie erwartet und ich als Arduino-Neuling war recht ratlos. Mein erster Gedanke war, dass vielleicht beim Löten etwas kaputtgegangen oder der Fehler bei der Verdrahtung zu suchen war. Meine Fehlersuche lief jedoch ins Leere. Da ich absoluter Neuling in der Programmierung dieses Mikrocontrollers war, musste ich mich zunächst einlesen, Videos anschauen, Arduino-Experten befragen und natürlich selbst ausprobieren und experimentieren.

Als ich mir den oben erwähnten Artikel nochmals etwas näher ansah, stellte ich fest, dass dieser Beitrag schon fast 12 Jahre alt ist. Also verwarf ich den Gedanken der Uhr erst und begann mit den Grundlagen.

Die von mir installierte Version von Arduino IDE war die 1.8.19. Hier gibt es etliche Beispiele etwas aus dem Gerät herauszuholen. Im Internet fand ich eine ähnliche Grafik, wie die hier abgebildete (Arduino Uno mit LED). Hier hat ein mutiger User eine LED in Pin 13 und GND gesteckt (hierfür sollte aber ein Vorwiderstand ca. 220 Ohm in Reihe geschaltet werden). Das schnörkellose Beispiel gefiel mir und ich konnte über „Blink“ dem Arduino das erste Lebenszeichen entlocken.

Arduino Uno mit angeschlossener LED an Pin 13
Arduino Uno mit LED

Da ich nun eigentlich das HT16K33 Display ansteuern wollte, suchte ich auch hierfür nach einem Beispiel. Ich fand so die gleichnamige Bibliothek und konnte auch hier einige Tests durchlaufen lassen. Das Display war also in Ordnung.

Einen selbigen Test führte ich mit der Real Time Clock DS1307 und der Bibliothek „RTClib“ durch. Hierbei bekam ich die Zeit im Monitor von Arduino IDE ausgegeben. Also war auch dieses Modul funktionstüchtig.

Nun war die Zuversicht sehr groß, dass ich nur noch alles zusammen stecken muss und ich die Uhr endlich zum Laufen bekomme. Leider klappte das aber nicht. Die in Arduino IDE 1.8.19 ausgegebene Fehlermeldung half mir an dieser Stelle nicht weiter.

Neue Arduino IDE Version

Obwohl ich der Meinung war, dass die verwendete Version mein Vorhaben realisieren kann, lud ich mir die aktuelle Version 2.3.2 herunter und entpackte diese im Downloads-Verzeichnis. Das Öffnen des Programms mit Rechtsklick auf Arduino-IDE -> Ausführen fand ich auf Dauer nicht so praktikabel, also baute ich mir ein Startup Icon mit folgendem Inhalt:

[Desktop Entry]
 Name=Arduino
 Comment=Arduino IDE
 Exec=/home/intux/Downloads/arduino-ide_2.3.2_Linux_64bit/arduino-ide
 Path=/home/intux/Downloads/arduino-ide_2.3.2_Linux_64bit/
 Icon=/home/intux/Downloads/arduino-ide_2.3.2_Linux_64bit/resources/app/resources/icons/512x512.png
 Terminal=false
 Type=Application
 Categories=Utility;Application;Development;

Dieses bekam den Namen Arduino und wurde erst einmal auf dem Desktop abgelegt. Dieser Starter wurde mit Rechtsklick -> Start erlauben aktiviert und danach in das Verzeichnis /usr/share/applications verschoben. So habe ich die aktuelle Version in mein System (Ubuntu 20.04 LTS) eingebunden.

Die Version 2.3.2 verriet mir nun beim Versuch den Code an den Arduino zu übertragen, wo der letzte und entscheidende Fehler lag. Es fehlte die Bibliothek „Adafruit_BusIO“.

Verdrahtung auf dem Steckboard Arduino Uno, DS1307 und HT16K33
Verdrahtung auf dem Steckboard

Nachdem diese nun eingebunden war, ließ sich der Code übertragen und das Herz der Uhr begann zu schlagen.

#include <Wire.h>
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"
#include "RTClib.h"

RTC_DS1307 RTC;
Adafruit_7segment disp = Adafruit_7segment();

void setup() 
{
  Wire.begin();
  RTC.begin();
  if (! RTC.isrunning()) 
  {
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
  disp.begin(0x70);
}

void loop() 
{
  disp.print(getDecimalTime());
  disp.drawColon(true);
  disp.writeDisplay();
  delay(500);
  disp.drawColon(false);
  disp.writeDisplay();
  delay(500);
}

int getDecimalTime()
{
  DateTime now = RTC.now();
  int decimalTime = now.hour() * 100 + now.minute();
  return decimalTime;
}

Hier eine Auflistung der für dieses Experiment verwendeten Bibliotheken:

Vielleicht möchte ja der ein oder andere Leser diese Erfahrung auch machen? Ich wünsche also viel Spaß beim Nachbauen der Arduino-Clock!

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.

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.

Chemnitzer Linux-Tage 2024

09. Januar 2024 um 17:41

Unter dem Motto „Zeichen setzen“ finden am 16. und 17. März 2024 wieder die Chemnitzer Linux-Tage statt. Die Veranstalter hoffen wieder auf einen großen Zuspruch im Hörsaalgebäude der TU Chemnitz an der Reichenhainer Straße.

Eintrittskarten zur Veranstaltung wird es im Vorverkauf geben. Da die Anzahl der Tickets aber begrenzt ist, wird es an der Tageskasse nur Restkarten geben.

Auch 2024 haben sich die Chemnitzer Linux-Tage einen Platz an einem März-Wochenende gesucht. Also Kalender gezückt und den 16. und 17. März 2024 dick einkreisen! Es lohnt sich bestimmt.

Eintrittskarten sind an der Tageskasse erhältlich.

Wir freuen uns sehr, euch im März vor Ort in Chemnitz in gewohnter Umgebung wiederzusehen. Über unsere Pressemitteilungen, Social Media könnt ihr euch diesbezüglich auf dem Laufenden halten.

Quelle: chemnitzer.linux-tage.de

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.

PHP-FPM – Eine Einführung in den FastCGI Process Manager für PHP

26. Dezember 2023 um 10:20

PHP-FPM (FastCGI Process Manager) ist eine leistungsstarke Erweiterung für den PHP-Interpreter, die die Ausführung von PHP-Skripten optimiert und verbessert. Entwickelt, um die Skalierbarkeit von PHP-basierten Webanwendungen zu erhöhen, spielt PHP-FPM eine entscheidende Rolle in modernen Webserver-Umgebungen.

Hintergrund

Traditionell wurde PHP als Modul für Webserver wie Apache bereitgestellt. Dieser Ansatz hatte jedoch seine Einschränkungen, insbesondere wenn es um die Verwaltung von Ressourcen und die Skalierung von Webanwendungen ging. PHP-FPM wurde als Lösung für diese Herausforderungen entwickelt, indem es die FastCGI-Protokollspezifikation implementiert und PHP-Skripte als separate Prozesse ausführt.

Vorteile von PHP-FPM

1. Ressourcenverwaltung:

PHP-FPM ermöglicht eine effiziente Verwaltung von Ressourcen, indem es separate Prozesse für jede Anforderung erstellt. Dadurch wird der Arbeitsspeicher besser genutzt und die Gesamtleistung der Webanwendung verbessert.

2. Skalierbarkeit:

Durch die Nutzung von PHP-FPM können Webentwickler ihre Anwendungen leichter skalieren, da sie die Anzahl der gleichzeitig ausgeführten PHP-Prozesse steuern können. Dies ist besonders wichtig in Umgebungen mit starkem Datenverkehr.

3. Isolierung von Anwendungen:

Jede PHP-Anwendung wird in ihrem eigenen Prozess isoliert, wodurch Konflikte zwischen verschiedenen Anwendungen vermieden werden. Dies trägt zur Stabilität des Gesamtsystems bei.

4. Anpassbare Konfiguration:

PHP-FPM bietet eine umfangreiche Konfiguration, die es Administratoren ermöglicht, Parameter wie Prozessprioritäten, Anzahl der Kinderprozesse und andere Einstellungen zu optimieren.

Konfiguration und Verwendung

Die Konfiguration von PHP-FPM erfolgt über die php-fpm.conf-Datei und optionale Pool-Konfigurationsdateien. Administratoren können Parameter anpassen, um die Leistung und Ressourcennutzung nach den Anforderungen ihrer Anwendung zu optimieren.

Die Integration von PHP-FPM in Webserver wie Nginx oder Apache erfolgt durch die Konfiguration von FastCGI-Servern. Dies ermöglicht eine reibungslose Kommunikation zwischen dem Webserver und PHP-FPM.

Fazit

PHP-FPM hat sich als wesentliches Werkzeug für die Verwaltung von PHP-Anwendungen in produktiven Umgebungen etabliert. Durch die Bereitstellung von effizienter Ressourcennutzung, Skalierbarkeit und Anwendungsisolierung spielt PHP-FPM eine Schlüsselrolle bei der Gewährleistung der Leistungsfähigkeit von PHP-Webanwendungen. Bei der Entwicklung und Verwaltung von Webanwendungen ist es wichtig, die Vorteile von PHP-FPM zu verstehen und richtig zu konfigurieren, um eine optimale Leistung zu gewährleisten.

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 AntiVirus for Files

23. November 2023 um 19:08

Heute möchte ich zeigen, wie ich meine Nextcloud mit dem Virenscanner ClamAV ausgerüstet habe. Da eine Cloud ja ein guter Verteiler von Daten ist, kann es schnell vorkommen, dass man mit einer Synchronisation viele Endgeräte unbeabsichtigt mit einem Virus infiziert. Um dies zu verhindern, bietet Nextcloud die App Antivirus for files aus dem hauseigenen App store an. Zur Nutzung der App sind jedoch ein paar Vorbereitungen auf dem Server nötig.

Da ich im privaten Alltag ausschließlich mit Linux arbeite, mache ich mir i.d.R. kaum wirkliche Sorgen um Viren, Trojaner und Co. Trotzdem möchte ich meine Cloud im höchsten Maße absichern und das System weiter härten.

Diese Anleitung bezieht sich auf eine Nextcloud-Instanz, welche auf einem Raspberry Pi mit Rasberry Pi OS gehostet ist und zeigt einen guten Ansatz, um die Verteilung von Viren zu verhindern.

Installation

Zuerst installiert man die Pakete clamav, clamav-freshclam und clamav-daemon mit folgendem Befehl.

sudo apt install clamav clamav-freshclam clamav-daemon -y

Im Anschluss muss der Dienst clamav-freshclam nochmals gestoppt werden, um die Virus-Datenbank aufzufrischen. Danach wird der Service erneut gestartet.

sudo service clamav-freshclam stop
sudo freshclam
sudo service clamav-freshclam start

Die Abfrage der Datenbank wird per Standard nun 12 Mal pro Tag automatisch ausgeführt.

Ein Check via

sudo service clamav-freshclam status

zeigt, ob der Dienst ordnungsgemäß läuft. Die Ausgabe sollte wie im Screenshot aussehen.

Terminalausgabe Service clamav-freshclam
Service clamav-freshclam

Ein weiterer Test gibt Aufschluss, ob der clamav-daemon ebenfalls korrekt arbeitet.

sudo service clamav-daemon status
Terminalausgabe Service clamav-daemon
Service clamav-daemon

Da dies bei mir nicht auf Anhieb funktionierte, musste ich diesen Service nochmals neu starten.

Dies erledigt man mit dem Befehl:

sudo service clamav-daemon restart

Natürlich sollte jetzt noch einmal der Status, wie zuvor erwähnt, abgefragt werden. Wenn beide Dienste fehlerfrei durchlaufen, kann man sich nun der Konfiguration der zuvor erwähnten App in der Nextcloud widmen.

Konfiguration

Nachdem beide Dienste korrekt arbeiten, installiert man die App Antivirus for files (Antivirus für Dateien). Unter Verwaltung -> Sicherheit wählt man folgende Einstellungen. Im Feld „Wenn infizierte Dateien während eines Hintergrund-Scans gefunden werden“ kann zwischen „Nur loggen“ oder „Datei löschen“ gewählt werden, wie mit einer infizierten Datei umgegangen werden soll.

Nextcloud Einstellungen Verwaltung Antivirus for files
Einstellungen – Antivirus for files

Das Abspeichern der Einstellungen sollte mit einem grünen „Gespeichert“ protokolliert werden. Wer das Ganze testen möchte, kann sich hierzu (Vorsicht: auf eigene Gefahr) einen Testvirus von eicar.org herunterladen und diesen in die Nextcloud hochladen.

Auf Windows-Systemen ist äußerste Vorsicht geboten, da man hier schnell vom eigenen Virenscanner in Quarantäne gesetzt wird. Diesen Test sollten nur Experten durchführen!

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ß!

Senden der Nachricht fehlgeschlagen

22. Oktober 2023 um 16:00

Seit 2016 verwende ich einen OpenPGP-Key, um bei Bedarf meine eMails zu verschlüsseln. Leider hat sich dieses Verfahren nicht so durchgesetzt, wie man es sich erhofft hat. Negativ wirkten sich auch u.a. auch die zahlreichen Attacken auf SKS-Keyserver und die dort hinterlegten öffentlichen Schlüssel aus. Durch die Verwendung des neuen Keyservers auf keys.openpgp.org kam jedoch etwas Ruhe in die ganze Sache. Zur Freude musste ich meinen Key nicht aufgeben, den ich tatsächlich hin und wieder einsetze.

Die eMails, welche ich von meinem Notebook versende, wurden bis letzte Woche mit diesem Key signiert. Das heißt, dass u.a. auch mein öffentlicher Schüssel an jede abgehende Nachricht angehängt wurde. Nun bemerkte ich aber, dass meine eMails, mit dem Hinweis „Senden der Nachricht fehlgeschlagen“, nicht mehr verschickt wurden. Schnell hatte ich herausgefunden, dass der Anhang Probleme machte. Also habe ich als Sofortmaßnahme die digitale Signatur mit OpenPGP abgeschaltet, was natürlich nur eine Übergangslösung darstellen sollte.

Heute konnte ich der Sache auf den Grund gehen und habe mir den Key in Thunderbird näher angesehen. Hier konnte ich jedoch nichts Außergewöhnliches feststellen.

Kein Backup, kein Mitleid

… so hört man es immer von den IT-Profis. Backups meines Schlüsselpaares existierten aber zum Glück. Bevor ich jedoch den Schlüssel in Thunderbird neu eingespielt habe, wurde meinerseits nochmals ein Backup des privaten Schlüssels über das Terminal mit

gpg --export-secret-keys -a user@domain.tld > secret.asc

angelegt. Dieses Backup packte ich nun zu den anderen. Hierbei fiel auf, dass der private Key nur 2,2kB groß war und das letzte Backup bei ca. 35kB lag. Eigentlich hätte doch der aktuelle Key größer sein müssen!?

Kurzerhand wurde also das letzte Backup des privaten Schlüssels in Thunderbird eingespielt und das Problem war tatsächlich gelöst. eMails können nun wieder mit digitaler Signatur versendet werden.

Ansicht Ende-zu-Ende-Verschlüsselung in Thunderbird privater OpenPGP-Schlüssel
Privater OpenPGP-Schlüssel in Thunderbird

Natürlich wurde gleich, mit dem oben erwähnten Befehl, ein aktuelles Backup erzeugt. Der neue private Key hat nun eine Größe von 36,8kB, was beruhigt.

Ende gut, alles gut!

QCAD im Straßenbau

22. Oktober 2023 um 04:00

Vor über 10 Jahren hatte ich im Artikel „QCad getestet“ darüber berichtet, ob die AutoCAD-Alternative QCAD (inzwischen mit vier großen Buchstaben geschrieben) im Baustellenalltag einer Straßenbaufirma einsetzbar wäre. Da man aber zu dieser Zeit keine Koordinaten punktgenau abgreifen konnte, habe ich das Projekt nicht weiter verfolgt.

Mit der aktuellen Version 3.28 sieht dies jedoch ganz anders aus. QCAD stellt nun tatsächlich eine Alternative zu anderen kommerziellen Programmen dar und ist durchaus für Bauleiter und Poliere geeignet, um Aufmaße zu erstellen bzw. kleinere Absteckungen vorzunehmen.

Installation

Es gibt zwei verschiedene Versionen von QCAD, zum einen QCAD Professional und zum anderen die freie und kostenlose QCAD Community Edition. Um die CAD-Software unter Ubuntu/Debian zu installieren, lädt man die aktuelle Version als „QCAD Demo“ herunter und führt das Installationsscript aus. Dazu wechselt man in das Download-Verzeichnis, wo die heruntergeladene Version liegt, macht das Script ausführbar

chmod +x qcad-*

und installiert mit

./qcad-*

die Software. Nun hat man 15 Minuten Zeit sich die Pro-Version genauer anzusehen. Ich persönlich finde die Zeit etwas kurz bemessen, um sich einen genauen Überblick über die Vollversion zu verschaffen. Nach Ablauf der erwähnten 15 Minuten wird über ein Widget angezeigt, dass die Testphase abgelaufen ist.

Pro vs. Community Edition

Nun kann man sich entscheiden die Pro-Version zu kaufen oder stattdessen auf die Community-Edition downzugraden. QCAD Professional verfügt über einen größeren Funktionsumfang, wie z.B. der Triangulation oder des DWG-Supports.

Umwandlung der Demo-Version in die Community Edition

Wie aus der Demo eine Community Edition wird, beschreibt der schweizer Entwickler folgendermaßen:

Wenn Sie die kostenlose Open Source QCAD Community Edition verwenden möchten, können Sie die Demoversion für Ihre Plattform herunterladen (siehe oben) und dann das QCAD Professional Add-On entfernen (klicken Sie im Widget „Testversion“ auf „Entfernen“ und folgen Sie den Anweisungen auf dem Bildschirm). Alternativ können Sie die QCAD Community Edition von den Quellen unten selbst kompilieren.

Quelle: https://qcad.org/de/download

Das Ganze lässt sich also relativ leicht realisieren. Hierzu sind einfach die Hinweise im Widget (nach Ablauf der Testphase) zu befolgen. Dies bedarf dem Löschen einiger Dateien im Installationspfad (siehe Grafik).

Anzeige zum Löschen der erforderlichen Dateien zum Downgrade auf Community Edition
Downgrade auf Community Edition

Ich habe mich für diesen Test bewusst für die für mich ausreichende Community-Variante entschieden, da diese alle Features beinhaltet, die ich zum Arbeiten benötige.

Anzeige QCAD Community Edition
QCAD Community Edition

Beispiele

Hier möchte ich einige wichtige Funktionen zeigen, die mir für den produktiven Einsatz genügen. Zum einen geht es um das Abgreifen von Koordinaten. Im gezeigten Beispiel können Koordinaten an einen Rover übergeben werden, um eine Bordanlage exakt auf der Baustelle abzustecken.

Anzeige Koordinaten Absteckpunkt Bord auf dem Lageplan
Koordinaten Absteckpunkt Bord

Eine andere wichtige Anwendung ist das Messen von Entfernungen im Lageplan.

Anzeige Entfernung messen auf dem Lageplan
Entfernung messen

Ein weiteres Tool hilft dabei, Flächen in Plänen zu messen. Dies geht ganz einfach in der linke Symbolleiste über Informationswerkzeuge -> Polygon Fläche.

Anzeige Fläche Verkehrsinsel auf dem Lageplan
Fläche Verkehrsinsel

Fazit

QCAD ist ein wirklich gutes Anwendungsprogramm, welches sich durchaus für den Baustelleneinsatz eignet. Der Preis von 40€ für die Vollversion ist im Gegensatz zu Preisen, die Mitbewerber aufrufen, ein echtes Schnäppchen.

OB diese Anwendung in einem Ingenieurbüro allerdings mit den großen CAD-Programmen mithalten kann, kann ich nicht beurteilen. Jedoch lohnt es sich, einen Blick auf die Software der RibbonSoft GmbH zu werfen.

QCAD ist für Windows, macOS und Linux erhältlich.

Campus Medien Tage 2023

20. Oktober 2023 um 04:00

Am 16. September 2023 fanden in Halle am Institut für Informatik der Martin-Luther-Universität die Campus Medien Tage 2023 statt.

Hierzu wurde ich von der Studierendenzeitschrift hastuzeit angefragt, einen kleinen Workshop zum Thema WordPress durchzuführen. Da dies eine gute Plattform bot, die freie Software WordPress vorzustellen, habe ich nicht lange überlegt und ja gesagt. Ich wusste zu diesem Zeitpunkt nicht, in wie weit das Puplikum schon mit diesem Content-Management-System gearbeitet hat, deshalb habe ich mich kurzerhand dazu entschieden auf die Grundlagen von WordPress einzugehen und die Basics etwas näher zu beleuchten.

Instagram-Post cameta_halle
Flyer der Campus Medien-Tage 2023
Campus Medien Tage 2023

Da tatsächlich nur ein Viertel der anwesenden Studierenden mit WordPress (aus administrativer Sicht) bisher in Berührung kam, lag ich mit meinem Gefühl hier durchaus richtig. Einige Fragen konnten in der anschließenden Diskussion noch beantwortet werden.

Neben meinem Vortrag gab es viele weitere interessante Themen, wie Grafikbearbeitung, die richtige Verwendung von Suchmaschinen, Künstliche Intelligenz, Fotografie, Tipps zum redaktionellen Schreiben und Rechtliches, in Form von Vorträgen und Workshops.

Geöffnetes Notebook im Workshop CaMeTa
Workshop CaMeTa

Alles in allem war es eine sehr gute Veranstaltung, organisiert und durchgeführt von engagierten jungen und wissbegierigen Menschen.

Gruppenfoto der Studierenden
Gruppenfoto

Upgrade von Linux Mint 20 -> 21.2

18. Oktober 2023 um 17:25

Aus gegebenen Anlass möchte ich heute zeigen, wie es möglich ist, von Linux Mint 20 auf die momentan aktuelle Version Linux Mint 21.2 abzugraden. Hintergrund war die Frage eines Users in der Community, ob ein Upgrade grundsätzlich möglich sein. Hierbei soll vermieden werden, dass das System neu installiert werden muss.

Um dies nachvollziehbar zu testen, wurde ein Linux Mint 20 auf meinem Testrechner installiert und alle notwendigen Schritte bei der Aktualisierung festgehalten.

Mint 20 „Ulyana“ – Aktualisierungsverwaltung
Mint 20 „Ulyana“ – Aktualisierungsverwaltung und Systeminformationen

20 – > 20.3

Zu aller erst wird Linux Mint auf die Version 20.3 angehoben. Dies erledigt man nach der Aktualisierung des Systems über Aktualisierungsverwaltung -> Bearbeiten -> System aktualisieren auf „Linux Mint 20.3 Una“. Ist dies geschehen, muss der Rechner neu gestartet werden.

Mint 20 „Una“ – Systeminformationen

20.3 -> 21

Nach dem Reboot führt man nun folgende Befehle aus:

apt update
apt install mintupgrade
sudo mintupgrade
apt remove mintupgrade
sudo reboot

Während des Mintupgrade muss man zwingend ein Backup via Timeshift anlegen. Dies dient der Sicherheit als Fallback. Falls doch etwas schief geht, kann man so auf das zuvor erstellte Backup zurückgreifen.

Das Paket mintupgrade wird nach dem erfolgreichen Upgrade wieder entfernt und das System neu gebootet.

Upgrade auf Linux Mint 21 „Vanessa“
erfolgreiches Upgrade auf Linux Mint 21 „Vanessa“

21 -> 21.2

Nun geht es weiter über Aktualisierungsverwaltung -> Bearbeiten -> System aktualisieren auf „Linux Mint 21.2 Victoria“. Nach dem abschließenden Reboot sollte nun die aktuelle Version 21.2 fehlerfrei laufen.

Bootreihenfolge im GRUB ändern

07. Oktober 2023 um 14:04

Ab und zu installiere ich ein Betriebssystem parallel zum Hauptsystem meines Testrechners. Je nach dem was ich gerade vorhabe, verweilt das neue OS doch etwas länger auf dem Computer, bis es wieder gelöscht wird.

Im konkreten Fall wurde ein Linux Mint neben Ubuntu installiert. Nach dem erfolgreichen Setup, steht das neue OS an erster Stelle der Bootreihenfolge. Das ist nicht weiter schlimm, da man bei jedem Neustart das Betriebssystem, welches es zu booten gilt, per Hand auswählen kann. Hierzu hat man per Standard zehn Sekunden Zeit.

GRUB Startmenü

Da aber Ubuntu häufiger genutzt wird als Linux Mint, habe ich kurzerhand die Bootreihenfolge angepasst.

Bootreihenfolge festlegen

Hierzu starte ich das zuletzt installierte Linux Mint und editiere, wie in der Abbildung zu sehen, die Datei /etc/default/grub.

GRUB Konfiguration
sudo nano /etc/default/grub

Da in der Bootreihenfolge Ubuntu an 3. Stelle platziert ist und die Reihenfolge mit 0 beginnt, ändert man im speziellen Fall GRUB_DEFAULT von 0 auf 2.

GRUB_DEFAULT=2

Werte in GRUB speichern

Nach dem Abspeichern werden die Werte mit

sudo update-grub

in den Bootmanager geschrieben. Nach dem Neustart bootet nun automatisch Ubuntu.

Tipp

Über GRUB_TIMEOUT kann die Verweildauer beim Booten angepasst werden; i.d.R reichen hier 2 Sekunden.

GRUB_TIMEOUT=2

Verknüpfung unter Ubuntu erstellen

01. Oktober 2023 um 10:10

Was mit Windows selbstverständlich ist, sollte auch mit Linux möglich sein. Heute möchte ich auf die Erstellung von Verknüpfungen eingehen, im speziellen Fall auf das Setzen von Softlinks unter Ubuntu.

Verknüpfungen haben den Vorteil, dass man auf eine bestehende Datei verlinken kann, ohne ein Duplikat dieser Datei anlegen zu müssen. Ein Beispiel hierfür wäre ein Verzeichnis, in dem alle Rechnungen liegen, man aber aus anderen Verzeichnissen genau auf diese zugreifen kann. Hier ist es sinnvoll mit Verknüpfungen wie unter Windows zu arbeiten. Diese Art von Verknüpfungen werden ganz einfach über sogenannte Softlinks realisiert.

Verknüpfung via Terminal

Im folgenden Beispiel zeige ich, wie man über das Terminal von der Datei /home/intux/Original/i.svg im Verzeichnis /home/intux/Verknüpfung/ einen Softlink auf das Original erzeugt. Hierzu öffnet man das Terminal und gibt folgenden Befehl (die Eingabe ist den entsprechenden Gegebenheiten anzupassen) ein:

ln -s /home/intux/Original/i.svg /home/intux/Verknüpfung/

Die Grafik zeigt die Verknüpfung auf i.svg.

Softlink

Verknüpfung über den Dateimanager

Das Ganze lässt sich natürlich auch grafisch lösen. Hierzu öffnet man Dateien und aktiviert unter „Optionale Aktionen im Kontextmenü“ den Schalter „Verknüpfungen erstellen“. Nun kann man im Originalverzeichnis mit einem Rechtsklick auf die entsprechende Datei eine Verknüpfung erstellen, die sich dann beliebig verschieben lässt.

Dateien – Einstellungen
Dateien – Einstellungen – Verknüpfung erstellen
Dateien – Einstellungen – Verknüpfung

Was ist ein eigentlich ein Raspberry Pi?

17. August 2023 um 16:56

Der Raspberry Pi ist ein kleiner und günstiger Computer, der viele spannende Möglichkeiten bietet, um zu lernen, zu basteln und zu programmieren. In diesem Artikel werde ich einige grundlegende Informationen über den Raspberry Pi geben, wie er entstanden ist, was er kann und wie du ihn nutzen kannst.

Der Raspberry Pi wurde von der Raspberry Pi Foundation entwickelt, einer gemeinnützigen Organisation aus Großbritannien, die sich zum Ziel gesetzt hat, die digitale Bildung weltweit zu fördern. Die Idee für den Raspberry Pi kam von Eben Upton, einem Informatiker und Dozenten an der Universität Cambridge, der feststellte, dass die Zahl der Studienanfänger in seinem Fach stark zurückgegangen war. Er vermutete, dass dies daran lag, dass die Schüler die Lust am Experimentieren mit Computern verloren hatten. Er wollte daher einen einfachen und billigen Computer schaffen, der die Neugier und Kreativität der jungen Generation wieder wecken sollte.

Der erste Raspberry Pi wurde im Jahr 2012 veröffentlicht und kostete nur 35 US-Dollar. Er bestand aus einer einzigen Platine mit einem Broadcom-Chip, der eine ARM-CPU, eine GPU, einen RAM-Speicher und verschiedene Anschlüsse hatte. Der Raspberry Pi hat kein Gehäuse, kein Netzteil, keine Tastatur, keine Maus und keinen Bildschirm. Diese Teile müssen separat gekauft werden. Der Raspberry Pi kann über den verbauten SD-Karten-Slot oder einen USB-Stick gestartet werden, auf dem ein Betriebssystem wie das Raspberry Pi OS installiert ist.

Der Raspberry Pi war ein großer Erfolg und wurde schnell von Hobbyisten, Lehrern, Schülern und sogar professionellen Entwicklern auf der ganzen Welt angenommen. Er wurde und wird für viele verschiedene Zwecke eingesetzt, wie zum Beispiel für Spiele, Musik, Kunst, Robotik, Wetterstationen, Heimautomation und vieles mehr. Die Raspberry Pi Foundation veröffentlicht regelmäßig neue Modelle und Versionen des Raspberry Pi, die leistungsfähiger sind als die vorherigen. Bis heute wurden mehr als 40 Millionen Raspberry Pi verkauft.

Der Raspberry Pi ist nicht nur ein Computer zum Spielen und Lernen, sondern auch eine Plattform zum Erstellen und Erfinden. Mit dem Raspberry Pi kannst du deine eigenen Projekte verwirklichen, indem du ihn mit Sensoren, Motoren, LEDs, Kameras oder anderen Geräten verbindest und ihn mit einer Programmiersprache wie Python steuerst. Du kannst auch die vielen Online-Ressourcen nutzen, die dir die Raspberry Pi Foundation oder die Raspberry Pi Community zur Verfügung stellen. Dort findest du Anleitungen, Beispiele, Tipps und Inspirationen für deine eigenen Ideen.

Spannende Projekte lassen sich so, dank der GPIO-Schnittstelle, problemlos umsetzen. GPIO steht für General Purpose Input Output und bezeichnet programmierbare Ein- und Ausgänge, die du für unterschiedliche Zwecke nutzen kannst. Der Raspberry Pi hat eine Reihe von GPIO-Pins entlang der oberen Kante der Platine. Diese Pins dienen als Schnittstelle zu anderen Systemen, Schaltungen oder Bauteilen, um diese über den Raspberry Pi zu steuern oder Daten auszutauschen.

GPIO-Schnittstelle Raspberry Pi 1

Mit den GPIO-Pins kannst du zum Beispiel LEDs, Taster, Sensoren, Motoren oder Displays anschließen und programmieren. Du kannst verschiedene Programmiersprachen wie Python, C oder Scratch verwenden, um mit den GPIO-Pins zu interagieren.

Es gibt viele spannende Projekte, die du mit dem Raspberry Pi verwirklichen kannst. Der Raspberry Pi ist ein kleiner und günstiger Computer, der sich für viele verschiedene Zwecke eignet. Hier sind einige Beispiele für Projekte, die du mit dem Raspberry Pi umsetzen kannst:

  • Webserver: Du kannst den Raspberry Pi als Webserver nutzen, um deine eigene Website zu hosten oder Daten zu speichern.
  • Videokonferenz-Station: Du kannst den Raspberry Pi mit einem Monitor, einer Kamera und einem Mikrofon ausstatten, um eine Videokonferenz-Station für Zoom, Skype und Co. zu erstellen.
  • Luftqualitätsmonitor: Du kannst den Raspberry Pi mit einem Sensor verbinden, um die Luftqualität in deiner Umgebung zu messen und anzuzeigen.
  • 3D-Drucker: Du kannst den Raspberry Pi mit einem 3D-Drucker verbinden, um ihn fernzusteuern, zu überwachen und zu optimieren.
  • Retro-Spielekonsole: Du kannst den Raspberry Pi mit einem Gehäuse, einem Controller und einer Software ausstatten, um eine Retro-Spielekonsole zu bauen, die viele klassische Spiele emulieren kann.
  • Smart Home: Du kannst den Raspberry Pi mit verschiedenen Sensoren, Aktoren und Geräten verbinden, um dein Zuhause smarter zu machen. Zum Beispiel kannst du Lichter, Heizung, Sicherheit oder Musik steuern.

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ß!

Nixie Uhr selbst bauen

09. Juli 2023 um 19:41

Vor meinem Urlaub hatte ich ein tolles YouTube-Video von Teslaundmehr gesehen, was mich dazu animierte, eine stylische Nixie Uhr selbst zu bauen. Das kleine Projekt wollte ich natürlich sofort in die Tat umsetzen. Nixie-Röhren erfreuten sich in den 1960er- und 1970er-Jahren vor allem als Ziffernanzeige in Messgeräten und elektronischen Rechenmaschinen großer Beliebtheit. Diese Röhren sind oft nur noch gebraucht erhältlich.

Auch wenn es sich hierbei um kein Open-Source Vorhaben handelt, möchte ich meine Erfahrung teilen und vielleicht den ein oder anderen zum Nachbauen animieren.

Ich habe also auf eBay nach den benötigten Nixie-Röhren IN-14 gesucht und musste feststellen, dass die Preise aufgrund der geopolitischen Lage enorm angezogen haben. Egal, ich hatte mein Projekt gefunden und gleich Röhren bei einem osteuropäischen Anbieter geordert, die dann fast einen Monat auf dem Weg zu mir waren.

Die Platine Zirrfa 5V Elektronische DIY kit in14 nixie digitale LED uhr platine kit PCBA habe ich auch, wie im Video beschrieben, bei AliExpress bestellt. Hierbei ist darauf zu achten, dass Glimmlampen für die Kommastellen der Anzeige dabei sind. Bei näherer Suche fand ich sogar ein schönes Holzgehäuse inkl. Glimmlampen, Messing-Accessoires und Metallknöpfen zur Bedienung der Uhr.

Für die Real Time Clock wurde noch eine 3V Batterie CR1220 benötigt, die ich bei Amazon bestellen konnte.

alle benötigten Bauelemente für die Nixie Uhr

Da alle Teile erst zwei Tage vor meinem Urlaub komplett bei mir zu Hause eintrafen, musste ich die Montage auf nach dem Urlaub verschieben.

Nun ist meine Nixie-Clock allerdings fertig und das Resultat kann sich wirklich sehen lassen.

Quelle: YouTube

Fazit

Die einzelnen Komponenten waren zwar nicht gerade günstig, jedoch ist die fertige Nixie Uhr ein echter Hingucker. Mit etwas handwerklichem Geschick beim Zusammenbau und Löten kann man einen einzigartigen Retro Zeitmesser selbst bauen.

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ß!

❌
❌