Baikal die 2. - Docker Edition

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
In meinem anderen Thread habe ich schon beschrieben, wie eine manuelle Installation von dem Baikal Server funktioniert. Dieser schlanke Cal-/Carddav Server, welcher leicht zu bedienen und zu sichern ist, ist Open Source und neben Github auch als Docker über Dockerhub verfügbar.

Vorweg möchte ich sagen, dass das Schreiben der Anleitung wesentlich länger gedauert hat, als die Einrichtung des Servers selbst. Ich verwende Bailkal-Docker auf einer 1513+ mit nginx und php_8.1. Die Einrichtung dürfte nicht länger als 3-5 Minuten dauern.

Es gibt natürlich unterschiedliche Herangehensweisen auf die ich nur kurz eingehen werde. Das betrifft z.B. das Erstellen der Ordner mit der Filestation oder aus Docker direkt oder das Netzwerk in Docker - ob als Bridge oder Macvlan. Ich beschreibe hier die Einrichtung über das Synology UI – eine Installation via Portainer ist natürlich ebenfalls möglich. Wer lieber MariaDB/MySQL nutzen will, kann dieses ebenfalls machen - diese Anleitung bezieht sich jedoch auf sqlite (DSM).

1. Als erstes benötigen wir die Software. Diese können wir bequem über das Paket- Zentrum herunterladen. Wir suchen also nach der App „Docker“ und installieren diese. Anschließend sollte Docker automatisch ausgeführt werden und so aussehen. Danach können wir das Paket-Zentrum schließen.

1.png

Wer Baikal noch nicht genutzt hat, oder eine Neuinstallation vornimmt, kann diesen Schritt überspringen und die Ordner direkt in Docker anlegen! Wer bereits Baikal genutzt hat und mit seiner Datenbank in Docker umziehen möchte, liest hier weiter.

2.
Wir erstellen die benötigten Ordner mit der Filestation, damit die Daten auch dauerhaft z.B. nach einem Neustart oder Stromausfall vorhanden sind und nicht nur virtuell im Container. Wir öffnen die Filestation. Im Root der Diskstation sollte ein „docker“ Ordner vorhanden sein. Dort hinein erstellen wir einen Ordner „baikal“. In diesem Ordner erstellen wir 2 weitere Ordner: „config“ und „Specific“. In „Specific“ erstellen wir einen weiteren Unterordner „db“. Dort hinein können wir unsere vorhandene Datenbank „db_sqlite“ von /web/baikal/Specific/db nach /docker/baikal/Specific/db kopieren. Somit sind alle Datensätze nach Installation wieder vorhanden.

2.png

Von dem Kopieren der Einstellung rate ich ab, es sei denn man ändert den Pfad der Datenbank in der „baikal.yaml“ im Ordner „config“ manuell. Der Pfad für die sqlite Datenbank sollte wie folgt angepasst werden: von /volume1/web/baikal/Specific/db/db.sqlite nach „/var/www/baikal/Specific/db/db.sqlite“ Nach dem Ändern kann auch die Config von /web/baikal/config nach /docker/baikal/config kopiert werden und alle Einstellungen bleiben erhalten. Da aber eh nur das Admin Passwort und die Zeitzone als Standard eingestellt werden müssen, ist das eher zu vernachlässigen.

3. Jetzt kommen wir zum eigentlichen Docker, wir öffnen die Docker-App und gehen auf das Register: Registrierung.

3.png

Dort geben wir oben rechts in der Suche den Begriff „baikal“ ein. Wir wählen den ersten Eintrag chulka/baikal aus und installieren uns den Container mit dem Tag: nginx. Anschließend wird der Container selbstständig heruntergeladen. Mit diesem Tag sind auch zuküntige Updates möglich - ohne abhängig von der Versionsnummer zu sein. Der Container bietet immer die letzte Version von Baikal + php + nginx als Webserver an. Somit ist ein automatisches Aktualisieren mit Watchtower möglich, damit ihr immer auf den neusten Stand seit. Leider lief keine Apache-Version auf meiner 1513+/ i386, bei der nativen Installation war das genau anders herum, dort lief nginx nicht!

Wir wechseln jetzt auf den Reiter Image in der Docker App und Starten den Baikal Container mit Doppel-Klick oder mit den Button. Wir nehmen die Settings in den erweiterten Einstellungen wie folgt vor:

4.png

5.png

6.png

7.png

8.png

Bei den Container-Namen, den Netzwerkeinstellungen oder Ports können natürlich individuelle Einstellungen vorgenommen werden. So kann man mit Macvlan den Container eine eigen IP verpassen usw. Ich gehe aufgrund der Länge jetzt nicht darauf ein – kann aber gerne im Thread diskutiert werden. Auch können unter Volumen die Ordner im Docker direkt erstellt werden und nicht wie vorher in der Filestation (Schritt 2) – das macht eher Sinn wenn bereits eine Datenbank vorhanden ist oder von Baikal nativ auf Docker wechseln möchte! Wichtig ist jedoch, dass beim Erstellen der beiden Ordner über Docker in den Ordner „Specific“ noch ein Unterordner „db“ zusätzlich erstellt werden muss!

9.png

Zum Abschluss übernehmen wir alle Einstellungen und beenden somit den Assistenten. Jetzt sollte Baikal Docker automatisch gestartet werden und unter der Adresse http://IPoderNamenderDiskstation+Port die Einrichtungsseite erreichbar sein.

4. Nachdem wir bereits auf die Einrichtungsseite gelangt sind, können wir jetzt die Zeitzone und ein Admin-Passwort einstellen (sofern die Config aus einer alten Installation nicht übernommen wurde). Als nächstes werden wir nach der Datenbank gefragt – dort erstellen wir einfach eine (Button), entfällt wenn bereits eine Datenbank vorhanden ist.

5. Ihr werdet auf die Adminseite weitergeleitet und könnt jetzt nach Belieben euer User, Adressbücher, Kalender und Kontakte einrichten. Wer bereits eine bestehende Datenbank kopiert hatte, sollte jetzt wieder alle User und Einträge sichtbar haben. Wenn nötig könnt Ihr über den Reverse Proxy (Systemsteuerung>Anmeldeportal>Erweitert>Reverse Proxy) eure Dyndns oder Zertifikat aufschalten oder die Ports ändern. Darauf werde ich wie bei der Firewall oder Portfreigabe im Router jetzt nicht eingehen.

6. Euer Baikalserver ist unter folgende Andressen erreichbar:​
  • Server Status: http(s)://IPoderNamenderDiskstation+Port​
  • Admin Portal: http(s)://IPoderNamenderDiskstation+Port/admin/​
  • Cal+Carddav: http(s)://IPoderNamenderDiskstation+Port/dav.php​
  • Caldav: http(s)://IPoderNamenderDiskstation+Port/cal.php​
  • Carddav: http(s)://IPoderNamenderDiskstation+Port/card.php​
10.png

Großen Dank an Bytehamster, der das Projekt vor einiger Zeit wieder aufgenommen hat und an ckulka, welcher die Docker-Images bereitstellt und natürlich an ALLE die das Projekt unterstützen. (y)


Ich hoffe, dass ich nichts vergessen habe und jetzt viel Spaß damit. :cool:
 
Zuletzt bearbeitet:

CptGambit

Benutzer
Mitglied seit
25. Nov 2013
Beiträge
389
Punkte für Reaktionen
3
Punkte
24
Sehr schöne Anleitung. Da du dich mit Baikal auskennst mal direkt die Frage, welche Vorteile würde mir Baikal bieten, wenn ich von der Synology eignene Kalender und Kontakte App weggehe und Baikal nutze?
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Danke,

In meinen Augen macht Synology einen guten Job (DSM), jedoch sind die App's eher mittelmäßig. Wenn du jetzt beides vergleichst, wirst du das sehr schnell mitbekommen.

Des weiteren brauch man nicht mehrere Dienste für Aufgaben, Kontakte & Kalender und muss das nicht in unterschiedlichen Einstellungen konfigurieren. Die Datenbank kann "on the fly" gesichert und wiederhergestellt werden. Sqlite oder MariaDB kann ausgewählt werden.

Probiere es aus (die 3-5 Minuten wirst du haben :) )- ich nutze das seit fast 10 Jahren. ist als Alternative zur Synology oder Nextcloud gedacht.

Kurz.
schlank, schnell, sicher, userfreundlich & open source
 

CptGambit

Benutzer
Mitglied seit
25. Nov 2013
Beiträge
389
Punkte für Reaktionen
3
Punkte
24
Das ist ein Wort. Ich schau es mir an.
 

Yippie

Benutzer
Mitglied seit
01. Feb 2011
Beiträge
643
Punkte für Reaktionen
55
Punkte
54
Probiere es aus (die 3-5 Minuten wirst du haben :) )- ich nutze das seit fast 10 Jahren. ist als Alternative zur Synology oder Nextcloud gedacht.

Kurz.
schlank, schnell, sicher, userfreundlich & open source
Kann dir nur zustimmen: Habe Baikal auch schon jahrelang im Einsatz (in Verbindung mit Thunderbird, Android-Geräten und sogar iPadOS, sowie iPhoneOS).
Zuerst als natives Package installiert und seit geraumer Zeit direkt über die entsprechenden Sourcen immer wieder Mal aktualisiert.

Mit Baikal ist man unabhängig von allen Synology DSM releases, sogar dann wenn die Programmierschnittstellen geändert wurden, wie bspw. von DSM6 auf DSM7 und viele Programmierer ihrer Pakete anpassen mussten oder sich gar nicht mehr die Mühe machten.

Als Problem kann sich jedoch erweisen, dass nicht auf allen Synos das Docker-Paket läuft und somit Baikal im Docker-Container nicht möglich ist...
 
  • Like
Reaktionen: EDvonSchleck

Kachelkaiser

Benutzer
Sehr erfahren
Mitglied seit
22. Feb 2018
Beiträge
2.180
Punkte für Reaktionen
907
Punkte
154
Was ich bis jetzt noch nicht so ganz umrissen habe ist: Hat Baikal auch ein Web-Interface für den Kalender oder die Kontakte?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.164
Punkte für Reaktionen
915
Punkte
424
Nein, Baikal ist ein reiner Server. Besitzt einzig ein Admin-Webinterface, aber keines für Benutzer.
Geht nur über alle möglichen Clients, oder fremde Interfaces wie z.B. AgenDAV
 

Kachelkaiser

Benutzer
Sehr erfahren
Mitglied seit
22. Feb 2018
Beiträge
2.180
Punkte für Reaktionen
907
Punkte
154
Alles klar. Danke sehr. Ich schaus mir mal an
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Nein, Baikal ist ein reiner Server. Besitzt einzig ein Admin-Webinterface, aber keines für Benutzer.
Das stimmt nicht ganz bzw. nur bedingt. Unter der Client-URL kann sich jeder User einloggen und dort Kalender oder Adressbücher erstellen sowie auch Kontakte und Kalender exportieren.

Das gilt für:
  • Cal+Carddav: http(s)://IPoderNamenderDiskstation+Port/dav.php
  • Caldav: http(s)://IPoderNamenderDiskstation+Port/cal.php
  • Carddav: http(s)://IPoderNamenderDiskstation+Port/card.php
Ebenso ist es möglich mit den PHP-Script von mrbaseman die Kalender als "read-only" zu betreiben. Dazu braucht man nur das PHP-Script downloaden und in den Ordner: /web/baikal/html/admin/ (native Installation) oder /docker/baikal/html/admin/ (Docker Installation) kopieren.

Zum aufrufen des Scripts:
  • http(s)://IPoderNamenderDiskstation/admin/permissions.php (native Installation)
  • http(s)://IPoderNamenderDiskstation+Port/admin/permissions.php (Docker Installation)
 
Zuletzt bearbeitet:

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
Guten Morgen!

@EDvonSchleck
Vielen Dank für die Anleitung.
Da ich Synology Calender im Einsatz habe, mit meinem bekannten Problem, dass Erinnerungen / Todos nur auf dem iPhone synchronisert werden, aber nich unter macos, habe ich den Entschluss getroffen,Baikal zu nutzen (solang Synology es nicht selbst hinbekommt).

Allerdings habe ich noch ein Problem mit Baikal.
Ich hatte testweise die Baikal "Web Station Version" installiert, welche auch funktioniert hat, nachdem ich noch eine Anpassung mit Hilfe einer .htaccess Datei gemacht habe - sonst fand macos den Kalender nicht:

Bildschirmfoto 2022-05-01 um 09.09.36.png
Lösung:
Bildschirmfoto 2022-05-01 um 09.14.30.png


Da ich ein Freund von Docker Lösungen bin, habe ich nun das Docker Image installiert.
Aber wie / wo muss ich im Docker Container nun die Anpassung vornehmen, damit macos das o.g. Problem gefixed bekommt?
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Schon einmal in der Konsole mit "sh" probiert? Die findest du in den Container (DSM Docker & Portainer)
Ansonsten kannst du die Datei .htaccess doch einfach unter /docker/baikal/config/ von Hand ändern.
 
Zuletzt bearbeitet:

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
intersannterweise stürzt mit der Container sofort ab, sobald ich auf den Reiter "Terminal" gehe
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Hast du den Eintrag denn einmal manuell angelegt in den File? Du kannst doch auch einfach dein Webstation File in den Ordner dazu kopieren, dort sollten doch die beiden Einträge/Pfade angelegt sein.
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
jetzt kommt die Frage: WIE? :)
in der Webstation versteh ich das problemlos. Aber wie lege ich dieses File im Docker Container an?
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Du hast doch die Ordner nach Anleitung extern gemountet, wenn du jetzt im Ordner Docker der DS siehst, solltest du einen Baikalordner haben, das ist denn gleich wie in der Webstation auch, gleiche Struktur, gleiche Files. Siehe Bild 6 der Anleitung.
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
nicht ganz. der Inhalt der Webstation Version sieht so aus:
Bildschirmfoto 2022-05-01 um 11.32.33.png

im Vergleich die Docker Version:

Bildschirmfoto 2022-05-01 um 11.32.03.png
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
doch den Ordner config habe ich. in der Docker Version brauche ich ja nur zwei Ordner anlegen. config und data.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat