Unterschiede zwischen den Revisionen 20 und 21
Revision 20 vom 2019-02-03 21:35:39
Größe: 7471
Autor: phil
Kommentar:
Revision 21 vom 2023-08-19 18:19:08
Größe: 0
Autor: phil
Kommentar: Veraltet
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
''Hier wird beschrieben wie du einen Kalender im Internet einrichten kannst, ohne auf Google o.ä. zurück greifen zu müssen. Ziel: ein Kalender auf den mehrere Personen über das Internet gemeinsamen Lese-/Schreibzugriff haben.''

<<TableOfContents>>


----
= der owncloud Weg =
 * [[http://owncloud.org/|owncloud]] enthält einen caldav Server
 * Vorteil:
  * lässt sich per owncloud Webinterface und Kalenderprogramm (z.B. Thunderbird/ICedove) nutzen
  * integriertes Usermanagemant
 * Nachteil, als reine Kalenderlösung bringt es viel "Ballast" mit

----
= der calypso Weg =
 * von radicale gibt es mittlerweile einen fork
 * vorteil: git als datenbackend: [[http://keithp.com/blogs/calypso/|calypso]]
  * damit entfällt das lästige problem großer kalender dateien (Performanceengpass, abgebrochene Datenübertragung)
 * läuft aktuell unter groups -> "screen -S calypso" zum debuggen
 * $new_user entsprechend ersetzen

== Neue git Datenbank für Kalender anlegen ==
mkdir -p /data/calypso-kalender/private/$new_user
cd /data/calypso-kalender/private/$new_user
git init
git commit --allow-empty -m'initialize new calendar'

== Passwort für neuen Kalenderuser setzen ==
htpasswd -s /etc/calypso/users $new_user

== Einrichtung eines neuen Kalenders in Evolution ==
 * -> Datei -> Neu -> Kalender
 * "CalDav" auswählen
 * caldav://systemausfall.org/private/$new_user/
 * SSL verwenden
 * Benutzername: $new_user

== Einrichtung eines neuen Kalenders in Thunderbird/Icedove ==
 * -> Datei -> Neu -> Kalender
 * "im Netzwerk" -> weiter
 * Format: CalDav
 * Location: https://systemausfall.org/private/$new_user/termine

----
= der radicale Weg =
 * http://www.radicale.org/
 * https://wiki.hostsharing.net/index.php?title=RadicaleCalDAVServer

== Installation ==
 * als Debian Paket: {{{
aptitude install radicale
}}}
  * bestenfalls die stable 1.0 aus Debian/stretch
 * oder mit aktueller Codebasis per git : {{{
git clone git://github.com/Kozea/Radicale.git
}}}

== Konfiguration ==
Radicale bringt den pythoneigenen Webserver mit. Der ist für Testzwecke und lokal genutzte Installationen ausreichend. Sobald mehrere Clients radicale nutzen wollen ist ein eigener Webserver erforderlich.
 * Nginx bietet sich als Webserver an; bestenfalls wird radicale per wsgi aufgerufen
 * Achtung! parallele Zugriffe kann radicale nicht konsistent bearbeiten -> also immer ein worker/ein thread einstellen
 * nginx mittels proxy_pass: https://blogobramje.nl/posts/How_to_run_radicale_behind_nginx/

== Konfiguration ==
 * Leider ist das Debianpaket (squeeze) etwas spartanisch, nichtmal die config-Datei ist dabei. So in etwa kann sie aussehen. Einfach unter ''/etc/radicale/config'' speichern und beim nächsten radicale Start wird sie verwendet: {{{
[server]
# CalDAV server hostname, empty for all hostnames
host =
# CalDAV server port
port = 5232
# Daemon flag
daemon = False
# SSL flag, enable HTTPS protocol
ssl = False
# SSL certificate path (if needed)
certificate = /etc/apache2/ssl/server.crt
# SSL private key (if needed)
key = /etc/apache2/ssl/server.key

[encoding]
# Encoding for responding requests
request = utf-8
# Encoding for storing local calendars
stock = utf-8

[acl]
# Access method
# Value: fake | htpasswd
type = fake
# Personal calendars only available for logged in users (if needed)
personal = False
# Htpasswd filename (if needed)
filename = /etc/radicale/users
# Htpasswd encryption method (if needed)
# Value: plain | sha1 | crypt
encryption = plain

[storage]
# Folder for storing local calendars,
# created if not present
folder = /data/calendars
}}}
  * Die "folder" Variable gibt an, wo die Kalender gespeichert werden. Schreibrechte für den User nicht vergessen, unter dem radicale gestartet wurde.
 * starten mit ''radicale'' oder ''/etc/init.d/radicale start''

----
= der radicale 2.x Weg =
Radicale unterstützt mittlerweile mehrere simultane Zugriffe und ist somit nun auch für Installationen mit mehreren Benutzer_innen gut gerüstet. Die Installation in einem Debian 9 gestaltet sich schnell und unaufwändig:
{{{
aptitude install python3 python3-passlib python3-bcrypt apach2-utils nginx
python3 -m pip install --upgrade radicale
}}}

Die wenigen weiteren Schritte sind hier gut zusammengefasst: http://radicale.org/setup/


----
= Clients für radicale Kalender =
== Webfrontend für Kalender ==
 * Infcloud: http://www.inf-it.com/open-source/clients/caldavzap/
 * http://agendav.org/

== Kalenderprogramme (Clients) ==
 * http://radicale.org/user_documentation/#starting-the-client

== Einrichtung eines neuen Kalenders in Thunderbird/Icedove ==
 * Icedove/Thunderbird in Debian installieren: {{{
aptitude install icedove icedove-l10n-de iceowl-extension
}}}
 * -> Datei -> Neu -> Kalender
 * "im Netzwerk" -> weiter
 * Format: CalDav
 * Location: http://localhost:5232/dein-name/dein-kalender/
  * "localhost" entsprechend ersetzen
  * "dein-name" & "dein-kalender" sind frei wählbar
 * Adressbücher abgleichen mittels [[http://sogo.nu/ Sogo]]: {{{
aptitude install xul-ext-sogo-connector
}}}

== Client Android ==
Auch das funktioniert komplett ohen Google Apps
 * Smartphone mit Google freier Firmware bestücken (z.B. cyanogenmod ROM ohne gapps)
 * Paketmanager "f-droid" installieren, das ist quasi ein Open Source App Store
 * mittels f-droid die "davdroid" App installieren (das synchronisierungs tool)
 * in davdroid neuen Kalenderaccount anlegen und synchronisieren
 * eigene ssl zertifikate in android 4 importieren: nach /mnt/sdcard/...crt kopieren und unter einstellungen->sicherheit->zert von usb/sd importieren

----
= der Webdav Weg =
== Vorraussetzungen ==
 * Webserver mit WebDAV Unterstützung und https
 * Kalenderclient, der das ical Foramt versteht (z.B. Mozilla Sunbird)

== Einrichtung des Webservers ==
 * apache mit webdav und https konfigurieren
 * Zugangsberechtigungen für alle Gruppenmitglieder einrichten
 * in das entsprechende Verzeichnis eine minimale ical Datei kopieren (ical Datei vorher aus Sunbird exportieren)
  * per Browser oder anderem webdav Client testen, ob der Zugriff darauf klappt

== Einrichtung der Kalender ==
 * alle Mitglieder der Gruppe, die auf den Kalender zugreifen wollen installieren sich das Programm ihrer Wahl (z.B. Sunbird)
 * im Programm wird die URL zur Kalenderdatei angegeben ("Kalender abonnieren" o.ä.)
 * alle in diesen Kalender eingetragenen Termine werden nun automatisch auf dem Server gespeichert

== Ergänzungen ==
 * Der Kalender ist nur nutzbar, wenn eine Verbindung zum Server besteht.
 * Besonders nett ist ein automatisiertes Backup auf dem Server, falls mal was schief läuft oder ein Mitglied alles löscht.
  * z.B. mit ''rdiff-backup'' stündlich per cronjob
 * Mittels ''phpicalender'' kann die Kalender Datei auch nur lesbar als Webseite angezeigt werden.

== Caveats ==
Die hier beschriebene Lösung hat ein entscheidendes Manko. Bricht der schreibvorgang der Kalenderdatei ab, ist der Kalender nicht mehr nutzbar. In einigen Praxiseinsätzen hat sich gezeigt, dass das gar nicht so selten passiert (z.B. schwaches WLAN). Hier half nur die Wiederherstellung per rdiff-backup.

----
= Weiterlesen =
 * sehr gute, ausführliche Diplomarbeit zum Thema: [[http://www.ai.wu.ac.at/~aweichse/dips/pdf/2007/da-rmf-web-kalender.pdf|Kalenderstandards im Internet]]

Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.