***********************************************************************************************************************************


          ,,_
        o"   )~
         '' ''
        +----------------------------------------------------------------------+
          adresSQL
        +----------------------------------------------------------------------+
          Copyright (c) since 2009 Matthias Nitzschke (mn-portal.at)
          Version: see vars/version.var
          http://www.mn-portal.at
          Forum: http://forum.mn-portal.at
        +----------------------------------------------------------------------+
          Author: Matthias Nitzschke <office@mn-portal.at>
        +----------------------------------------------------------------------+


          Stand: 24.10.2013

          Diese Textversion ist in UTF-8 kodiert

***********************************************************************************************************************************

    =============================================================
    | Baikal Caldav Erweiterung für den adresSQL-Terminkalender |
    =============================================================

Baikal ist ein Lightweight CalDAV+CardDAV server der auf SabreDAV basiert und stellt einen CalDAV Implementierung für Kalender
zur verfügung (z.B. für das Thunderbird Lightning-Addon).

Für Android verwende ich CalDAV Sync (https://play.google.com/store/apps/details?id=org.dmfs.caldav.lib&feature=more_from_developer)
von Marten Gajda

Der Baikal Caldav-Server kann unter

    https://sabre.io/baikal/

heruntergeladen werden.
Die Installation ist im Wesentlichen recht einfach, ich habe das Flat-Package installiert.

***********************************************************************************************************************************


I. BAIKAL INSTALLATION (Quick & Dirty siehe Punkt V.)

1.
Laden Sie das Baikal-Flat-Paket herunter und enpacken Sie alles

2.
Erstellen Sie auf Ihrem Webserver im roots-Verzeichnis einen Ordner und laden Sie alle Dateien des Baikal-Webservers dort hinein.

3.
Rufen Sie die HTTP-Url

    http://domain.tld/baikal/html

auf und installieren Sie Baikal mit MySQL-Unterstützung in die Datenbank von adressql, nutzen Sie die Zugangsdaten die Sie auch für
adresSQL verwenden. Den Namen der adresSQL-Datenbank finden Sie hier

    connect.php->$db_name.

ACHTUNG !!!
AdresSQL unterstützt nur die MySQL-Installation, die SQL-Light Installation wird NICHT!! unterstützt.

Baikal fordert Sie eventuell auf eine Datei für die Installation in einem Unterverzeichnis zu erstellen. Sollte diese Datei bereits
existeren, löschen Sie diese und erzeugen Sie sie neu (ACHTUNG auf GROSS-Kleinschreibung).

5.
Richten Sie Baikal fertig ein.

6.
Wechseln Sie in der Baikal-Administration zu Users and recources und legen Sie zuerst einen User mit der Mailadresse von adresSQL an.
(siehe adresSQL -> Administration -> Grundeinstellungen -> Konfiguration bearbeiten -> Mail -> $config['own_mailadress']
Das ist notwendig, damit Termine in adresSQL, die nicht personalisiert werden (keinem User zugeordnet werden) in Baikal zugeordnet werden
können.
Wenn ie diese Einträge nicht anzeigen (also z.B.in Thunderbirs einbinden) kann es sein, dass Ihnen Termine fehlen die keinem User
zugeordnet werden konnten. Das können Termine sein, die NICHT personalisiert sind oder auch jene, wo ein User z.B. gelöscht wurde.

Wird dieser User NICHT angelegt, werden in Baikal Einträge (Tabelle caldendarobjects) mit der calendarid 0 generiert. Auf diese Daten
kann dann nicht zugegriffen werden, sie dienen also nur als Sicherung...
Erstellen Sie für jeden User von adresSQL einen User mit seiner Mailadresse, die er auch in adresSQL verwendet.

    HINWEIS!
    Jeder User kann in adresSQL seine eigene Mailadresse eingeben. Die Zuordnung der einzelnen Termine erfolgt nun über genau diese Mail-
    adresse.
    Hat ein user in adresSQL keine eigene Mailadresse angegeben, wird die Mailadresse des Scriptes verwendet und der Termin wird dieser
    Mailadresse zugeordnet abgelegt.


Baikal ist nun fertig konfiguriert

ACHTUNG!!
Ändert ein User in adresSQL seine Mailadresse, muss auch eine entsprechende Anpassung des Users im Baikal-Servers erfolgen!

***********************************************************************************************************************************

II. AdresSQL EINSTELLUNGEN


1 (WICHTIG !!!)
Öffnen Sie in adresSQL in der Administration

    Grundeinstellungen -> Konfiguration bearbeiten -> Pfade

Tragen Sie den Datenbank-Namen im Parameter $config['baikal_path'] ein (adressql ist voreingestellt).
Der Name entspricht genau dem Datenbank-Namen aus der adresSQL Installation (siehe Punkt 3 oben)

    Den Namen der Datenbank finden Sie hier (adressql-Verzeichnis -> connect.php->$db_name).

2.
Unter

    Konfiguration bearbeiten -> Script-Tools

stellen Sie den Parameter $config['baikal'] auf 1. Das Baikal-Modul ist nun aktiviert.

3 (optional).
Wenn Sie möchten, dass alle neu erstellten Termine automatisch dem User zugeordnet werden, der den Termin erstellt hat, schalten
Sie unter:

    Konfiguration bearbeiten -> Standards

den Parameter $config['termin_always_bind_to_user'] auf 1, damit Termine immer an den Unser gebunden werden, der den Termin erstellt
oder bearbeitet, andernfalls werden alle Termine dem Standard-adresSQL-User zugeordnet, sprich es gibt nur allgemeine Termine.
Diese Einstellung ist aber optional

adresSQL ist nun fertig eingerichtet.

***********************************************************************************************************************************


III. Einen Client einrichten (z.B. Thunderbird mit Lightning)

1.
Jeder User legt nun (z.B. in Thunderbird Lightning) einen neuen Kalender an (Netzwerk, nicht Lokal), die Kalenderadresse lautet
dann für CalDAV:

    http://meinserver.tld/der_ordner_mit_baikal/cal.php/calendars/<Username>/default/

Ersetzen Sie <Username> durch den Usernamen den sie in Baikal eingetragen haben und beantworten Sie die Login-Fragen.

Der Client ist nun fertig eingerichtet.

PS
Denken Sie daran, den allgemeinen Kalender einzubinden, sonst fehlen Ihnen unter Umständen Termine, die keinem User zugeordnet wurden.


***********************************************************************************************************************************

Abschliessend....

Derzeit biete ich nur Unterstützung für den CalDAV-Server (also Termine) an.
Für Fehler im Baikal-Server sehe ich mich nicht zuständig, werde aber genre versuchen im Forum Probleme zu behandeln und auch
(sofern es meine Kenntnise erlauben) zu lösen.

Ein Anbindung an den CardDAV-Server ist momentan noch nicht vorhanden. Ob und wann es eventuell doch soweit ist, kann ich nicht sagen.


***********************************************************************************************************************************

V. Baikal Installation unter Linux (Quic & Dirty)


    * Lade das aktuelle Flat-File-Paket herunter
    * unzip and verschiebe nach /var/www/baikal

    Öffne eine Shell mit root-Rechten

    cd /var/www
    chown -R www-data:www-data baikal*

    mysql -u root -p -D adressql < /var/www/baikal/Core/Resources/Db/MySQL/db.sql
    touch /var/www/baikal/Specfic/ENABLE_INSTALL
    chown www-data /var/www/baikal/Specific/ENABLE_INSTALL

    Virtual host anlegen:
    vi /etc/apache2/sites-available/baikal

        <VirtualHost *:80>
           ServerName baikal

           DocumentRoot /var/www/baikal

           ErrorLog /var/log/baikal.error_log
           TransferLog /var/log/baikal.access_log
           LogLevel warn

           <Directory "/var/www/baikal">
             Order allow,deny
             Allow from all
           </Directory>

        </VirtualHost>

    ln -s /etc/apache2/sites-available/baikal /etc/apache2/sites-enabled
    /etc/init.d/apache2 restart

Eventuell muss noch dav für den Apache2 aktiviert werden. Als root

    a2enmod dav
    service apache2 restart

Das war's...
