Comment synchroniser des calendriers et des contacts à l’aide des normes CardDAV et CalDAV avec Baïkal sur Ubuntu 14.04

introduction

Avec de plus en plus de personnes utilisant plusieurs appareils (smartphones, ordinateurs, tablettes, etc.), la nécessité de tout synchroniser ne cesse de croître.

S’il est important de synchroniser files, il est également utile d’être capable de synchroniser les calendriers et les contacts dans leurs formats natifs.

Les normes CalDAV et CardDAV constituent un moyen simple de tenir au courant de ce que nous faisons de manière intelligente, de mettre à jour ce que nous faisons et de contacter nos amis et autres contacts. Dans ce tutoriel, nous allons vous montrer comment synchroniser des calendriers et des contacts depuis un serveur que vous contrôlez, en utilisant une installation très simple de http://baikal-server.com [Baïkal], un serveur PHP CalDAV et CardDAV.

_ _ * Remarque: * Si vous cherchez une solution tout-en-un, vous pouvez jeter un coup d’œil à https://www.digitalocean.com/community/tutorials/how-to-use-the-owncloud-one -click-install-application [ownCloud] à la place.

  • Remarque: * Baïkal est rapide et facile, mais pas vraiment conçu pour un déploiement à grande échelle. Si vous souhaitez synchroniser votre calendrier et vos contacts pour une moyenne ou une grande entreprise, cette solution risque de ne pas bien fonctionner pour vous. _ _

Conditions préalables

Veuillez vous assurer que ces conditions préalables sont en place.

  • Fresh Ubuntu 14.04 Droplet avec SSH access

  • Un utilisateur sudo

  • Les instructions Baïkal recommandent vivement d’avoir un domaine, de préférence un sous-domaine, pour le serveur. Ce tutoriel utilisera le nom de domaine + dav.example.com +. Vous pouvez utiliser ++. Si vous hébergez votre DNS avec Digital Ocean, this article peut vous aider à configurer ce sous-domaine

Nous allons également installer certains paquets dont Baïkal a besoin; nous utiliserons un certificat SSL; et nous reviendrons sur leur mise en place dans l’article lui-même. Si vous souhaitez acheter un certificat SSL, vous devez l’acheter pour le domaine ou le sous-domaine de votre serveur Baïkal.

Étape 1 - Installation de Baïkal

Pour commencer, nous allons installer certains paquetages requis, télécharger l’archive tarball de Baïkal, puis l’extraire.

Dans les exemples ci-dessous, nous utilisons la dernière version de Baïkal, ce qui n’était pas le cas au moment de la rédaction du présent document, mais nous vous recommandons de revérifier la dernière version de http://baikal-server.com [version de Baïkal] avant de commencer. Pour trouver la dernière version, rendez-vous sur le site Baïkal et cliquez sur le bouton * Télécharger pour commencer * ou faites défiler jusqu’à la section * Obtenir Baïkal *. S’il existe une version plus récente, copiez le lien de téléchargement correspondant au * paquet standard *.

Pour commencer, vous devez utiliser SSH dans votre droplet Ubuntu.

Maintenant, installons les paquets que Baïkal devra exécuter. Nous supposerons qu’il s’agit d’une nouvelle installation Ubuntu. Par conséquent, avant de pouvoir installer certains paquets à partir du référentiel, nous devons mettre à jour le cache du référentiel avec + apt-get update +.

sudo apt-get update

Installez certains packages prérequis: PHP, Apache et SQLite.

sudo apt-get install apache2 php5 php5-sqlite sqlite3

_ * Remarque: * Dans le fichier d’installation de Baïkal, l’auteur indique qu’Apache peut être remplacé par Nginx et que SQLite peut être remplacé par MySQL. _

Maintenant que nous avons les pièces nécessaires pour faire fonctionner Baïkal, installons-nous! Comme Baïkal est un site Web en PHP, nous allons le télécharger et l’extraire dans le répertoire du site Apache, + / var / www +.

cd /var/www
sudo wget http://baikal-server.com/get/baikal-regular-0.2.7.tgz
sudo tar -xvzf baikal-regular-0.2.7.tgz

_ * Note: * Pour ceux qui voudraient savoir ce que nous venons de dire: + tar + à faire: + x + = e x tract, + v + = v erbose, + z + = un z ip et + f + `= f ile, suivi du nom du fichier. _

Une dernière étape et Baïkal sera installed. Depuis que nous avons extrait l’application PHP, nous n’avons plus besoin du fichier tar. Nous allons donc supprimer ce fichier, renommer le dossier extrait en un fichier plus pertinent, puis nous assurer qu’il est lisible et inscriptible par l’utilisateur Apache.

sudo rm baikal-regular-0.2.7.tgz
sudo mv baikal-regular
sudo chown -R www-data:www-data

_ * Remarque: * Vous pouvez nommer le dossier comme vous le souhaitez, mais il est beaucoup plus facile d’identifier des sites, si vous envisagez d’en héberger plusieurs, si vous utilisez le nom du site Web pour le dossier du site Web. _

Étape 2 - Configuration d’Apache

Notre application est installée et nous devons maintenant en informer Apache. Pour faciliter les choses, Baïkal inclut en fait son propre fichier de configuration Apache en tant que modèle. Nous copierons ce fichier dans le répertoire Apache + sites-available + puis nous le modifierons pour l’adapter à notre site.

sudo cp /var/www/dav.example.com/Specific/virtualhosts/baikal.apache2 /etc/apache2/sites-available/dav_example_com.conf

À l’aide de votre éditeur de texte préféré, ouvrez le fichier + dav_example_com.conf + et modifiez toutes les URL pour qu’elles utilisent votre propre URL et les chemins d’accès à l’emplacement de stockage de votre site. Voici à quoi ça va ressembler:

sudo nano /etc/apache2/sites-available/dav_example_com.conf
<VirtualHost *:80>
   DocumentRoot /var/www//html
   ServerName

   RewriteEngine On
   RewriteRule /.well-known/carddav /card.php [R,L]
   RewriteRule /.well-known/caldav /cal.php [R,L]

   <Directory "/var/www//html">
       Options None
       Options +FollowSymlinks
       AllowOverride All
   </Directory>
</VirtualHost>

Nous avons maintenant besoin d’un certificat SSL.

Vous pouvez créer ou acheter votre certificat. Nous supposerons que vous avez suivi le tutoriel SSL lié et que votre clé et votre certificat se trouvent dans le répertoire + / etc / apache2 / ssl + et s’appellent + apache.crt + et + + apache.key + `. Veuillez les remplacer par les chemins d’accès à votre propre certificat et à votre clé, selon le cas.

Nous devons maintenant indiquer à Apache comment utiliser le certificat SSL. Pour cela, nous devons combiner le fichier de configuration SSL par défaut (+ default-ssl.conf +) avec notre fichier de configuration Baïkal, et nommez-le + dav_example_com-ssl.conf +. Vous trouverez ci-dessous un exemple de ce à quoi cela ressemblera, avec tous les commentaires retirés.

sudo nano /etc/apache2/sites-available/dav_example_com-ssl.conf
<IfModule mod_ssl.c>
   <VirtualHost _default_:443>
       ServerAdmin

       DocumentRoot /var/www//html
       ServerName

           RewriteEngine On
           RewriteRule /.well-known/carddav /card.php [R,L]
           RewriteRule /.well-known/caldav /cal.php [R,L]

       <Directory "/var/www//html">
           Options None
           Options +FollowSymlinks
           AllowOverride All
       </Directory>

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined

       SSLEngine on

       SSLCertificateFile
       SSLCertificateKeyFile

       <FilesMatch "\.(cgi|shtml|phtml|php)$">
               SSLOptions +StdEnvVars
       </FilesMatch>
       <Directory /usr/lib/cgi-bin>
               SSLOptions +StdEnvVars
       </Directory>

       BrowserMatch "MSIE [2-6]" \
               nokeepalive ssl-unclean-shutdown \
               downgrade-1.0 force-response-1.0
       BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

   </VirtualHost>
</IfModule>

Nous sommes sur la dernière ligne droite. Nous avons le site installé et les configurations Apache appropriées créées. Nous devons maintenant dire à Apache d’activer le module + rewrite +, d’activer les sites, puis enfin de redémarrer pour que les nouveaux paramètres soient chargés.

sudo a2enmod rewrite
sudo a2ensite dav_example_com
sudo a2ensite dav_example_com-ssl
sudo service apache2 restart

Étape 3 - Configuration de Baïkal

Nous avons une dernière chose à faire sur la ligne de commande et le reste peut être fait dans un navigateur Web. Baïkal utilise un fichier nommé + ENABLE_INSTALL + pour activer la dernière étape de l’installation. Avant d’ouvrir le navigateur Web, vérifions que ce fichier existe. Nous allons utiliser + touch + pour créer le fichier s’il n’y existe pas et s’il existe déjà, nous ne faisons que mettre à jour la date de modification.

sudo touch /var/www//Specific/ENABLE_INSTALL

C’est ça! Nous sommes prêts à ouvrir un navigateur et à terminer la configuration de Baïkal. Dans votre navigateur préféré, accédez à + ​​https: // dav.example.com +.

image: https: //assets.digitalocean.com/sync_baikal/1.png [Assistant d’initialisation Baïkal]

Une fois que vous y êtes, un écran avec des options s’affiche. Définissez votre fuseau horaire à l’aide du menu déroulant, créez un nouveau mot de passe administrateur (vous devrez le saisir deux fois) et laissez tout le reste avec les paramètres par défaut.

Cliquez sur le bouton * Enregistrer les modifications *.

Sur l’écran suivant, vous pouvez choisir les paramètres SQLite par défaut ou activer le support MySQL.

image: https: //assets.digitalocean.com/sync_baikal/2.png [Configuration de la base de données Baïkal]

Si vous avez choisi d’utiliser MySQL, vous pouvez activer ce support. (L’utilisation de MySQL en tant que back-end donnera à cet outil une plus grande capacité et des performances accrues, mais si ce serveur DAV est juste pour vous, votre famille et vos amis, ou une petite entreprise, SQLite devrait très bien fonctionner.)

Pour cet exemple, nous laisserons les valeurs par défaut de SQLite activées et cliquez également sur le bouton * Enregistrer les modifications * de cette page.

Ensuite, vous verrez l’option * Commencez à utiliser le Baïkal *; cliquez sur ce bouton.

image: https: //assets.digitalocean.com/sync_baikal/3.png [Commencez à utiliser le Baïkal]

Vous serez redirigé vers la page d’accueil de Baïkal.

_ _ * Remarque: * Si vous voyez le site Web Apache par défaut à la place de votre site Web Baïkal, vous devez désactiver le site Web Apache par défaut et redémarrer Apache. Les choses devraient commencer à fonctionner maintenant.

sudo a2dissite 000-default.conf
sudo service apache2 reload

_ _

Étape 4 - Création d’un utilisateur

Après avoir effectué la configuration initiale, il ne reste plus qu’à créer un utilisateur, puis à connecter vos clients pour démarrer la synchronisation.

Pour créer un utilisateur, connectez-vous au site Web Baïkal en utilisant le nom d’utilisateur * admin * et le mot de passe que vous avez défini lors de l’étape de configuration ci-dessus.

La première page de l’application est le tableau de bord. Il vous indique ce qui est activé et en cours d’exécution, ainsi que des statistiques de base, telles que le nombre d’utilisateurs, les calendriers et les contacts.

La création d’un utilisateur est un processus en trois étapes.

  1. En haut de la page, cliquez sur le lien * Utilisateurs et ressources *

  2. Maintenant, cliquez sur le bouton à droite, * + Ajouter un utilisateur *

  3. Remplissez tous les champs puis cliquez sur le bouton * Enregistrer les modifications *

image: https: //assets.digitalocean.com/sync_baikal/4.png [Formulaire des utilisateurs; remplissez les champs comme vous le souhaitez]

_ * Remarque: * Il n’existe aucune exigence du côté serveur pour le formatage du nom d’utilisateur, mais certains clients peuvent se plaindre si le nom d’utilisateur ne ressemble pas à une adresse électronique, telle que: [email protected] _

Dépannage

Si vous rencontrez des problèmes, tels que le mot de passe de votre administrateur n’est pas accepté, vous pouvez exécuter quelques commandes pour réinitialiser l’application, ce qui vous permet de la reconfigurer. Pour ce faire, vous devrez SSH dans votre Droplet pour exécuter les commandes suivantes.

  • Ne le faites pas sauf si vous souhaitez réinitialiser le serveur. *

cd /var/www//Specific/
sudo rm config*.php
sudo touch ENABLE_INSTALL

Maintenant, vous pouvez revenir dans le navigateur Web et relancer l’assistant de configuration de l’application. Espérons que cette fois, tout fonctionne.

Conclusion

Toutes nos félicitations! Vous avez installé un serveur de synchronisation CalDAV et CardDAV avec un panneau de commande à interface graphique. À ce stade, vous pouvez configurer vos clients pour qu’ils se connectent au serveur. Ce faisant, utilisez + https: // + comme nom d’hôte.