Tutorial, HowTo, How-To ...

CalDAV est une extension du protocole WebDAV, permetttant d’accéder et de partager son calendrier sur un serveur distant. J’ai essayé plusieurs serveur CalDAV comme Zimbra ou Chandler mais ils sont compliqués à installer car ils sont plutôt orientés groupware / collaboratif.

Je cherchais un serveur CalDAV plus simple et j’ai découvert aujourd’hui par hasard le logiciel : DAViCAL quand j’ai mis à jour mon arbre gentoo : l’ebuild n’est pas encore disponible dans l’arbre officiel de gentoo mais dans l’Overlay sunrise.

DAViCAL est le nouveau nom du projet RSCDS (Really Simple CalDAV Store ie. apache + php + postgresql)... ce qui semble bien correspondre à mon besoin :)

Cet article complète mon dossier sur le PIM [1] : Synchronisation et Partage de données PIM

Installation de DAViCal

- paramètres de l’installation :

  • Le serveur DAViCal sera accessible à l’adresse : http://calendar.foobar.com

- Installer l’ebuild davical


# USE="vhosts" emerge -av "=www-apps/davical-0.9.5"
# webapp-config -I -h calendar.foobar.com -d davical davical 0.9.5

rq : les fichiers sont installés dans /var/www/calendar.foobar.com

- Créer un fichier de conf virtualhost apache : /etc/apache2/vhosts.d/calendar.foobar.com_vhosts.conf


<VirtualHost *:80>
       ServerName calendar.foobar.com
       ServerAdmin webmaster@calendar.foobar.com

       DocumentRoot /var/www/calendar.foobar.com/htdocs/davical/htdocs
       DirectoryIndex index.php index.html

       Alias /images/ /var/www/calendar.foobar.com/htdocs/images/

       php_value include_path /usr/share/php5/libawl-php
       php_value magic_quotes_gpc 0
       php_value register_globals 0

       <Directory "/var/www/calendar.foobar.com/htdocs/davical/htdocs">
            Options Indexes
            Order deny,allow
            Allow from all
       </Directory>

</VirtualHost>

- Configurer la base de données PostgreSQL

  • nom de la base de données : davical (nom par défaut)
  • nom d’utilisateur : davical_dba et davical_app (noms par défaut)
  • Mettre à jour les droits PostgreSQL : rajouter dans le fichier /var/lib/postgresql/data/pg_hba.conf/ les lignes suivantes :

local all all trust
local davical davical_dba trust
local davical davical_app trust

Rq : si le fichier pg_hba.conf n’existe pas, vous pouvez utiliser la commande suivante pour bien configurer PostgreSQL :


# emerge --config postgresql
  • Redémarrer PostgreSQL

# /etc/init.d/postgresql restart
  • Créer la base de données et utilisateurs PostgreSQL

# su postgres
$ createuser --no-createdb davical_app
Le nouvel utilisateur a-t'il le droit de créer des utilisateurs ? (o/n) n
CREATE USER
$ createuser --no-createdb davical_dba
Le nouvel utilisateur a-t'il le droit de créer des utilisateurs ? (o/n) n
CREATE USER
  • Lancer le script create-database.sh (attention, j’ai du modifier les droits d’execution des scripts pour pouvoir les utiliser)

# cd /usr/share/webapps/davical/0.9.5/sqlscripts
# chmod a+x create-database.sh update-rscds-database
# su postgres
$ sh /usr/share/webapps/davical/0.9.5/sqlscripts/create-database.sh

Attention : noter le mot de passe admin généré par le script ! Vous en aurez besoin pour vous connecter à l’interface web d’administration.

- Créer le fichier de conf DAViCal : /etc/davical/calendar.foobar.com-conf.php

(Rq : le nom du fichier est de la forme host-conf.php où host est le nom de votre virtual host : ici calendar.foobar.com)


# cp /etc/davical/calendar.example.com-conf.php /etc/davical/calendar.foobar.com-conf.php
  • Modifier dans le fichier les lignes suivantes :

$c->pg_connect[] = "dbname=davical user=davical_app";
$c->admin_email ='webmaster@foobar.com';
$c->default_locale = "fr_FR";

Test de DAViCal

... et voilà, l’installation est terminée : connectez-vous sur http://calendar.foobar.com en utilisant comme login : "admin" et mot de passe, celui généré par le script create-database.sh

Rq : le mot de passe admin est stoqué en clair dans la base postgresql. En cas d’oubli, vous pouvez le retrouver grâce aux commandes suivantes :


# su postgres
$ psql davical -c 'select username, password from usr;

Liens

- Serveurs et Clients CalDAV

Documentation


[1] Personal Information Management