SkillAgentSearch skills...

BaikalAnleitung

Tutorial / Anleitung um mit Baikal Kontakte und Kalender sicher zu verwalten und speichern

Install / Use

/learn @JsBergbau/BaikalAnleitung

README

Kalender und Kontakte mit Baikal sicher verwalten

Inhaltsverzeichnis

Leistungssteigerung von Heizkörpern

Da Google bisher seit über 3 Jahren mein Repository zur Steigerung der Leistung von Heizkörpern noch nicht indexiert hat, erfolgt hier eine Verlinkung. Gerade für die kalte Jahreszeit kann das sehr hilfreich sein, um nicht frieren zu müssen. Hier gehts zur Leistungssteigerung von Heizkörpern mit einfachen Lüftern um je nach Situation Energie zu sparen oder zumindest nicht zu frieren https://github.com/JsBergbau/HeizkoerperLeistungssteigerung

Einleitung

In diesem Tutorial geht es darum mit Baikal einen eigenen Kalender- und Kontakte-Server aufzusetzen. Hierfür hat sich für Kalender der CalDAV Standard etabliert, während es für Kontakte der CardDAV Standard ist. In dieser Anleitung wird, je nach Gebiet, mehr oder weniger ausführlich darauf eingegangen einen eigenen Server aufzusetzen.

Alternativen

Bevor wir mit der Installation beginnen, hier ein paar Alternativen:

  • Radicale: Webinterface ist standardmäßig nur auf localhost erreichbar. Die Oberfläche sieht im Vergleich zu Baikal altbacken aus. Freigabe von Kalendern zwischen Benutzern ist nicht direkt möglich. Lediglich über Umwege durch den Administrator kann es mit Verknüpfungen im Dateisystem realisiert werden. Ein automatisiertes Senden von Einladungsmails wie unten beschrieben ist nicht möglich.

  • DAViCal: Sehr mächtiger Funktionsumfang, auch das Freigeben von Kalendern. Ist aber aufwendiger, da unbedingt eine PostgreSQL-Datenbank benötigt wird. Funktionsumfang eignet sich eher für kleine Firmen/Teams, da Berechtigungen auch auf Gruppenebene vergeben werden können. So ist es z.B. möglich zu sehen, ob ein anderer Benutzer „frei" ist oder schon einen Termin hat. Wer sich dafür interessiert, kann hier ab 13:42 einen Einblick in die Administrationsoberfläche und ein paar Erklärungen bekommen.

  • Nextcloud: Bietet weit mehr als eine Kalender- und Kontaktesynchronisation. War aber selbst auf dem Raspberry PI 4 mit 2 GB RAM ziemlich langsam. Für Dateisynchronisierungen bevorzuge ich lieber Syncthing. Auch den Einrichtungsaufwand fand ich vergleichsweise hoch. Liegt wohl daran, dass es viel mehr zu tun gibt, weil es deutlich mehr als nur Kalender- und Kontaktesynchronisationen bietet.

Baikal

Kommen wir nun zu dem Programm mit dem wir uns in dieser Anleitung beschäftigen: Baikal

Download unter https://github.com/sabre-io/Baikal

Es benötigt eine lauffähige PHP-Umgebung und kann damit prinzipiell auf allen Systemen installiert werden, auf denen ein Webserver mit PHP verfügbar ist. Es kann mit einer MySQL-Datenbank arbeiten, aber genauso mit SQLite, einer Datenbank in einer einzigen Datei. Das ist die für uns bevorzugte Variante, da dies erheblich weniger Konfigurationsaufwand erfordert und viel portabler ist. Es braucht lediglich das Baikal-Verzeichnis gesichert zu werden um auf ein anderes System umzuziehen. Es bietet gleichzeitig die Möglichkeit einen Kalender für andere Benutzer freizugeben. Für eine Familie ist der Funktionsumfang vollkommen ausreichend. Dank Betrieb auf einem Raspberry PI-Zero W beträgt der Stromverbrauch weniger als 1 Watt. Die Leistung eines Raspberry PI Zero W ist im Betrieb vollkommen ausreichend. Solltet ihr einen leistungsfähigeren Raspberry PI zur Verfügung haben, könnt ihr die Baikal-Einrichtung auch auf diesem ausführen und dann die SD-Karte in den endgültigen Rasbperry-PI Zero W umstecken. Richtet in diesem Fall die Konten in Thunderbird und DAVx<sup>5</sup> bitte erst danach ein, weil sich wahrscheinlich die IP-Adresse eures Raspberry PIs ändert. Gegebenenfalls solltet ihr in eurem Router einrichten, dass er immer dieselbe IP-Adresse bekommt, sonst ist er eventuell nicht mehr unter der eingerichteten Adresse erreichbar. Bei einer Fritzbox ist das nicht notwendig, sofern der Raspberry PI immer läuft (kurze Unterbrechungen natürlich ausgenommen).

Setup

In diesem Beispiel nehmen wir einen Raspberry PI mit Nginx als Webserver. Als Basis nehmen wir ein Raspbery PI OS Lite Image und flashen es via Etcher auf eine SD-Karte.

Raspberry PI vorbereiten

<img width="700" src="./images/image30.png" />

Wer hier weitere Unterstützung braucht, kann z.B. nach dieser Anleitung https://tutorials-raspberrypi.de/rapbian-betriebssystem-raspberry-pi-image-sd-karte-flashen-windows-mac-linux/ vorgehen. Raspbian Buster Lite findet man auf https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit

Nach dem Schreiben des Abbilds auf die SD-Karte, nehmen wir sie kurz aus dem Kartenleser und stecken sie wieder ein. Dadurch bekommen wir nun Zugriff auf ein Laufwerk namens Boot. Die Fehlermeldungen können ignoriert werden. Jetzt erstellen wir eine Datei ssh.txt (oder auch nur ssh möglich). Wer einen Raspberry PI Zero W verwendet, kann auch eine wpa_supplicant.conf hier ablegen, damit der PI automatisch den Weg ins WLAN findet.

Eine Anleitung hierfür findet sich unter https://pi-buch.info/wlan-schon-vor-der-installation-konfigurieren/ Auch wenn dort von Raspbian Stretch (=Vorgängerversion) die Rede ist, funktioniert der dort beschriebene Weg genauso.

<img width="700" src="./images/image32.png" />

Anschließend starten wir den Raspberry-PI. Via SSH können wir uns nun verbinden. Wer hierbei Unterstützung braucht, findet sie hier https://www.elektronik-kompendium.de/sites/raspberry-pi/2206121.htm

Die IP bekommt man meistens mit einem ping raspberrypi oder ping raspberrypi.local heraus. Ansonsten kann man auch mal im Router bei den Netzwerkgeräten nachsehen. Weitere Hilfe zum Herausfinden der IP gibt's unter https://www.elektronik-kompendium.de/sites/raspberry-pi/1906271.htm

Als erstes wird das System auf den aktuellen Stand gebracht.

sudo apt update && sudo apt upgrade -y

Je nach Paketen, z.B. bei Firmware oder Kernel Updates ist ein Neustart notwendig. Dieser wird mit sudo reboot erledigt

Anschließend werden die benötigten Pakete installiert

sudo apt-get install nginx php-fpm php-sqlite3 composer php-xml php-curl -y

Baikal Installation

Die aktuelle Release-Version von Baikal ist 0.7.1. Um immer auf dem aktuellsten Stand zu sein erstellen wir hier die aktuellste Version direkt aus dem Quellcode. Teilweise findet man Artikel die einem nahelegen, dass man noch an der PHP-Sicherheit etwas einstellen müsste. Dies ist heutzutage nicht mehr notwendig, siehe https://serverfault.com/questions/627903/is-the-php-option-cgi-fix-pathinfo-really-dangerous-with-nginx-php-fpm

Update 07.07.2020. Mittlerweile ist Baikal 0.7.1 als Release-Version verfügbar. Wir können auch weiterhin über den in diesem Abschnitt beschriebenen Weg stets die aktuellste Version installieren.

cd /home/pi
mkdir DiensteUndProgramme
cd ./DiensteUndProgramme
git clone https://github.com/sabre-io/Baikal
cd Baikal
composer install

Diese Anleitung verwendet Port 9999 für Baikal. Wie ich allerdings nach dem Erstellen der Screenshots festgestellt habe, läuft ebenfalls Influxdb 2.0 auf Standardmäßig auf Port 9999. Wenn ihr also mal eine InfluxDB auf demselben System aufsetzen wollt (z.B. für Heimautomation), wählt bitte einen anderen Port, z.B. 9998 und ersetzt überall, wo ihr hier 9999 seht durch 9998.

Webserver-Konfiguration

Erstellen der Datei baikal-nginx.site mit diesem Inhalt (z.B. via nano baikal-nginx.site):

server {

    listen

Related Skills

View on GitHub
GitHub Stars82
CategoryDevelopment
Updated24d ago
Forks5

Security Score

85/100

Audited on Mar 4, 2026

No findings