[NAS Typ:] TS-233 / TS-231P3 (vermutlich allgemeingültig für QTS 5.2.x)
[Firmware:] 5.2.4.x
[Getestet:] ja
[Sonstige Modifikationen:] keine
Baïkal-HowTo (Installation, Update und Migration von QBaikal)
Übersicht
Baïkal ist ein in php geschriebener, 'leichter' CalDAV- und CardDAV-Server, der Kalender- und Kontaktdaten speichert und mit dem sich verschiedene CalDAV-/CardDAV-Clients syncen können.
Ich nutze Baïkal auf einer qnap im LAN, um mein Adressbuch zwischen Android/DAVx5 und Thunderbird zu synchronisieren und zu sichern. Zugriffe sollten nur per https erfolgen und das NAS sollte nicht im Internet freigeschaltet sein!
Ich hatte das .qpkg "QBaikal" (Baïkal-0.9.2) genutzt. Dafür gibt es seit der Umstellung auf http://www.myqnap.org keinen direkten Nachfolger mehr. Dort gibt es zwar mit "Baïkal (Apache82)" und "Baïkal (Apache83)" zwei ähnliche Pakete, die aber den Kauf des jeweiligen Apache-Paketes erfordern.
Außerdem ist Baikal inzwischen bei V 0.10.1 angekommen.
Hier in kleines HowTo inkl. Skripten qb2b.zip, wie man den Server 'direkt' auf QTS aufsetzt. Eine Anleitung zum Anbinden von Clients an Baïkal steht in der unter 9.1. verlinkten Anleitung.
Der Text richtet sich an Leute, die sich auf der Linux-Shell bewegen können; bin weder Apache-, PHP-, TLS- noch QTS-Experte.
Je nachdem, wie schnell man tippt, sollte alles zusammen ca. 20-60min dauern und ist im Grunde ziemlich simpel (Download, Unzippen, Dateien herumschubsen).
Freue mich über Rückmeldungen & Ergänzungen ![]()
Gliederung
Für eine Erstinstallation ohne Datenübernahme brauchen nur 3.), 5.) und 8.) ausgeführt werden sowie bei Bedarf 7) und 8.).
- Infos zu Baïkal
- Voraussetzungen / Hinweise
- Konfiguration Webserver / apache
- QBaikal-Migration vorbereiten
- Erstinstallation Baikal auf/unter QTS
- Datenübernahme der SQLite-DB von QBaikal auf diese "Eigeninstallation"
- Updaten der Eigeninstallation
- Aufräumen
- Benutzte Doku / Links
1. Infos zu Baïkal
'Bemerkenswerte' Einträge im Issue-Tracker:
- Baïkal wird nur noch 'gewartet'; derzeit keine Weiterentwicklung: #1235#issuecomment-2027715404
- Es enthält teilweise sehr alten Code: #1208
- Es nutzt eine veraltete/unsichere Technik zum Speichern der Passwörter: #514
- Es gibt diverse andere 'Macken':#1110, #1084
Daher: Zugriffe sollten nur per https erfolgen und das NAS sollte nicht im Internet freigeschaltet sein!
Aber für meine paar Kontakte genügt es völlig und tut klaglos seinen Dienst. Es ist einfach zu handhaben und zu bedienen. Wenn mein Android-Smarty im heimischen WLAN ist, synct DAVx5 alle 4 Stunden meine Kontakte oder nach Änderungen.
2. Voraussetzungen / Hinweise
- Es gibt einen administrativen User (habe nicht als 'admin' gearbeitet)
- Es gibt die Freigabe /share/Web
- Falls QBaikal installiert: u.a. Link in /share/Web vorhanden (unterschiedliche Nr. bei CHACHEDEVx_DATA)
lrwxrwxrwx 1 admin administ 47 Nov 12 2023 baikal -> /share/CACHEDEV5_DATA/.qpkg/QBaikal/baikal/html/
- QBaikal nutzt SQLite (MySQL erfordert Anpassungen).
- Es wird mehrmals der Webserver gestartet / gestoppt.
- Die Skripte nutzen 'sudo'; es wird dort nach dem Passwort des administrativen Users gefragt.
- Die Skripte warten an einigen Stellen, bis man j eingibt. Bei anderen Eingaben brechen sie ab. Hier sind im Browser verschiedene Dinge zu erledigen / testen, bevor es weiter geht.
- Benutzte URLs mit den Beispielports aus 3. nas=IP-Adresse oder DNS-Name der NAS, z.B. qnap-nas.fritz.box.
- http://nas:8080/baikal/html/
- https://nas:9443/baikal/html/
- https://nas:9443/baikal/html/admin/
- https://nas:9443/baikal/html/dav.php
- Die zip-Datei im Anhang enthält alle hier aufgeführten Skripte.
- Die Datei als /share/Web/qb2b.zip ablegen und dort mit unzip qb2b.zip entpacken oder
- Die einzelnen Skripte per Copy&Paste mit einem Editor in /share/Web/qb2b ablegen oder
- Die einzelnen Zeilen per Copy&Paste in der Shell ausführen
- Vor dem Aufrufen der Skripte cd /share/Web/qb2b ausführen.
3. Konfiguration Webserver / apache
Die Portnummern sind nur (geläufige) Beispiele:
WebDAV kann deaktiviert bleiben:
4. QBaikal-Migration vorbereiten
Falls QBaikal installiert ist und die Daten daraus übernommen werden sollen. Kann ansonsten übersprungen werden.
/share/Web/qb2b/1_prepare.sh dort aufrufen oder zeilenweise kopieren und ausführen.
$ ./1_prepare.sh
/etc/config/php.d/php_ext.ini not found
total 16
lrwxrwxrwx 1 xyz everyone 47 2025-05-29 18:12 baikal -> /share/CACHEDEV5_DATA/.qpkg/QBaikal/baikal/html/
drwxr-xr-x 2 xyz everyone 4.0K 2025-05-29 17:56 qb2b/
-rw-r--r-- 1 xyz everyone 2.6K 2025-05-29 16:04 qb2b.zip
drwxrwxrwx 2 admin administrators 4.0K 2025-05-26 08:02 @Recycle/
Fertig.
5. Erstinstallation Baikal auf/unter QTS
Installation von Baikal-0.9.2 für die Datenübernahme aus QBaikal.
Falls keine Daten übernommen werden brauchen, kann stattdessen sofort die aktuelle Version installiert werden. Diese am Anfang des Skriptes eintragen, derzeit ist dies "VERSION=0.10.1".
/share/Web/qb2b/2_install.sh dort aufrufen oder zeilenweise kopieren und ausführen.
Falls die zip-Datei beschädigt ist, bricht das Skript ab.
$ ./2_install.sh
/etc/config/php.d/php_ext.ini not found
2025-05-29 17:09:13 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/3564353/9d5f48ba-615d-45f0-b56f-aa57ddc42d2c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250529%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250529T150807Z&X-Amz-Expires=300&X-Amz-Signature=842756de53d392344595fdb690c7488b96d8133f0a99c2f5906bda2c667cd2ff&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dbaikal-0.9.2.zip&response-content-type=application%2Foctet-stream [2980716/2980716] -> "baikal-0.9.2.zip" [1]
No errors detected in compressed data of baikal-0.9.2.zip.
/etc/config/php.d/php_ext.ini not found
Baikal installiert.
http://NAS:port/baikal/html/ aufrufen
Browser muss von htpp auf https umstellen
vorhandes / neues admin-PW setzen
Zeitzone setzen
DB-Pfad anpassen: /share/Web/baikal/Specific/db/db.sqlite
"Start using Baikal"
Login mit PW pruefen
Alles anzeigen
=> Baikal 0.9.2 bzw. aktuelle Version sind ohne Datenbestand aktiv
Im Browser http://NAS:port/baikal/html/ aufrufen, ggf. die Zertifakte-Warnung ignorieren.
Die Verbindung sollte automatisch auf https umstellen.
Das gewünschte Admin-PW, Zeitzone und andere Einstellungen setzen:
Den DB-Pfad anpassen auf /share/Web/baikal/Specific/db/db.sqlite:
Einloggen:
Noch keine Daten vorhanden:
Bei einer Neuinstallation ohne Datenübernahme weiter mit User anlegen und Clients einrichten, s.u. beim Link unter 9.1.
6. Datenübernahme aus QBaikal
/share/Web/qb2b/3_migrate.sh dort aufrufen oder zeilenweise kopieren und ausführen.
Beim ersten Haltepunkt:
Login als Admin https://nas:port/baikal/html/ und User https://nas:port/baikal/html/dav.php
Jeweils prüfen ob der Datenbestand angezeigt wird.
=> Baikal 0.9.2 mit übernommenen Datenbestand aktiv
Erst danach 'j' eingeben und QBaikal im AppStore löschen.
Nach dem Löschen erneut 'j' eingeben.
$ ./3_migrate.sh
/etc/config/php.d/php_ext.ini not found
/etc/config/php.d/php_ext.ini not found
erst "j" eingeben, nachdem:
https://nas:port/baikal/html/
admin-login ok
uebernommener Datenbestand angezeigt?
login mit user geprüft
https://nas:port/baikal/html/dav.php
Test OK [j/n]? j
/etc/config/php.d/php_ext.ini not found
erst "j" eingeben nachdem:
QBaikal im AppStore deinstalliert
QBaikal deinstalliert [j]? j
/etc/config/php.d/php_ext.ini not found
Daten uebernommen.
Testen.
Alles anzeigen
7. Update einspielen
/share/Web/qb2b/4_update.sh dort aufrufen oder zeilenweise kopieren und ausführen.
Dort am Anfang jeweils die aktuelle Version eintragen; derzeit ist das 0.10.1.
Auch hier erst 'j' eingeben, nachdem ein Logintest als Admin https://nas:port/baikal/html/ und User https://nas:port/baikal/html/dav.php erfolgreich verlief.
Beim ersten Login als Admin https://nas:port/baikal/html/ gelangt man zum "upgrade wizard"
Danach sollte unter der neuen Versionsnr. der Datenbestand angezeigt werden.
Nach 'j' wird das Backup gelöscht!
$ ./4_update.sh
Password:
/etc/config/php.d/php_ext.ini not found
2025-05-29 20:26:54 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/3564353/63da7b37-3bc6-4535-813d-132e764abaa6?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250529%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250529T182653Z&X-Amz-Expires=300&X-Amz-Signature=e6cfaa7466737cced3a8fc3548a8ae70a12be5ec6070133c6d952f0cac0bed5c&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dbaikal-0.10.1.zip&response-content-type=application%2Foctet-stream [2857336/2857336] -> "baikal-0.10.1.zip" [1]
No errors detected in compressed data of baikal-0.10.1.zip.
/etc/config/php.d/php_ext.ini not found
Baikal aktualisiert.
admin-, user-login ok?
daten vorhanden?
Sync OK?
Tests OK [j/n]? j
Update abgeschlossen.
Alles anzeigen
8. Aufräumen
9. Benutzte Doku / Links:
- https://github.com/JsBergbau/BaikalAnleitung
- https://sabre.io/baikal/
- https://github.com/sabre-io/Baikal/issues
PS: Puh, hatte nicht gedacht, dass es derart viel Arbeit ist, ein kleines HowTo sauber zu erstellen ...