PROJET AUTOBLOG


Idleman

source: Idleman

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Installez votre synchronisateur de contacts chez vous avec Baikal

samedi 23 mars 2013 à 16:28

Lorsque l’on devient un véritable technophile bassement matérialiste, on se met à accumuler tout un tas d’engins électroniques : Téléphone portable, Tablette, Pc, Mac, montres, lunettes ou strings panthères connectés etc…

Qu’on toutes ces machines en communs ? Les contacts!

Qu’il s’agisse des adresse email sur votre messagerie de pc portable/fixe/mac/ultra portable… ou encore des numéro de téléphones sur votre androïde phone/iphone/windows phone, tablettes etc… ils y en à partout c’est un besoin fondamental pour les appli de partage d’information avec un tiers (toutes les appli quoi ^^).

Ca devient alors très vite contraignant d’organiser tout ce beau monde, de synchroniser et de mettre à jour tous les appareils sans doublons, crises de nerfs, pertes d’infos, de temps et de cheveux.

C’est pourquoi il peut être intéressant d’utiliser un synchronisateur de contacts tels qu’en propose google, apple, windows, à ceci près que nous allons l’installer sur notre propre serveur/hébergeur gratuitement, ceci nous permettra :

Oui MAIS !! Aujourd’hui les solutions de synchronisation de contacts type cardDav (format standard de carte de contact)/calDav (format standard de calendrier) gratuites, propres, stables et installables sur votre serveur/hébergement ça ne coure pas les rues.

Evidemment il y a des solutions type owncloud mais encore peu matures donc relativement boguées/peu stables, auxquelles je ne fais pas tout à fait confiance de mon côté.

En revanche un utilisateur m’a récemment fait découvrir Baikal qui, bien qu’il ne soit pas très vieux et utilise la même librairie qu’owncloud (sabreDAV, une excellente librairie pour gérer les standard calDav, webDav, calDav au passage), il se contente de faire le minimum (pas de gestion de fichiers) et il le fait donc très bien Sourire.

Baikal permet de gérer simplement la synchronisation, la centralisation et le stockage de vos contacts (ainsi que de votre calendrier si vous le souhaitez) et ce à l’aide d’un format standard et très accessible quel que soit votre appareil/système d’exploitation.

image

Le script reste relativement simple, il peux gérer plusieurs utilisateurs ayant chacun plusieurs carnet d’adresses / calendrier et propose une petite dashboard de statistiques.

image

Ce script sous licence GPL a l’avantage d’avoir été créé avec la librairie js/css boostrap qui rend l’application très jolies et responsive (adaptable tout écran tablettes, smartphone, pc etc…).

Il est installable avec une base de donnée SQL lite (simple fichier) ou avec une base MySQL au choix.

Il est à noter tout de même deux gros points faibles pour l’application :

  1. A actuelle, impossible de gérer vos contact directement depuis l’interface web, il faudra passer par un client (votre carnet d’adresse de portable, votre cardnet de messagerie pc ou autre) pour ajouter/supprimer/modifier les contacts, sans être bloquant c’est un peu déstabilisant de ne pas avoir de visuel direct des contacts sur l’interface web.
    La liaison du script à d’autres machine n’est pas forcement très claire (nous allons  tenter d’y remédier partiellement dans ce tuto Tire la langue).

Voyons un peu comment installer tout ça Sourire.

Installation

image

image

L’installation de Baïkal est maintenant terminée, notez qu’on vous demandera peut être à un moment de donner des permissions sur certaines dossiers de l’application, il vous faudra donc utiliser la commande “chmod –R 777 /chemin/vers/le/dossier/baikal” si vous êtes sur un serveur, ou passer par un programme de gestion de droits ftp comme fileZilla si vous êtes sur un hébergement simple sans accès à la ligne de commande.

image

Création d’un utilisateur

Afin de créer des carnets d’adresse, il vas falloir en premier lieu créer un utilisateur lié à ce carnet (car baikal est multi utilisateurs), on clique donc sur “start using baikal”, on s’identifie avec le mot de passe Admin qu’on à rentré à l’utilisation et on arrive sur l’interface

image

Un clic sur l’onglet “users and ressources” nous amène sur la page de gestions des utilisateurs et des carnets/calendriers, on clic sur le bouton  image Pour ajouter un nouvel utilisateur :

image

retenez bien le “username” et le “password” que vous tapez, ce sont les identifiants qui vous servirons par la suite à connecter vos machines aux carnets d’adresses et calendriers créés.

nb : Gardez le username le plus simple possible, évitez les majuscules, accents, caractères spéciaux etc…

Création d’un carnet d’adresses/calendrier pour l’utilisateur

Une fois l’utilisateur créé, une barre image apparait, cliquez sur l’un ou sur l’autre pour créer un calendrier ou un carnet d’adresses pour l’utilisateur.

Par défaut vous avez déjà un carnet d’adresse et un calendrier créées pour cet utilisateurs, ils ont tout deux pour identifiants le nom “default” dont nous nous servirons plus tard, si vous créez de nouveaux carnets/calendriers, retenez bien l’identifiants que vous leurs attribuez.

Utilisation avec la messagerie thunderbird

Je ne peux pas vous donner l’installation pour toutes les messageries existantes, mais je vous donne un exemple avec (selon moi) la meilleur d’entre toute : thunderbird Sourire, si vous n’avez pas cette messagerie installez la, il vous la faut, le processus est sensiblement identique aussi je vous conseille de suivre cette partie.

Synchroniser les contacts

Thunderbird ne gère pas les formats cardDav par défaut, il vas donc falloir télécharger et installer l’extension gratuit “SOGo Connector” sur votre Thunderbird, le redémarrer puis cliquer sur l’onglet “outils—>carnet d’adresses” et dans la fenêtre qui s’ouvre “Fichier—>nouveau—>carnet d’adresse distant”

image

Puis taper l’adresse de votre carnet d’adresse, dans mon cas j’ai gardé celui par défaut :

image

C’est cette adresse qui est très mal spécifié dans la doc et dans le panel de baikal, aussi faites très attentions à l’adresse et aux spécifications suivantes :

http://127.0.0.1/baikal-flat/card.php/addressbooks/idleman/default/

http://127.0.0.1/baikal-flat/  Adresse vers votre panel web baikal

card.php/addressbooks/: chemin obligatoire vers les carnets d’adresses (ne pas changer)

idleman/: Nom de l’utilisateur créé précédemment (le fameux username)

default/: Identifiant du carnet d’adresse ciblé (ou à gardé celui par défaut dont l’identifiant était default).

nb: le “/” en fin d’adresse est obligatoire.

A la prochaine synchro, thunderbird vous demandera de spécifier le username et le password de l’utilisateur que vous avez créé afin de le conserver en mémoire

Tout les contacts que vous mettrez dans ce carnet d’adresse thunderbird seront alors automatiquement synchronisés avec le carnet baikal et réciproquement.

Pour être sûr que ça fonctionne, créez un contact dans le carnet thunderbird, puis retournez voir sur le panel web baikal si vous avez un ou plusieurs contacts, c’est que ça à fonctionné :

image

Notez bien que la synchro peux mettre un peu de temps, vous pouvez faire clic droit sur le carnet d’adresse et “synchroniser” pour forcer la synchro.

Synchroniser le calendrier

Encore une fois, Thunderbird ne possède pas de calendrier natifs, il faut donc ajouter le plugin “lightning” qui vas ajouter un calendrier à votre messagerie, redémarrez votre thunderbird, cliquez sur l’onglet agenda puis dans les agendas de gauche clic droit—>Nouvel agenda—>Sur le Réseau

image

Sélectionnez “CalDav” et rentrez l’adresse de votre calendrier baikal

image

Cette adresse aussi est très mal spécifié dans la doc et dans le panel de baikal, aussi faites très attentions à l’adresse et aux spécifications suivantes :

http://127.0.0.1/baikal-flat/cal.php/calendars/idleman/default/

http://127.0.0.1/baikal-flat/ Adresse vers votre panel web baikal

cal.php/calendars/: chemin obligatoire vers les calendriers (ne pas changer)

idleman/: Nom de l’utilisateur créé précédemment (le fameux username)

default/: Identifiant du calendrier ciblé (ou à gardé celui par défaut dont l’identifiant était default).

nb: le “/” en fin d’adresse est obligatoire.

Vous pouvez cocher “prise en charge du mode hors connexion” historie d’avoir accès a vos évènements même lorsque la connexion internet est coupée.

A la prochaine synchro, thunderbird vous demandera de spécifier le username et le password de l’utilisateur que vous avez créé afin de le conserver en mémoire

Utilisation sur un téléphone android

Sur un téléphone android le mieux est encore d’installer l’application “CardDAV-Sync free beta” qui en dépit de son nom inquiétant fonctionne plutôt bien Sourire

Rentrez la même adresse que pour les contacts de thunderbird  http://127.0.0.1/baikal-flat/card.php/addressbooks/idleman/default/ (avec les changements qui s’imposent)

http://127.0.0.1/baikal-flat/ Adresse vers votre panel web baikal

card.php/addressbooks/: chemin obligatoire vers les carnets d’adresses (ne pas changer)

idleman/: Nom de l’utilisateur créé précédemment (le fameux username)

default/: Identifiant du carnet d’adresse ciblé (ou à gardé celui par défaut dont l’identifiant était default).

Pensez à décocher la case “Use SSL” (à moins que votre baikal ne soit installé avec un https) et à spécifier le username et le password de l’utilisateur que vous avez créé

Utilisation sur un apple, iphone…

Toutes les infos disponibles ici : https://github.com/jeromeschneider/Baikal/blob/master/INSTALL.md#5—connecting-your-caldav–carddav-client-to-bakal

nb : sur Mac OS X 10.8 et Calendar (ex-iCal) l’adresse pour le CalDAV  il semble qu’il faille dans certains cas utiliser « principals » au lieu de « calendars ».
Soit en adresse serveur : toto.com
Server path : /baikal/cal.php/principals/toto

Utilisation avec la messagerie web RoundCube

Pour synchroniser vos contacts avec roundcube vous devrez installer le plugin Roundcube-CardDAV qui fonctionne très bien :)

  1. Téléchargez le plugin et décompressez le dans le répertoire « plugins » de votre roundcube, renommez le dossier carddav pour plus de simplicité
  2. Renommez le fichier plugins/carddav/config.inc.php.dist en plugins/carddav/config.inc.php
  3. Dans la même base MySQL que roundcube, exécutez le sql contenu dans le fichier plugins/carddav/SQL/mysql.sql
  4. Activez le plugin en ajoutant ‘carddav’ dans le tableau « $rcmail_config['plugins'] » du fichier /config/main.inc.php (L379 par la)

Le plugin est maintenant correctement installé, loguez vous sur roundcube puis allez dans l’onglet « Préférences » puis le menu de gauche « Carddav » et renseignez les infos du formulaire:CaptureLabel : Nom du carnet d’adresse affiché sur rouncube (mettez ce que vous voulez)

Serveur : Adresse du carnet baikal

Cette adresse aussi est très mal spécifié dans la doc et dans le panel de baikal, aussi faites très attentions à l’adresse et aux spécifications suivantes :

http://127.0.0.1/baikal-flat/card.php/addressbooks/idleman/default/

http://127.0.0.1/baikal-flat/ Adresse vers votre panel web baikal

card.php/addressbooks/: chemin obligatoire vers les calendriers (ne pas changer)

idleman/: Nom de l’utilisateur créé précédemment (le fameux username)

default/: Identifiant du calendrier ciblé (ou à gardé celui par défaut dont l’identifiant était default).

nb: le “/” en fin d’adresse est obligatoire.

Utilisateur : login de l’utilisateur lié à ce carnet sous baikal

Mot de passe : mot de passe de l’utilisateur lié à ce carnet sous baikal

Cliquez sur enregistrer, attendez quelques secondes puis allez dans vos carnet d’adresse : it works !!

Capture

Notez que si vous souhaitez que ça synchronise régulierement, il vous faudra mettre en place un CRON (tâche planifiée) qui exécutera le php /chemin/vers/roundcube/plugins/carddav/cronjob/synchronize.php

Pour ceci lancez une console sur votre serveur web puis tapez :

crontab -e

et ajoutez la ligne

0 4 * * * php /var/www/roundcube/plugins/carddav/cronjob/synchronize.php

Au fichier de crontab ouvert, en remplaçant la partie en gras pa le chemin de votre rouncube puis sauvegardez.

Notez que le cron que je propose synchronise une fois par jour à 4h00 du mat (peut de chance que vous soyez en train de modifier vos contacts à cette heure la, si vous avez « pécho des 06 en boites » normalement c’était quelques heures plus tôt, à 4h00 vous êtes en train de vomir votre vodka sur un parcmètre donc tout vas bien).

Notez que vous devez avoir le paquet php5-cli pour pouvoir executer le php en ligne de commande comme ça, si ça ne marche pas pensez donc à l’installer via la commande sudo apt-get install php5-cli

Si vous souhaitez participer

Je vous encourage à participer au code, aux retours de bugs etc du projet via sa page github : https://github.com/jeromeschneider/Baikal

 

Une alternative qui à l’air franchement sympa

Je tiens à mettre valeur le commentaire de nono sur une alternative qui à l’air également super convaincante : Radical :

Je me permets de vous faire découvrir Radicale qui est l’équivalent de Baikal, mais en plus simple et plus robuste.

Plus simple parce qu’il n’y a même pas d’interface web (pas franchement utile pour une appli de type web-service).

Plus robuste parce qu’elle n’utilise pas de base de données (sqlite), mais uniquement un stockage en fichier plat, ce qui est très logique vu que les données à stocker ne sont que faiblement relationnelles.

Et enfin, cerise sur le gateau, Radical permet de créer des collections (de contacts ou d’évènement) publiques (donc accessibles à tous), privées (donc accessibles uniquement aux personnes authentifiées, ou personnelles (donc accessibles uniquement à par son propriétaire).

Cela permet donc de partager (sommairement) des contacts ou des évènements.

Et comment on crée une collection ? En accédant à son adresse, tout simplement.

Radicale, le plus KISS des caldav/carddav server…

 - nono