Normale Ansicht

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

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!

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!

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.

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!

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

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.

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

Zugang über YubiKey zu WordPress verweigert

20. April 2023 um 19:07

Wer wie ich seine WordPress-Seite über das beliebte Plugin Two-Factor absichert, wird bestimmt bemerkt haben, dass man mit den neuen Versionen 112 von Firefox und Google Chrome über seinen U2F-Token keinen Zugang mehr zum Backend bekommt. Wohl dem, der bei der Einrichtung zusätzlich auf TOTP gesetzt hat und sich vom System Backup-Codes erstellen ließ. Über diese Hintertüren erhält man trotz Verweigerung des Hardware-Keys Zugang zur eigenen Webseite.

Was ist passiert?

Ich vermute, dass die neuen Browserversionen die Nutzung von FIDO verweigern und nur noch den neueren Standard FIDO2 bzw. Webauthn zulassen, was zur Folge hat, dass einige Dienste im herkömmlichen Sinne den aktivierten Zugang über USB-Token, wie u.a. YubiKey verweigern. Ein weiteres Indiz hierfür wäre, die kaputte Webauthn-Anmeldung in Nextcloud 26, welche heute mit Version 26.0.1 gefixt wurde.

Wie kann WordPress nun wieder via YubiKey abgesichert werden?

Eine einfache Lösung wäre vorerst das Plugin WebAuthn Provider for Two Factor zu installieren, welches auf dem Plugin Two-Factor aufsetzt, bis der Entwickler dieses an die neuen Gegebenheiten angepasst hat. Hierbei wird die weitere Auswahlmöglichkeit Webauthn in der Einstellung des Profils hinzugefügt. Der zuvor aktivierte FIDO-Token wird automatisch übernommen und unter FIDO2 genutzt. Somit ist die Webseite wieder über den zweiten Faktor abgesichert.

Eine passwortlose Anmeldung wie in der Nextcloud ist aber leider nicht möglich.

Webauthn in WordPress

Viel Spaß!

Remote-Desktop Ubuntu 22.04

28. März 2023 um 19:29

Wer via Remote auf den Bildschirm eines anderen PC zugreifen möchte, hat mit Ubuntu bereits ein mächtiges Hilfsmittel dieses Betriebssystems an Bord. Die Rede ist hierbei von Remmina. Remmina ist ein Remote Desktop Client, welcher u.a die wichtigsten Protokolle, wie VNC und RDP beherrscht. Diese Fernwartungssoftware kann, anders als X2Go, den GNOME 3 Bildschirm übertragen. Hierzu muss kein weiterer Desktop auf dem Rechner installiert werden, mit dem sich der Client verbinden soll. Aus diesem Grund ist Remmina das beste Tool, um Verbindungen von Ubuntu zu Ubuntu via VNC zu realisieren. Im folgenden Beispiel zeige ich die Einrichtung anhand einer virtuellen Maschine.

Installation

Auf die Installation von weiteren Paketen kann client- und serverseitig verzichtet werden. Alle nötigen Voraussetzungen erfüllen beide Ubuntu-Rechner schon mit der Grundinstallation des Betriebssystems.

Konfiguration

Zuerst sollte man am Host die IP-Adresse des Rechners ermitteln. Nur über diese lässt sich später eine Verbindung aufbauen. Dazu geht man über Einstellungen -> Netzwerk -> Kabelgebunden -> Einstellungen (siehe Grafik).

Identifizierung der IP am Host

Ist die Adresse bekannt, erteilt man am Host bzw. Server die Freigabe zum Teilen. Dies geht über Einstellungen -> Freigabe.

Freigabe am Host

Nun kann man sich entscheiden, ob nur der Desktop zum Beobachten oder dieser auch zum Bedienen frei gegeben werden soll. Im konkreten Fall soll der Client komplett am Host arbeiten können. Deshalb werden beide Schalter (Remote Desktop und Remote Control) aktiviert.

Freigabe am Host

Weiterhin wird das VNC-Protokoll angewählt. In den erweiterten Einstellungen kann man nun auswählen, wie sich der Client auf das System zuschalten darf. Ich bevorzuge hier die Variante zur Berechtigung über Benutzername und Passwort. Alternativ kann der User am Host den Remote-Zugriff manuell gewähren.

Freigabe über Passwortabfrage am Host

Damit sind am Host alle nötigen Einstellungen gesetzt. Möchte man allerdings den Desktop aus der Ferne über das Internet erreichbar machen, so muss im Router ein Portforwarding des Host auf den Port 5900 gesetzt werden. Hierbei wird am Client die öffentliche und nicht die interne IP-Adresse des Host verwendet.

Am Client startet man nun die Anwendung Remmina und erstellt ein neues Profil (siehe Grafik).

Erstellung Profil in Remmina (Client)

Dazu wird das Protokoll Remmina-VNC-Plugin gewählt.

Auswahl des Übertragungsprotokolls in Remmina (Client)

Nun gibt man unter Server die IP des Host (im lokalen Netzwerk die interne IP-Adresse) ein. Benutzername und Passwort werden aus den Voreinstellungen des zu übernehmenden Computers gewählt.

Über speichern und verbinden stellt man dann die erste Verbindung her.

Verwendung von VNC in Remmina (Client)

Die Verbindung sollte nun stehen und am Host kann gearbeitet werden.

Desktop des entfernten Computers auf dem Client

Am entfernten Rechner wird im Tray angezeigt, dass auf diesen aus der Ferne zugegriffen wird.

Bildschirmübernahme am Host

Docker und Docker-Compose auf dem RaspberryPi

03. März 2023 um 16:00

Heute möchte ich zeigen, wie man Docker und Docker-Compose auf dem RaspberryPi installiert, um WordPress als Testumgebung im heimischen Netzwerk zu betreiben. Docker-Container haben durchaus einen gewissen Reiz, wenn man nicht allzu intensiv in die Auswahl und Konfiguration von Server-Anwendungen eintauchen möchte. Man muss jedoch ein gewisses Vertrauen gegenüber des Maintainers mitbringen.

Eine gute Basis, um Docker auf einem Raspberry Pi laufen zu lassen, bietet das Raspberry Pi OS Lite (64-bit). Dieses ist schnell mit dem Raspberry Pi Imager auf die MicroSD geflasht.

Installation Docker und Docker-Compose

Nach dem ersten Start des Betriebssystems führt man nun ein komplettes Upgrade durch. Dies sollte man tun, um alle Pakete auf dem neuesten Stand zu bringen, damit es keine Probleme während der Installation gibt und alle Anwendungen richtig miteinander arbeiten.

sudo apt update && sudo apt upgrade

Raspberry Pi 4

Nach dem Upgrade installiert man Docker.

curl -fsSL test.docker.com -o get-docker.sh && sh get-docker.sh

Nun muss der aktuelle User der Gruppe Docker hinzugefügt werden, i.d.R. ist das der User pi. In meinem Fall ist es der Benutzer intux.

sudo usermod -aG docker ${USER}

Ein erster Test checkt, ob dies funktioniert.

groups ${USER}

Nun wird der Raspberry Pi neu gebootet, damit die Installation und die Konfiguration umgesetzt werden kann.

sudo reboot now

Im nächsten Schritt wird Python 3 mit den entsprechenden Abhängigkeiten eingespielt.

sudo apt install libffi-dev libssl-dev python3-dev python3 python3-pip

Jetzt kann Docker-Compose aufgesetzt werden.

sudo pip3 install docker-compose

Der Dienst Docker wird aktiviert

sudo systemctl enable docker

und mit dem Image hello-world kann getestet werden, ob Docker läuft.

docker run hello-world

Installation WordPress

Nun erstellt man das Verzeichnis wordpress

mkdir wordpress

und wechselt dort hinein.

cd wordpress

Mit dem Editor Nano wird nun eine docker-compose.yml erstellt

nano docker-compose.yml

und mit folgendem Inhalt befüllt.

version: '3.6'

services:
  wordpress:
    image: wordpress:5.7.2
    ports:
      - 80:80
    environment:
      - "WORDPRESS_DB_USER=root"
      - "WORDPRESS_DB_PASSWORD=vFvpKjJ7HUbkD3wyLDp4"
    restart: always
    dns: 8.8.8.8
    volumes: 
      - /srv/wordpress:/var/www/html

  mysql:
    image: jsurf/rpi-mariadb
    volumes:
    - /srv/wordpress-mysql:/var/lib/mysql
    environment:
    - "MYSQL_ROOT_PASSWORD=vFvpKjJ7HUbkD3wyLDp4"
    - "MYSQL_DATABASE=wordpress"
    restart: always

  phpmyadmin:
    image: phpmyadmin:apache
    environment:
     - PMA_ARBITRARY=1
    restart: always
    ports:
     - 9999:80
    volumes:
     - /sessions

Zum Schluss wird das Image geladen und die Container gestartet.

docker-compose up -d

Die fertige WordPress-Installation ist nun über die IP (http://IP-Adresse) des Raspberry Pi erreichbar. Die Einrichtung von WordPress erfolgt über das Webinterface.

Viel Spaß beim Nachbauen!

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

Ubuntu aktualisieren

09. November 2022 um 05:30

Ein Linux-System verhält sich heute nicht mehr so wie vor über 15 Jahren. Man kann nahezu alles grafisch auf modernen linuxoiden Systemen durchführen. Die Hürde für Ein- und Umsteiger liegt so sehr niedrig. Zum Glück!

Oft ist man aber am Terminal schneller und effizienter als im Umgang mit der grafischen Benutzeroberfläche. So verhält es sich auch mit den Aktualisierungen des OS. Hier verwende ich i.d.R. nur einen Befehl, um Aktualisierungen einzuspielen. Das folgende Kommando sucht in der Paketverwaltung APT nach Aktualisierungen, spielt diese ein und aktualisiert zudem noch installierte snap-Pakete.

sudo apt update && sudo apt upgrade && sudo snap refresh

Um das System anschließend noch zu bereinigen und nicht mehr benötigte Abhängigkeiten zu entfernen, führt man im Anschluss den Befehl

sudo apt autoremove

aus. Ein weiterer nützlicher Befehl löscht alle heruntergeladenen Installationsdateien aus dem Paket-Cache.

sudo apt clean

Wie man sieht, kann man mit drei simplen Kommandos das Betriebssystem schnell auf den aktuellen Stand bringen.

Viel Spaß!

XMPP und Co.

24. Oktober 2022 um 02:43

Ende 2016 habe ich das Experiment vServer begonnen. Mein Anspruch war, so viel wie möglich für mich selbst zu hosten, wie Webseiten, Mailserver, eine eigene Cloud, aber auch Kommunikationsdienste wie Mastodon und einen XMPP-Server.

Dieses Experiment neigt sich nun dem Ende zu.

Aus gegebenem Anlass möchte ich informieren, dass es wenig Sinn macht einen neuen XMPP-Account anzulegen. Weiterhin möchte ich den Usern raten, die noch einen Zugang auf intux.de besitzen, auf einen anderen Server umzuziehen, da ich meinen XMPP-Server zeitnah abschalten werde!

Standort in Flightradar festlegen

28. Januar 2022 um 16:58

Vor einiger Zeit hatte ich schon einmal einen Artikel zum Thema Luftraumüberwachung mit Flightradar24  geschrieben. An der eigentlichen Vorgehensweise der Installation und der einzusetzenden Hardware hat sich nichts gravierend geändert.

Der Befehl zur Installation des entsprechenden Pakets setzt jetzt allerdings SSL voraus.

sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"

Ich habe mich allerdings inzwischen für einen stärkeren Empfänger der Firma Nooelec mit RTL2832U/R820T2-Chip entschieden, was ein wenig mehr Reichweite bringt.

Standort sichtbar machen

Heute möchte ich zeigen, wie man auf der lokalen Karte den Standort der Station als Punkt markiert und Radien im Abstand von 50 NM um die Station einzeichnet (siehe Screenshot).

lokale Darstellung der empfangenen Flugzeuge

Hierfür ist es nötig die Konfigurationsdatei /etc/dump1090-mutability/config.js entsprechend anzupassen. Dazu werden die Einträge wie folgt geändert:

alte Konfiguration

// -- Map settings ----------------------------------------
...
// Default center of the map.
DefaultCenterLat = 45.0;
DefaultCenterLon = 9.0;
...
SiteShow = false; // true to show a center marker
SiteLat = 45.0; // position of the marker
SiteLon = 9.0;
SiteName = "My Radar Site"; // tooltip of the marker
...
// -- Marker settings -------------------------------------
...
SiteCircles = true; // true to show circles (only shown if the center marker is shown)
// In nautical miles or km (depending settings value 'Metric')
SiteCirclesDistances = new Array(100,150,200);
...

Unter DefaultCenterLat und DefaultCenterLon trägt man nun die Koordinaten der Empfangsstation ein, um die Karte bei Aufruf auf den entsprechenden Standort zu zentrieren. Die gleiche Vorgehensweise erfolgt unter SiteShow. Hierbei muss die Vorgabe jedoch noch von false auf true geändert werden. Die Radien legt man unter SiteCircles fest. In meinem Fall 50, 100 und 150 NM.

neue Konfiguration

// -- Map settings ----------------------------------------
...
// Default center of the map.
DefaultCenterLat = 51.44871;
DefaultCenterLon = 11.98762;
...
SiteShow = true; // true to show a center marker
SiteLat = 51.44871; // position of the marker
SiteLon = 11.98762;
SiteName = "My Radar Site"; // tooltip of the marker
...
// -- Marker settings -------------------------------------
...
SiteCircles = true; // true to show circles (only shown if the center marker is shown)
// In nautical miles or km (depending settings value 'Metric')
SiteCirclesDistances = new Array(50,100,150);
...

Viel Spaß!

❌
❌