Kalender, Kontakte und Aufgaben via Baikal mit dem Raspberry Pi verwalten

Adressen, Aufgaben und Termine sind sehr persönliche Informationen, die man nach Möglichkeit nicht Firmen wie Google oder Microsoft anvertrauen sollte. Sofern man über einen kleinen Homeserver verfügt, kann man in wenigen Minuten seinen privaten Kalenderserver einrichten, der für den Datenaustausch zwischen Android, iPhone, Thunderbird, Fritz!Box usw. usw. sorgt.

Der Kalenderserver Baikal ist seit vielen Jahren ein Klassiker auf diesem Gebiet. Ob man damit nun nur seine eigenen Daten verwalten möchte oder z. B. einen Familienkalender für alle Geräte im Haushalt zur Verfügung stellen möchte – all das geht sehr einfach. Allerdings handelt es sich um einen reinen Sync-Server. Es wird also nicht ein Webkalender aufgerufen – man verwaltet alle Termine und Daten in seinen gewohnten Apps – also etwa via Thunderbird oder dem iPhone-Kalender.

Kalenderverwaltung in Betterbird/Thunderbird

Baikal benutzt für die Übertragung CalDAV (= Kalenderdaten) und CardDAV (= Kontaktdaten). Diese Protokolle werden von vielen Anwendungen automatisch erkannt. Unter iOS sind beide Protokolle von Haus aus in den Einstellungen aktivierbar, unter Android hat sich die App DAVx5 bewährt.

Installation auf dem Raspberry Pi

In meiner Paperless-ngx habe ich ja schon ausführlich beschrieben, wie einfach sich auf dem Raspberry Pi neue Anwendungen via Docker bzw. Docker-Compose installieren lassen: Man legt einen Pfad an, speichert eine kleine Textdatei, ruft Docker auf – und schon ist der neue Dienst im heimischen Netzwerk erreichbar.

Auch für Baikal würde ich diesen Weg vorschlagen. (Wer den Befehl „docker-compose“ bisher noch nicht auf dem Raspberry Pi benutzt hat, der findet in meinem Paperless-ngx-Artikel eine Schritt-für-Schritt-Anleitung für die Erstinstallation.)

1. Pfad anlegen

Wie man den Pfad nennt, ist gleichgültig. In diesem Beispiel habe ich ihn „baikal“ genannt. Also

sudo mkdir baikal
cd baikal

2. Textdatei erstellen

Nun eine Textdatei mit dem Namen „docker-compose.yml“ erstellen:

sudo nano docker-compose.yml

In diese Datei folgenden Text kopieren:

version: '3'

services:
  baikal:
    image: ckulka/baikal:latest
    container_name: baikal
    ports:
      - "82:80"
    volumes:
      - baikal-data:/var/www/html/Specific
    environment:
      BAIKAL_DAV_REALM: "MyBaikalServer"

volumes:
  baikal-data:

Achtung: Unter „ports“ habe ich „82:80“ eingetragen, da bei mir Port 80 schonen für einen anderen Webdienst belegt war. Standardeinstellung wäre „80:80“.

Datei sichern (Strg+O) und Editor beenden (Strg+X).

3. Server starten

Nun folgt auf der Kommandozeile der Befehl

sudo docker-compose up -d

Beim ersten Start werden einige Dateien geladen, nach 2 Minuten sollte alles installiert sein und der Kalender-Server mit der IP des Raspberry Pi erreichbar sein. Bei mir ist das „192.168.178.64:82„.

Baikal einrichten

Die Web-Oberfläche von Baikal wird einfach im Browser aufgerufen. „admin“ ist als Benutzername eingetragen, nur noch ein beliebiges Passwort vergeben. Das Ergebnis sieht dann so aus:

Unter dem Menüpunkt „Users and resources“ (oben auf der Seite) werden Anwender, Kalender und Adressbücher angelegt.

Für jeden Anwender können mehrere Kalender und Adressbücher definiert werden – also z. B. „Familie“, „Verein“, „Team“, „berufliche Kontakte“ usw. usw.

Mit „+ Add calendar“ wird ein neuer Kalender definiert. Dabei kann festgelegt werden, ob neben Terminen auch Aufgaben und Notizen übertragen werden sollen:

Sync einrichten

Zu jedem Kalender (bzw. Adressbuch) gehört ein eigener Link, der in die jeweilige Anwendung eingeben werden muss.

Beispiel Thunderbird:

  1. In den Kalenderbereich gehen.
  2. „Neuer Kalender“ (unten) anklicken.
  3. „Im Netzwerk“ auswählen.

Anschließend den in Baikal benutzten Nutzernamen und den dort kopierten Link eintragen:

Mit „Kalender suchen“ sollte Baikal dann direkt gefunden werden, Passwort noch eingeben.

Kalendertyp „CalDAV“ bestätigen und auf „Abonnieren“ klicken.

Nun steht der neue Kalender zur Verfügung:

Die Eintragungen – Termin mit Notiz, ToDo-Liste – werden mit den Apps der anderen Geräte synchronisiert. Dort muss man natürlich zuvor den gleichen Link eingetragen haben. Unter iOS werden z. B. die nativen Apps „Erinnerungen“ (für Aufgaben) und „Kalender“ verwendet.

Ähnlich geht man bei Adressbüchern/Kontakten vor. Diese kann man sogar mit der Fritz!Box synchronisieren, sofern der Raspberry Pi via „https“ zugänglich ist:

Der versteckte Admin-Bereich

Es gibt noch eine zweite Admin-Oberfläche, die leicht übersehen wird. Zu jedem Nutzernamen gibt es einen speziellen Link, der weitere Einstellungen ermöglicht:

Hier kann man etwa *.ics-Dateien des Kalenders exportieren, einzelne Kalender für andere Nutzer freigeben oder Schreib-/Leserechte definieren:

Insgesamt macht Baikal einen guten Eindruck – und da der kleine Raspberry Pi meist ohnehin nicht ausgelastet ist: Warum nicht einen Versuch wagen?

Eine Antwort schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert