This page (revision-10) was last changed on 04-Feb-2022 23:44 by ThomasBayen 

This page was created on 04-Jan-2021 10:19 by ThomasBayen

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
10 04-Feb-2022 23:44 11 KB ThomasBayen to previous
9 08-Jan-2021 12:26 11 KB ThomasBayen to previous | to last Link hinzugefügt
8 08-Jan-2021 12:23 11 KB ThomasBayen to previous | to last Kalenderfarben setzen durch Properties in der Datenbank
7 07-Jan-2021 14:43 9 KB ThomasBayen to previous | to last CalDAV über die Kommandozeile
6 07-Jan-2021 14:40 8 KB ThomasBayen to previous | to last Tickets, um Kalender zu teilen
5 05-Jan-2021 14:28 6 KB ThomasBayen to previous | to last gemeinsame Ressourcen und Zugriffsrechte
4 04-Jan-2021 21:24 5 KB ThomasBayen to previous | to last
3 04-Jan-2021 16:23 3 KB ThomasBayen to previous | to last Tag hinzugefügt
2 04-Jan-2021 10:46 3 KB ThomasBayen to previous | to last Etwas mehr Informationen zum LDAP und zum Thunderbird Cardbook
1 04-Jan-2021 10:19 1 KB ThomasBayen to last Erfahrungen mit Davical

Page References

Incoming links Outgoing links

Version management

Difference between version and

[Davical|https://www.davical.org/] ist ein CalDav Kalenderserver für einen [LinuxKalender].

ThomasBayen hat sich seit Anfang 2021 Davical ausgesucht, um für eine Weile damit zu arbeiten.

= Installation und Aufbau =

Die Installation unter Debian Buster war sehr einfach.

Davical basiert auf PHP (nicht so meine Lieblingssprache) und legt die Daten in einer PostgreSQL-Datenbank ab (find ich gut).

== Datenbank-Struktur ==

Wichtige Daten liegen dort direkt per SQL zugänglich in einer Datenbank-Struktur, aber dennoch findet man auch die kompletten VCARD bzw. VCALENDAR Daten als Text in der Tabelle caldav_data. Was davon man beim Hacken lieber hat, muss jeder selber wissen. Die Datenbank-Struktur sieht so verständlich aus, das man vielleicht auch von außen direkt daran manipulieren kann.

== LDAP Authentifizierung ==

Ich habe es sogar relativ einfach geschafft, meine Benutzer automatisch aus meinem Firmen-LDAP anzulegen - für mich ist das ein echter Vorteil. Es gibt eine Admin-Weboberfläche, mit der man komplexe Rechtevergaben, neue Kalender, etc. einstellen kann. Man fügt einen Block mit LDAP-Einstellungen zur Datei /etc/davical/config.php hinzu. Die Daten werden dann vom admin-Benutzer auf der Weboberfläche im Menüpunkt "Tools" synchronisiert (also nicht vollautomatisch). Man kann bis zu einem gewissen Punkt konfigurieren, was genau synchronisiert wird.

Ich habe in meinem LDAP z.B. das Feld employeeType benutzt, um dort "caldav" hineinzuschreiben für die Benutzer, die Davical anlegen soll. Dann kann ich die in der LDAP-Konfiguration direkt filtern. ''(Ein Filter nach Gruppen ist übrigens nicht so einfach und muss im Server extra konfiguriert werden - google mal nach OpenLDAP und memberOf)''.

Was mich bei meinen verschiedenen Experimenten immer wieder aufgehalten hat war, das mein interner LDAP-Server ein selbstsigniertes Zertifikat hat. Um den anzusprechen, muss man eine Zeile "TLS_REQCERT never" in die Datei /etc/openldap/ldap.conf schreiben.>>
<<
>>= Clients =

== Android ==

Eine Verbindung mit meinem __Android__ per [DAVx5|https://www.davx5.com/] ergab eine einfache und perfekte Anbindung für Kalender, Aufgaben und Kontakte.

<<Als URL musste ich nur http://caldav.servername.org/benutzer/ angeben. Alle Kaleneder- und Adressbuch-Ressourcen wurden daraufhin automatisch gefunden (Das mag daran liegen, das ich auch die Redirect-Kommandos in der Apache Konfiguration für die well known urls gesetzt habe). Wer sich über die Konfigurationsfrage nach der Kontaktgruppen-Methode wundert, wählt am besten die Vorgabe "Gruppen sind VCARDs" (siehe https://www.davx5.com/tested-with/davical).

== Thunderbird (mit Cardbook) für Kontakte ==

Außerdem setze ich auf dem Desktop die [CardBook-Erweiterung|https://gitlab.com/CardBook/CardBook] für den __Thunderbird__ ein. Man kann sie im Standard Add-On Store auswählen. Diese Erweiterung ist wirklich leistungsfähig und versucht wohl gerade, das bisherige Adressbuch im Core Thunderbird zu ersetzen.

Man kann ein Adressbuch im Cardbook auch offline betreiben. Dann wird das Adressbuch nicht sofort angezeigt, sondern bei einer Suche jeweils online abgefragt. Diese Funktion war (mit einem Davical-Server im lokalen Netz) rasend schnell. Alle Daten sind so immer auf dem aktuellen Stand und Änderungen werden sofort synchronisiert. Der einzige Nachteil ist, das man nie die gesamte Liste sieht (und diese z.B. auch nicht herunterladen kann).

Apropos herunterladen... Die Export-Funktion des Thunderbird Cardbook ist eine schöne Methode für ein Backup der Daten als vcf-Datei, das man eventuell hin und wieder haben möchte.

Im Thunderbird CardBook muss ich als URL https://mein-server.domain.org/username/addresses angeben. Außerdem hatte ich in meinen ersten Tests ein selbstsigniertes Zertifikat, das dazu führte, das die Verbindung ohne weitere Erklärung oder Fehlermeldung nicht aufgebaut wurde. Sehr ärgerlich. Abhilfe gab mir dann [dieser Artikel|https://gitlab.com/CardBook/CardBook/-/issues/838]


<<= Installation im Container =

Da ich in den letzten Tagen auch mit [Podman] erste Schritte gemacht habe, habe ich mich mal umgeschaut, ob es fertige Container-Images für Davical gibt. Dabei bin ich auf https://github.com/datze/davical gestossen.

Das Image erlaubt zwei externe Volumes, die in den Container eingebunden werden, aber ausserhalb liegen: Eines für die PostgreSQL-Datenbank und eines für die Konfiguration. Um dieses config-Verzeichnis zu füllen, ist es am sinnvollsten, zuerstmal das git-Projekt herunterzuladen und die vier genannten Konfigurationsdateien nach /var/davical/config/ zu kopieren. Außerdem legt man /var/davical/data/ an.

Um SSL zu benutzen, erzeugt man ein passendes SSL-Zertifikat (z.B. mit [LetsEncrypt] und kopiert die Zertifikatsdateien nach /var/davical/config/ssl/.

Im Grunde installiert und konfiguriert sich das Ding nun fast von ganz alleine. Ich habe die apache.conf angepasst, um ssl zu nutzen und um meine Zertifikate einzubinden. Daraufhin konnte man den Container starten mit:

 podman run -d --name davicalc4 -p 443:443 \
   -v /var/davical/data:/var/lib/postgresql/data -v /var/davical/config/:/config \
   -e HOST_NAME="calendar.bayen.eu" -e TIME_ZONE='Europe/Berlin' \
   datze/davical_https


Außerdem habe ich danach noch davical.php angepasst, um die von mir gewünschte LDAP-Authentifizierung zu nutzen (das ist aber natürlich für normale Anwender gar nicht nötig). Mein Spezialproblem mit dem selbstsignierten LDAP-Server habe ich behoben mit

 podman exec -l bash -c 'echo "TLS_REQCERT never" >>/etc/openldap/ldap.conf'


[{Tag ServerDienste Cloud EigeneWolke}]