Die Open Source Software Baikal zur Kalender- und Kontaktsynchronisation über CalDAV bzw. CardDAV ist nach etwas längerer Pause in einer neuen Version erschienen. Das Update ist relativ unkompliziert durchzuführen. Natürlich sollten alle relevanten Komponenten wie Datenbank und Daten zuvor gesichert werden, um ein schnelles Fallback ermöglichen zu können. Nach dem Update von der Version „0.2.7“ auf die aktuellste Version müssen nachträglich auch die URLs in den Kalender bzw. Kontaktprogrammen (Thunderbird, iOS etc…) angepasst werden, damit die Cloud basierte Synchronisation wieder funktioniert.
Als erstes wird die Datenbank von Baikal gesichert. Die Parameter „DBUSER“, „DBPASSWD“ und „DBNAME“ müssen an die eigenen Gegebenheiten angepasst werden. Das Backup wird direkt in das Homeverzeichnis des aktuellen Benutzers geschrieben.
mysqldump -h localhost -u DBUSER -pDPPWD DBNAME > ~/baikal-sqlbkp_`date +"%Y%m%d"`.sql
Über wget wird die aktuelle Version heruntergeladen. Bei neueren Versionen muss die Download URL natürlich angepasst werden.
wget https://github.com/fruux/Baikal/releases/download/0.4.0/baikal-0.4.0.zip
Die Binaries werden entpackt und landen automatisch im Verzeichnis „baikal“.
unzip baikal-0.4.0.zip
Das zuvor heruntergeladene Archiv kann jetzt gelöscht werden.
rm baikal-0.4.0.zip
Die bestehenden Daten der Baikal Installation, die im Webroot liegen, werden verschoben. Dies dient später automatisch als Backup. Das Webroot Verzeichnis kann je nach Distribution unterschiedlich sein. Bei Debian dürfte es „/var/www/“ sein.
sudo mv /srv/http/baikal /srv/http/baikal_old
Jetzt können auch die neuen Dateien an die richtige Stelle verschoben werden.
sudo mv baikal /srv/http/baikal
Aus der alten Version werden ein paar bestehende Dateien benötigt, die aus dem Backup kopiert werden.
sudo cp -a /srv/http/baikal_old/Specific/ /srv/http/baikal/
Die Besitzrechte des Verzeichnisses müssen auch wieder an den Webserver angepasst werden.
sudo chown -R http:http /srv/http/baikal
Unter Debian wird der Befehl wie folgt aussehen.
sudo chown -R www-data:www-data /var/www/baikal
Das Update kann jetzt über die Weboberfläche abgeschlossen werden.
https://foo.bar/baikal/html/admin/
Wenn das Update erfolgreich abgeschlossen ist, müssen die URLs in den einzelnen Programmen noch angepasst werden. In den folgenden Beispielen wird das Vorgehen für die Kalender in Thunderbird und iOS beschrieben.
Thunderbird alt: https://foo.bar/baikal/card.php/calendars/USER/kalender
Thunderbird neu: https://foo.bar/baikal/html/dav.php/calendars/USER/kalender
iOS alt: https://foo.bar/baikal/card.php/principals/USER/
iOS neu: https://foo.bar/baikal/html/dav.php/principals/USER/
Im letzten Schritt wird der Webauftritt der Baikal Installation begrenzt, indem nur noch das Verzeichnis „html“ von außen erreichbar gemacht wird. Dazu wird unter nginx die Konfiguration der Location angepasst.
sudo nano /etc/nginx/sites-available/baikal.conf
Alt: # Baikal CalDav/CardDav config location ~* /baikal { root /srv/http; ...
Neu: # Baikal CalDav/CardDav config location ~* /baikal/html { root /srv/http; ...
Das Webinterface ist ab jetzt unter „https://foo.bar/baikal/html/admin/“ erreichbar.
Bei Erfolg kann das alte Baikal Verzeichnis sowie die Sicherung der Datenbank wieder gelöscht werden.