Weg von Google – eigener CalDAV- und CardDAV-Server mit Baïkal
Inhaltsverzeichnis
Ich will weg von Google. Verstehe mich bitte nicht falsch, deren Services funktionieren ja eigentlich wunderbar. Brauchbare Apps, die von der ausgezeichneten Suche profitieren, und das alles kostenlos. Kostenlos, wenn man die eigenen Daten nicht als Bezahlung für die Verwendung des Dienstes sieht: Was Du in Gmail schreibst oder empfängst, liest Google fröhlich munter mit.

Selbst nutze ich Gmail seit Jahren. Der Bedienkomfort ist gross, meine Lust, mich davon loszulösen, bisher gerade deshalb eher klein. Das Problem bringen auch andere mit Gmail vergleichbare Dienste wie iCloud oder die Online-Variante von Outlook mit sich: Sie sind so einfach zu benutzen, dass sich von ihnen loszulösen einer Herkulesaufgabe gleichkommt. Gerade weil mir Datenschutz ein grosses Anliegen ist, habe ich mich aber doch an den Schritt gewagt und darf entwarnen: Es ist nicht so schwierig, wie es klingt. Ich möchte Dir hier erklären, wie ich vorgegangen bin.
Welche App kommt zum Einsatz?
Ich brauche E-Mail, Kalender und Kontakte. Damit E-Mails bei uns funktionieren, muss ich nichts Weiteres tun – ich habe im Vorfeld bereits eine Domain registriert und diese auf meinem Webhosting eingerichtet.
Das Synchronisieren von Kalendern und Kontakten benötigt entsprechende Software auf Server-Seite. Da muss also erst mal ein Tool her, das beides kann. Kriterium für die verwendete Software: Sie soll die gängigen Synchronisierungs-Standards unterstützen, damit ich meine Kalender und Kontakte mit entsprechenden Apps synchronisieren kann, und quelloffen sein. Das bedeutet, dass der Quellcode öffentlich einsehbar ist, wovon ich mir bei einer viel genutzten App eine gut gepflegte und sichere Software erhoffe, die von anderen überprüft werden kann.
Fündig geworden bin ich bei Baïkal, einem CalDAV- und CardDAV-Server, der alle oben genannten Anforderungen erfüllt und zudem kaum Speicherplatz und Rechenleistung benötigt. Die Software kann auf sämtlichen unserer Webhostings eingerichtet werden.
Disclaimer
Ich möchte Dich darauf hinweisen, dass cyon keinen Support für die in der Anleitung erwähnten Applikationen anbietet. Falls Du bei Baïkal einen Bug finden solltest, kannst Du ihn auf der Projektseite von Baïkal auf GitHub melden. In allen weiteren Fragen hilft Dir vielleicht auch die offizielle Dokumentation.
Einrichtung und Setup von Baïkal
Vorbereitungsarbeiten in my.cyon
- Richte gemäss unserer Anleitung «Subdomain auf Ihrem Webhosting einrichten» eine neue Subdomain ein. In unserem Beispiel habe ich baikal.oliverorange.ch verwendet. Die Subdomain zeigt dabei auf ein eigenes Unterverzeichnis der Domain selbst, bei mir ist das
~/public_html/baikal/html. - Installiere gemäss unserer Anleitung «SSL-Zertifikat (Verschlüsselung) einrichten» ein kostenloses SSL-Zertifikat für Deine Subdomain. Achtung: Wenn die Subdomain neu ist, kann es ein Weilchen dauern, bis die Zertifizierungsstelle die Subdomain abrufen und das Zertifikat aktiviert werden kann.
- Gehe zu «Datenbank» > «MySQL» und richte dort gemäss unserer Anleitung «Datenbank erstellen» eine neue Datenbank ein. Bei mir heisst diese «olivero2_baikal». Kopiere Datenbankname, den Benutzer und dessen Passwort. Du brauchst diese Daten gleich bei der Installation von Baïkal.
Installation von Baïkal
- Kopiere über GitHub den Link zur ZIP-Datei der neusten Version von Baïkal, der folgendes Format hat:
https://github.com/sabre-io/Baikal/releases - Verbinde Dich via SSH auf Dein Webhosting und wechsle ins Verzeichnis
~/public_html/, wo Du folgenden Befehl ausführst:
wget [Link zum Archiv] - Entpacke das ZIP-Archiv und füge der .htaccess-Datei im Verzeichnis
~/public_html/baikal/htmlgemäss unserer Anleitung «Weiterleitung auf HTTPS einrichten» eine Weiterleitung auf HTTPS hinzu, damit Login-Daten sicher übertragen werden.
- Rufe Baïkal über die Subdomain auf; in unserem Fall ist das https://baikal.oliverorange.ch. Dort sollte nun der «Baïkal initialization wizard» erscheinen. Wähle für «Server Time zone» Deine lokale Zeitzone aus. Der Rest der Einstellungen kannst Du belassen, wie sie sind. Wähle zudem ein starkes Admin-Passwort, das den Admin-Bereich Deiner Installation schützt. Keine Sorge – alle hier eingegebenen Daten kannst Du später wieder ändern. Speichere die Änderungen.

- Auf der nächsten Seite muss uns das Feld «SQLite file path» nicht interessieren – wir wollen MySQL verwenden, und setzen daher den Haken bei «Use MySQL». Danach geben wir die MySQL-Daten an, die wir in einem früheren Arbeitsschritt kopiert haben. Als Wert für «MySQL host» verwendest Du «localhost». Speichere zum Schluss Deine Änderungen.

- Bestätige mit einem Klick auf «Start using Baïkal» und logge Dich auf der nachfolgenden Seite mit dem Benutzernamen «admin» und dem in Schritt 3 gewählten Passwort für Deinen Admin-Zugang ein.

Die Migration Deiner Daten
Zeit, Deine Daten umzuziehen. Ich erkläre Dir, wie Du die Migration Deiner Daten von Google auf Dein Webhosting Schritt für Schritt durchführst.
Daten bei Google herunterladen
Bevor Du auch nur überhaupt daran denkst, Deinen Google-Account zu löschen, solltest Du Deine Daten bei Google herunterladen und das Backup sichern.
E-Mails von Google auf Dein Webhosting umziehen
Du brauchst: ein lokales E-Mail-Programm, in welchem Du IMAP-Konten einrichten kannst. Mit Mozilla Thunderbird klappt der Umzug erfahrungsgemäss prima, weshalb wir in den nachfolgenden Schritten dieses Programm verwenden, in anderen E-Mail-Programmen sollte es aber auch funktionieren.
- Richte Deine Gmail-Adresse in Mozilla Thunderbird ein. Wichtig ist, dass Du die Gmail-Adresse als IMAP-Adresse einrichtest. Bei der Einrichtung kannst Du Dich an die offizielle Anleitung seitens Mozilla halten. Achtung: Falls Du bei Google die Zwei-Schritt-Verfizierung nutzt, musst Du für die Einrichtung der E-Mail-Adresse ein App-Passwort generieren.
- Richte Deine bei uns gehostete E-Mail-Adresse nun auch in Thunderbird ein. Unsere Anleitung «Thunderbird» leitet Dich durch die nötigen Schritte.
- Sobald beide E-Mail-Adressen eingerichtet und synchronisiert wurden (das kann bei grösseren Konten ganz schön lange dauern), kannst Du die E-Mails mittels «Drag und Drop» von Deiner Gmail-Adresse in Deine cyon-Adresse umziehen. Auch hier gilt: hast Du ein grosses Gmail-Postfach, wird der Umzug etwas dauern. Du siehst in der Fussleiste von Thunderbird, wie weit dieser ist.
Google-Kalender auf Dein Webhosting umziehen
Du brauchst: Ein lokales Kalender-Programm, in welchem Du Kalender via CalDAV abonnieren kannst. Das sollte im besten Fall auch gleich das Programm sein, das Du in Zukunft für die Nutzung Deiner Kalender verwendest. In unserem Beispiel nutze ich die Desktop-Variante von «Kalender» von Apple, Du kannst natürlich aber das Kalender-Programm Deiner Wahl nutzen. Natürlich kannst Du die Kalender auch mit Mobilgeräten synchronisieren. Egal, ob Du Desktop oder Mobilgerät verwendest: Die Zugangsdaten für die Einrichtung sind immer die selben.
- Exportiere Deinen bestehenden Google-Kalender, indem Du der offiziellen Anleitung von Google folgst. Entpacke im Anschluss das heruntergeladene Archiv. Die .ics-Datei benötigen wir für den Import der Daten.
- Gehe zu «Kalender» > «Account hinzufügen …» und wähle dort «Anderer CalDAV-Account …»

- Für «Accounttyp» wählst Du «Manuell». Gib hier nun die Zugangsdaten Deines in Baïkal eingerichteten Benutzers ein und melde Dich an.

- Das CalDAV-Konto wird synchronisiert. Weil es noch keine Daten enthält, siehst Du noch keine Termine.
- Um Deine Kalenderdaten von Google in Deinen neuen Kalender zu importieren, wählst Du diesen an und gehst dann zu «Ablage» > «Importieren …», worauf Du im Finder-Fenster die zuvor heruntergeladene .ics-Datei auswählst. Im darauf erscheinenden Fenster «Ereignis hinzufügen» wählst Du dann Deinen neuen Kalender aus. Und voilà – die Daten werden importiert.
- Du kannst nach Bedarf in Baïkal weitere Kalender für Deinen Benutzer erstellen. Diese werden automatisch mit Deinem Kalender-Programm synchronisiert.
Google-Kontakte auf Dein Webhosting umziehen
Du brauchst: Ein lokales Kontakte-Programm, in welchem Du Kontakte via CardDAV abonnieren kannst. Auch hier sollte das im besten Fall gleich das Programm sein, das Du in Zukunft für Deine Kontakte verwendest. Bei mir ist das die Desktop-Variante von «Kontakte» von Apple, Du kannst natürlich aber das Kontakte-Programm Deiner Wahl nutzen. Selbstverständlich kannst Du auch die Kontakte mit Mobilgeräten synchronisieren, indem Du eine entsprechende App verwendest.
- Exportiere Deinen bestehenden Google-Kontakte, indem Du der offiziellen Anleitung von Google folgst. Wähle als Export-Format «vCard» aus. Es sollte eine Datei mit Namen «contacts.vcf» heruntergeladen werden. Diese benötigen wir für den Import der Daten.
- Gehe zu «Kontakte» > «Account hinzufügen …» und wähle dort «Anderer Kontakte-Account …»

- Für «Accounttyp» wählst Du «Manuell». Gib hier nun die Zugangsdaten Deines in Baïkal eingerichteten Benutzers ein.

- Das CardDAV-Konto wird synchronisiert. Weil es noch keine Daten enthält, siehst Du noch keine Kontakte.
- Um Deine Kontakte von Google zu importieren, wählst Du in der linken Spalte das CardDAV-Konto an und gehst dann zu «Ablage» > «Importieren …», worauf Du im Finder-Fenster die zuvor heruntergeladene Datei «contacts.vcf» auswählst. Und zack, sind die Kontakte synchronisiert.
Kalender freigeben und teilen
Du kannst einen in Baïkal erstellten Kalender mit anderen Nutzern teilen.
- Rufe den entsprechenden Kalender über
https://baikal.oliverorange.ch/dav.php/calendars/[baïkal_benutzer]/[calendar_token_id]auf. Die Token ID für den Standard-Kalender lautet «default», für alle anderen Kalender hast Du die Token-ID bei der Erstellung des jeweiligen Kalenders generiert (sie kann aus Zahlen, klein geschriebenen Buchstaben und Querstrichen bestehen).
- Unter «Actions» > «Share this resource» kannst Du nun im Feld «Share with (uri):» die E-Mail-Adresse eines anderen Benutzers Deiner Baïkal-Installation angeben. Vergiss dabei den «mailto:»-Präfix nicht. Im Feld «Access» kannst Du auswählen, ob der Benutzer dabei Schreib-, Lesezugriff oder beides erhalten soll. Falls Du dem Benutzer irgendwann mal diesen Zugriff entziehen möchtest, machst Du das auch über dieses Feld.

- Voilà: Mit einem Klick auf «share» kann der angegebene Benutzer nun auf Deinen Kalender zugreifen. Es ist keine weitere Aktion nötig; der Kalender wird automatisch synchronisiert, sofern der Benutzer bereits ein Kalender-Programm verwendet.
Baïkal aktualisieren
Wie jede andere Software, die Du auf Deinem Webhosting installierst, solltest Du Baïkal auf dem neusten Stand halten. Damit stellst Du sicher, dass erkannte Sicherheitslücken zeitnah geschlossen und nicht mehr ausgenutzt werden können. Zudem erlaubt es Dir, neue Funktionen zu verwenden.
- Erstelle ein Backup Deiner MySQL-Datenbank. Da die Datenbank alle Kalender- und Kontaktdaten enthält, ist dieser Schritt besonders wichtig.
- Erstelle ein Backup Deines Installationsverzeichnisses von Baïkal.
- Lade über GitHub die aktuellste Version von Baïkal herunter und lade die Daten über SSH/SFTP oder FTPS in das Zielverzeichnis der Subdomain hoch ohne dabei den Ordner «Specific» zu überschreiben. Die dort liegenden Daten werden zusammen mit der Datenbank von Baïkal benötigt. Alle anderen Dateien darfst Du ohne Bedenken überschreiben
- Öffne das Administrations-Panel, das in unserem Beispiel unter liegt, und folge den Anweisungen.
Deine Daten am richtigen Ort
Wenn Du ganz sicher bist, das alles wie gewünscht funktioniert, kannst Du Dein Google-Konto löschen (oder erst mal einen Autoresponder einrichten, der Absender über Deine neue E-Mail-Adresse informiert) und Deine E-Mail-basierten Logins auf Deine eigene E-Mail-Adresse umändern, damit Du das Gmail-Konto nicht mehr benötigst. Auf eine Weiterleitung von Deiner Gmail-Adresse auf Deine eigene E-Mail-Adresse würde ich dabei übrigens verzichten – das wirkt der Absicht entgegen, E-Mails nicht mehr von Google mitlesen zu lassen.
Geschafft! Deine E-Mails, Kalender und Kontakte haben auf Deinem Webhosting eine neue Heimat gefunden und Du hast Dir ein Stück Freiheit in Sachen Privatsphäre erkämpft.
TL;DR
Mit Baïkal betreibst Du Deinen eigenen CalDAV- und CardDAV-Server und hast so die volle Kontrolle über Deine Kalender- und Kontakt-Daten.
Bereit für den Wechsel?
Wechsle jetzt zu cyon für ein souveräneres und nachhaltigeres Internet.
Beteilige dich an der Diskussion
60 Kommentare
Hallo, Danke für die Anleitung, Kontakte und Kalender laufen tadellos. Nun wollte ich auch die Funktion «Aufgaben» via CALDAV mit benutzen. Mir ist nach viel Recherche aber immer noch nicht klar wie ich das konfigurieren müsste damit es in Thunderbird und auf Android laufen könnte. Eine Idee wie ich das umsetzen könnte?
Konfiguration: Thunderbird, mit DAV x5 auf Android
Hallo Robert
Danke für deine Frage. Super, dass Kontakte und Kalender schon mal laufen. :-)
Für Thunderbird kannst du Folgendes versuchen: Wechsle in den Aufgaben-Bereich und füge dort einen neuen Kalender hinzu. Wähle «Im Netzwerk» und als Format «CalDAV», dann deine CalDAV-URL, Benutzername und Passwort eingeben – fertig. Die Zugangsdaten sind dieselben wie bei deiner bestehenden Kalender-Einrichtung.
Für DAVx5 auf Android sollte es ähnlich funktionieren: Konto hinzufügen, CalDAV-URL eingeben und anmelden. In den Sync-Einstellungen kannst du dann festlegen, ob auch Aufgaben synchronisiert werden sollen.
Bitte beachte, dass die Anleitung im Blogbeitrag diese Konfigurationen leider nicht abdeckt. Wir von cyon bieten für Baïkal keinen offiziellen Support. Weitere Hilfe findest du in der Baïkal-Dokumentation oder in den Kommentaren hier.
Viel Erfolg!
Beste Grüsse, Svetlana
Vielen Dank für diesen Beitrag. Die eigentliche Installation lief wie geschmiert und wie bei den meisten hier. Aber auch ich kriege keine Verbindung hin aus dem Mac Kalender. Erst rödelt er ewig rum und dann gibts einen Fehler bei der Identifiezierung.
Ich habe die verschiedenen Varianten mit der Domain-Konfiguration und mit dem .htacces-File ausprobiert. Aber es klappt nicht und nach 56 Kommentaren ist auch nicht mehr klar, was jetzt der Weg ist.
Der Beitrag ist in der Tat bereits etwas älter, weshalb sich zwischenzeitlich bei Baikal Dinge geändert haben könnten. Gerne verweise ich dich auf die offizielle Dokumentation: https://sabre.io/baikal/
Ich krige leider komische Fehlermeldungen wenn ich per IOS oder Macbook verbinde, und habe eigentlich das HTaccess angepasst (der eine satz verwirrt mich allerdings)
«In diesem Fall hilft folgender Eintrag in die Steuerungsdatei .htaccess, welche ein Verzeichnis oberhalb der Baïkal-Subdomain liegen muss» –> welches verzeichniss oberhalb ist hier gemeint?
Haben den Fehler gefunden. mit der neuen Version braucht es andere redirects:
RewriteRule /.well-known/carddav /dav.php [R=308,L]
RewriteRule /.well-known/caldav /dav.php [R=308,L]
muss nun alles nach /dav.php
https://sabre.io/baikal/troubleshooting/
Anstelle von wget und unzip kann auch direkt git verwendet werden:
$ git clone https://github.com/sabre-io/Baikal .
Beachte den Punkt, damit kein Unterverzeichnis erstellt wird.
Vielen Dank für die detaillierte gut verständliche Anleitung.
Baikal 0.6.1 läuft schon 5 Monate mit 11 Benutzern tadellos.
Nun wollte ich die sharing-Funktion ausprobieren, wie im Kapitel «Kalender freigeben und teilen» beschrieben. Ich kann allerdings unter «Actions» nur neue Kalender eingeben, sharing erscheint nicht. Was soll ich zuerst versuchen: sabre plugins oder update auf 0.9 ? möchte natürlich das tadellos laufende System so wenig wie möglich antasten.
Hey Markus, ich würde Dir hier auf jeden Fall zuerst das Update empfehlen. Falls Du die bestehende Installation nicht beeinträchtigen willst, würde ich in Deinem Fall eine Neuinstallation auf einer Subdomain zum Testen machen.
Ich verwende Baikal für die Bereitstellung von Kontakten für meine gesamte Sippe.
Seit jetzt einem Jahr bin ich erfolglos auf der Suche nach einem funktionierenden (nicht veraltetem) Webinterface für CardDAV.
Nur dann können Nutzer, die nicht dauerhaft die Kontakte abonnieren wollen, auch mal in der Sammlung nachsehen.
Kennt jemand eine Lösung?
Was habe ich bereits ausprobiert?
https://inf-it.com/open-source/clients/carddavmate/
Ist veraltet und funktioniert nicht.
Hallo zusammen
Wo kann ich in Baikal den Header auf “Access-Control-Allow-Origin: “*” setzen?
Gruss
Mario
Ich habe es selber herausgefunden: direkt in der htaccess wie die Anpassungen für Apple.
Danke Nicolas für deine Beschreibung. Baikal Kalender konnte ich so erfolgreich mit iOS und unter Windows mittels CalDavSync in Betrieb nehmen. Leider gelingt es mir unter MacOS nicht. Habe so ziemlich alles durch: cal.domain.de/baikal/html/dav.php/principals/USERNAME bzw. /calendars/USERNAME/default … auch die .htaccess an diverser Stellen ausprobiert.
Es läuft unter iOS und Outlook, aber nicht unter MacOS.
Kannst Du da noch einmal ein Update für Dummies ergänzen?
Hallo Nicolas
Habe baikal installiert, komme aber nicht weiter…
Sende mein support-code via e-mail.
Dankeschön.
Gruss
Martin
Hallo Nicolas, danke für den Tipp – die Installation hat funktioniert und den User konnte ich auch einrichten. Nur funktioniert die Anmeldung nicht. Ich habe eventuell bei diesem Abschnitt etwas falsch gemacht:
.htaccess-Datei im Verzeichnis ~/public_html/baikal/html gemäss unserer Anleitung «Weiterleitung auf HTTPS einrichten» eine Weiterleitung auf HTTPS hinzu, damit Login-Daten sicher übertragen werden.
Kannst Du mir da weiterhelfen? Wenn Du möchtest, kannst Du Dir das Teil auch gleich anschauen ;-)
Hallo Markus, ich schaue mir das gerne an. Sende mir bitte alle Details und Deinen Support-Code an mail@cyon.ch.
