Installez votre synchronisateur de contacts chez vous avec Baikal

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’ont toutes ces machines en commun ? Les contacts !

Qu’il s’agisse des adresses email sur votre messagerie de PC portable/fixe/Mac/ultra portable… ou encore des numéros de téléphone sur votre Android phone/iPhone/Windows phone, tablettes etc… Il y en a partout c’est un besoin fondamental pour les appli de partage d’informations 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 :

  • De nous désolidariser de services qui peuvent s’arrêter à tout moment sans vous demander votre avis (cf Google Reader)
  • D’avoir gratuitement un espace illimité pour stocker vos contacts
  • De bénéficier des avantages du “cloud” (terme fourre-tout on est d’accord mais ça vous parle non ?) sans en subir les inconvénients : données sujettes au patriot act, revendues aux publicitaires, consultées par des personnes peu scrupuleuses, toucher rectal quotidien etc…

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 court 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 standards 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 carnets d’adresses / calendriers 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 jolie et responsive (adaptable tout écran tablette, 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. Actuellement, impossible de gérer vos contacts directement depuis l’interface web, il faudra passer par un client (votre carnet d’adresses 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 machines 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

  • Décompressez l’archive téléchargée dans le répertoire web de votre hébergement ou de votre serveur (/var/www par défaut avec apache).
  • Créez un fichier vide nommé “ENABLE_INSTALL” (en majuscule, sans extension) dans le dossier “Specific” de baikal afin d’autoriser le script à s’installer.
  • image
  • Accédez à l’adresse :
  • http://ip.de.votre.serveur/baikal-flat (si vous avez renommé le dossier de baikal, changez “baikal-flat” par ce que vous avez mis).
  • Remplissez le formulaire avec les infos que vous souhaitez
  •  image
  • Server Time Zone : le fuseau horaire de votre serveur (Europe/Paris pour les français)
    Enable CalDav : cochez cette case pour utiliser le synchronisateur de calendriers
  • Enable CardDav : cochez cette case pour utiliser le synchronisateur de contacts
  • Admin password : mot de passe administrateur pour accéder à l’interface web baikal
  • Admin password confirmation : confirmation du mot de passe administrateur pour accéder à l’interface web baikal
  • Enable Web Interface: activer l’interface web (recommandé)
  • Web interface autolock : cochez cette case si vous souhaitez interdire les accès admin à l’interface et l’autoriser uniquement lorsqu’un fichier “ENABLE_ADMIN” se trouve dans le dossier Spécific (peut être utile si vous ne vous identifiez pas souvent en tant qu’admin, mais mieux vaut laisser décoché au cas où Tire la langue)
  • Cliquez sur suivant, vous arrivez à la configuration de la base de données Sourire
  • image
  • Si vous souhaitez utiliser SQlite, vous pouvez directement cliquer sur suivant, si vous préférez MySQL, cochez la case « ”Use MySQL”, un formulaire tout rouge va alors apparaître, remplissez-le avec les infos de connexion à votre base MySQL

image

L’installation de Baïkal est maintenant terminée, notez qu’on vous demandera peut être à un moment de donner des permissions sur certains 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’adresses, il va 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 a 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 clique 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 serviront 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 apparaît, 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’adresses et un calendrier créés pour cet utilisateur, ils ont tout deux pour identifiant le nom “default” dont nous nous servirons plus tard, si vous créez de nouveaux carnets/calendriers, retenez bien l’identifiant que vous leur 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 meilleure d’entre toutes : 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 va donc falloir télécharger et installer l’extension gratuite “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’adresses distant”

image

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

image

C’est cette adresse qui est très mal spécifiée dans la doc et dans le panel de baikal, aussi faites très attention à 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’adresses ciblé (ou à garder 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.

Tous les contacts que vous mettrez dans ce carnet d’adresses 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 a fonctionné :

image

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

Synchroniser le calendrier

Encore une fois, Thunderbird ne possède pas de calendrier natif, il faut donc ajouter le plugin “lightning” qui va 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ée dans la doc et dans le panel de baikal, aussi faites très attention à 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 à garder 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’adresses ciblé (ou à garder 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 là)

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:Capture Label : Nom du carnet d’adresses affiché sur RoundCube (mettez ce que vous voulez)

Serveur : Adresse du carnet baikal.

Cette adresse aussi est très mal spécifiée dans la doc et dans le panel de baikal, aussi faites très attention à 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 à garder 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 carnets d’adresses : 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 par le chemin de votre RoundCube puis sauvegardez.

Notez que le cron que je propose synchronise une fois par jour à 4h00 du mat (peu de chance que vous soyez en train de modifier vos contacts à cette heure là, 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 va bien).

Notez que vous devez avoir le paquet php5-cli pour pouvoir exécuter le php en ligne de commande comme ça, si ça ne marche pas pensez donc à l’installer via la commande sudo aptget 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 a l’air franchement sympa

Je tiens à mettre valeur le commentaire de nono sur une alternative qui a 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

Article rédigé par Idleman

97 réflexions au sujet de « Installez votre synchronisateur de contacts chez vous avec Baikal »

  1. AkaiKen

    Hey, mais c’est une sacrée trouvaille, ça ! Merci !
    J’utilis(e|ais) Owncloud pour ça, mais il n’est pas très stable – et à dire vrai j’aime bien scinder les applications, alors avoir un synchroniseur dédié aux contacts et aux calendriers, c’est bien :3
    Sais-tu si on peut synchroniser aussi avec Roundcube ? Ça serait chouette.

    Répondre
      1. AkaiKen

        Yep, entre temps j’avais cherché, et trouvé celui-ci : http://www.crash-override.net/carddav.html J’étais aussi tombée sur celui que tu proposes, je ne connais pas les différences entre les deux, en revanche.

        J’ai installé Baïkal hier soir, c’est *rapide*. J’ai déplacé 90 contacts dans le carnet distant, le temps de Alt-tabber vers Firefox et de faire F5 sur Baïkal, la synchro était faite. Merci encore !

        Répondre
        1. Idleman Auteur de l’article

          J’ai l’impression que l’un (crash-override) permet de créer un serveur carddav sur rouncube, alors que l’autre (celui que je t’ai filé) permet de se connecter a un ou plusieurs serveurs externes (type baikal) mais je ne suis pas certain, à tester :)

          Répondre
  2. Matronix

    Super !
    Moi qui cherchais justement un programme de ce type. Owncloud est très lourd, et je ne cherchais qu’une synchro carddav/caldav.

    Baïkal fonctionne très bien et très facilement, je ne le connaissais pas !

    Merci :-)

    Répondre
    1. Idleman Auteur de l’article

      Avec plaisir :), remercie Itoine de me l’avoir proposé :)

      Répondre
  3. Jean

    “chmod –R 777 /chemin/vers/le/dossier/baikal”
    Ne vaut-il mieux pas faire un
    “chown –R www-data:www-data /chemin/vers/le/dossier/baikal” ?

    Répondre
    1. Idleman Auteur de l’article

      Si, mais dans le cas d’un hébergement seul un chmod sera faisable :)

      Répondre
  4. Charpy

    Génial ca! J’ai essayé OwnClound, réessayé plus tard avec des versions plus avancées.. toujours pas satisfait.

    Ca par contre, ca a l’air d’être une super trouvaille!

    Merci pour le tuto d’install et le complément pour Thunderbird…

    Sans abuser, tu pourrais nous détailler la syncro avec RoundCube? Je flippe dès que je touche à ce qui concerne les mails…

    Répondre
    1. Idleman Auteur de l’article

      C’est fait j’ai rajouté la partie sur roundcube :)

      Répondre
    1. Idleman Auteur de l’article

      Etrange, chez moi c’est pourtant fonctionnel avec l’adresses indiquée…les mystères de l’informatique…

      Répondre
    2. agarwaen

      Ouf, merci, je galérais sur le même problème, et je confirme que c’est bien l’adresse en …/principals/user/ (sans l’ID du carnet d’adresses) qui doit être utilisé !

      Répondre
  5. Paul

    Salut idleman !

    2 petites choses :
    Un pour la publication automatique twitter : https://ifttt.com (crée un compte, create (en haut à droite), if RSS then Twitter et ça marche niquel (je l’ai pour mon fil twitter et ton blog, ça m’évite de checker tous les jours si t’as posté un nouvel article :p)

    moi j’ai tendance à mettre 755 au lieu de 777 (traumatisme de prof d’iut), t’as une raison particulière de le faire ?

    ++++

    Répondre
    1. Idleman Auteur de l’article

      akaiken m’a conseillé wp-to-twitter qui à l’air de fonctionner (on verra au prochain post ^^) mais merci beaucoup pour le conseil, si ça foire j’essaierais ifttt bien que je préfère rester au maximum indépendant de services externes si je le peux :)

      Je met 777 parce que souvent le 755 ne fonctionne pas, surtout sur certains hébergeurs, j’ignore pourquoi, donc le 777 c’est ultra permissif mais le temps des tests ça évite de se faire connement bloquer pour une histoire de droits :), après chacun règle selon son bon plaisir ce n’est pas vraiment autour des permissions que mes tutos tournent, je me garderais bien de donner des conseils la dessus ^^

      Répondre
  6. ludo

    Bonjour,

    Est-il possible avec Baikal de partager son agenda (en lecture seule évidemment !) avec d’autres utilisateurs ? Je n’ai pas trouvé l’info.

    Merci

    Répondre
    1. Idleman Auteur de l’article

      Yop :)

      Ps que je sache non, mais c’est une excellente suggestion à faire sur le github de l’auteur :)

      Répondre
      1. ludo

        La demande a déjà été faite dans GitHub, elle est prévue (au moins partiellement, via un export ics ; ce n’est pas parfait !) pour la 0.30. Pour un vrai partage, c’est plus flou, rien de programmé réellement, même si c’est possible avec la librairie SabreDav.

        Bonne soirée

        Répondre
  7. BenGamin

    Dommage ça ne semble pas marcher sur un nas Synology sans bidouiller un peu. Pour l’instant je reste sur owncloud, c’est pas trop un probleme pour moi que la synchro se fasse en 30 sec plutot qu’en 10.

    Je laisserai un comm si je trouve le pourquoi du comment.

    Répondre
    1. Idleman Auteur de l’article

      Etrange, baikal utilise la même librairie et semble nécessiter moins de prérequis qu’owncloud, donc il n’y à pas de raison que ca ne fonctionne pas normalement :), tu as une erreur quelque part ?

      Répondre
      1. BenGamin

        J’avais un message d’erreur hier que je n’ai pas noté, la je n’ai juste plus rien. Page blanche avec 3 pauvres ligne de css.

        Répondre
        1. Idleman Auteur de l’article

          Allons bon !! :D, et dans ton /var/log/apache2/error.log ya quoi ?

          Répondre
          1. Guillaume

            Voici l’erreur que j’obtiens sur mon syno :
            exception ‘ErrorException’ with message ‘touch() [function.touch]: Utime failed: Operation not permitted’ in /volume1/web/baikal/Core/Frameworks/BaikalAdmin/Core/Auth.php:62
            Stack trace:
            #0 [internal function]: Baikal\Framework::exception_error_handler(2, ‘touch() [

          2. Idleman Auteur de l’article

            C’est un problemme de permission d’ecriture, fait un chmod 777 -R sur ton dossier ou mieux un chown -R www-data:www-data

  8. BenGamin

    Bon voila ce que j’ai après avoir avoir eu la création du mots de passe :

    exception ‘ErrorException’ with message ‘touch() [function.touch]: Utime failed: Operation not permitted’ in /volume1/web/baikal/Core/Frameworks/BaikalAdmin/Core/Auth.php:62
    Stack trace:
    #0 [internal function]: Baikal\Framework::exception_error_handler(2, ‘touch() [

    Je ne suis pas très bon mais ce que je comprend c’est que pépère n’a pas les permissions qui lui faut pourtant le répertoire est en 777.

    Répondre
    1. Idleman Auteur de l’article

      As tu bien fait le chmod en récursif (sous dossiers et fichiers inclus ?) si oui essaye plutot de mettre apache en propriétaire du dossier :
      Essaye un chown -R www-data:www-data /chemin/vers/roundcube

      Répondre
      1. BenGamin

        Bon j’avais peut être pas fait du récursif la première fois. Mais je vais pas beaucoup plus loin :
        Fatal error: Class ‘ComposerAutoloaderInit’ not found in /volume1/web/baikal/Core/Frameworks/SabreDAV/vendor/autoload.php on line 7

        J’ai été regardé sur github, le fichier php qui a un probleme pour voir si le mien est foiré… bah il existe pas…

        Répondre
        1. Idleman Auteur de l’article

          Décidément tu les enchaine XD, je te conseille de regarder ta version de PHP voir si elle correspond au minimum requis par baikal, puis d’aller dans les issues du github histoire de declarer l’incident et de voir si l’auteur voit de qui il s’agit :)

          Répondre
          1. BenGamin

            Effectivement :)

            Par un php info j’ai une v5.3.21 donc ça doit le faire.

            Je vais surement attendre une ou 2 versions de toute façon. ça me gene un peu de pas pouvoir les consulter par une interface web.

            En tout cas merci pour le tuto. Perso j’utilise aussi CalDav-sync-beta pour mon tel (meme auteur que CardDav-sync-beta) avec l’appli calendar de base. Payant mais fait son taf. C’est réellement un bonheur que tout soit synchronisé sans passer par un service tiers.

          2. Vladrow

            J’ai réussi à l’installer sur un NAS synology en modifiant la ligne 62 du fichier « baikal/Core/Frameworks/BaikalAdmin/Core/Auth.php »
            A la place de @touch($sEnableFile);
            Tu mets le point virgule ;
            Mais il vaut peut être mieux en parler avec l’auteur…
            Autres remarques, l’adresse pour un périphérique iOS est serveur/baikal/card.php/principals/ pour le carnet d’adresse. Et http://seerveur/baikal/admin/ pour l’interface d’administration. Ca à l’air de très bien marcher, merci de nous avoir indiqué ce synchroniseur.

  9. Damien

    Toujours aussi excellent tes articles !!!!

    J’ai réussi à faire mon install seul soucie je n’arrive pas à synchroniser mon iphone et mon android …..

    pas de connexion possible avec le compte admin ni le compte que j »ai créé pour mon utilisation personnel.

    j’ai bien respecté toute la procédure ….mais rien à faire j’ai aussi tenu compte du tuto sur l’iphone mais rien à faire…si quelqu’un à une idée je suis preneur…

    Merci

    Edit : Je viens de trouver la première réponse à mon problème …mauvais nom utilisateur ….:-) , je reviens vers vous mon iphone dans la configuration me dit que tout est ok mais je n’ai rien sur le dashboard de Baïkal ….nombre de contact 0

    Répondre
  10. Tetsumaki

    Je testerais ça sur un dédié à l’occase.
    Par curiosité ton site est hébergé sur quoi idleman ? dedibox ? kimsufi ?

    Répondre
    1. Idleman Auteur de l’article

      hébergement simple ovh ^^, fut un temps il était sur mon dédié maison mais avec le temps et les utilisateurs venant j’ai du le mettre dans un endroit plus sûr pour éviter les indisponibilités :)

      Répondre
      1. Louis

        Bonjour Idleman,
        J’ai tenté l’install sur un mutualisé chez OVH, mais lorsque j’accède à l’interface, après avoir dézippé le packkage et créé le ENABLE_INSTALL, au lieu de l’interface, j’ai le « Index of / » qui s’affiche… Y a-t-il une option particulière à prendre chez OVH ?

        Répondre
  11. Julien

    Yosh !

    Merci pour l’article. J’vais cerhce il y a un an, ça n’existait pas, à part une base pas folichonne de SabreDAV.
    On commence à reprendre simplement le contrôle de nos data.

    Une remarque : sur Mac OS X 10.8 et Calendar (ex-iCal) l’adresse pour le CalDAV ne marche pas avec ton schéma d’URL. Il faut utiliser « principals » au lieu de « calendars ».
    Soit en adresse serveur : toto.com
    Server path : /baikal/cal.php/principals/toto

    Baïkal 0.2.4

    Répondre
  12. Damien

    Bonjour Julien,

    merci pour l’info j’ai la validation sur mon iphone mais après dans l’admin Baikal je suis toujours à zéro contact et pareil pour le calendrier.

    Quelqu’un aurait une idée ?

    Répondre
  13. Tom

    L’outil à l’air top, mais quelles sont les possibilités d’export du carnet d’adresse ? Je préfère prendre des précautions pour ce genre de données :)

    Répondre
    1. Idleman Auteur de l’article

      baikal agit comme un webservice, donc tous les outils qui peuvent se connecter à baikal peuvent te servir à exporter tes contacts (thunderbird, rondcube etc…) en plusieurs formats, tu peux aussi exporter directement via la bdd de baikal avec un programme type phpmyadmin mais c’est moins propre :)

      Répondre
  14. galendel

    Salut,

    Merci pour cette trouvaille,
    Es que quelqu’un sais comment import des contacts depuis un fichier .csv
    (gmail export en csv)
    (à la limite sa doit se scripté rapidement en insérant direct dans la bdd).
    Et es que gmail peu se synchro avec baikal? (mon serveur mail est détecté en spam par les autres serveur et j’ai toujours pas trouvé).

    Répondre
  15. Ohax

    Salut Idleman et merci pour cette trouvaille,

    J’ai cependant une question :
    Comment faire un agenda partagé entre plusieurs utilisateurs ?

    L’accès semble « exclusif », alors que je souhaiterais surtout créer un agenda et un carnet d’adresses commun avec gestion des droits d’écriture selon les utilisateurs…

    Répondre
    1. Idleman Auteur de l’article

      Je n’en sais rien du tout ^^ perso j’aurais essayé en créant un seul compte et en relient tous mes utilisateurs à celui ci mais rien ne prouve que ça fonctionne ^^

      Répondre
      1. Ohax

        Et surtout ça ne règle pas les problèmes de permissions.

        Je suis pas chaud pour gérer ça côté client… :-)

        Répondre
    2. nono

      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…

      Répondre
      1. Idleman Auteur de l’article

        Effectivement ça m’a l’air d’être carrément de la baloche (et j’adore le logo/nom :D) merci pour la découverte !!

        Répondre
  16. Petar

    Belle trouvaille !!

    Je n’ai qu’un seul souci les noms dans les SMS par exemples sont remplacé par leur numéro de téléphone comme si il (mon iphone) ne savait plus faire correspondre un numéro à un nom

    Répondre
    1. Idleman Auteur de l’article

      Étrange, je n’ai pas ce problème (mais je suis un un android), ce semble venir d’une config de ton appli iphone de contact…

      Répondre
  17. BenGamin

    Bon j’ai enfin réussi a l’installer sur mon syno grâce à la manip de Vladrow, un grand merci à toi.

    c’est plus rapide effectivement, la copie de mes contacts a pris 30sec (environ 200). Pour ceux qui avais leur carnets sur thunderbird, un export de carnet en copie de sauvegarde puis un glisser-déposer fonctionne nickel.

    Le dernier truc que je cherche c’est pour roundcube. je n’arrive pas a créer les tables. Le syno étant sous postgresql pour roundcube, la requête sql prévu pour ne fonctionne pas. un message d’erreur du type t’as mis un NOT après un IF et je suis pas content.

    Répondre
    1. Idleman Auteur de l’article

      Normalement il y a un .sql expres pour les bases postgreSQL dans le répertoire du plugin :)

      Répondre
      1. BenGamin

        Oui je sais mais elle ne fonctionnais pas non plus. J’ai enlevé les IF NOT EXIST sur les requêtes de création ça à fonctionné.

        Donc c’est pleinement fonctionnel ! Un grand merci !

        Répondre
        1. Idleman Auteur de l’article

          Ya pas de quoi (même si j’ai servis a rien sur ce coup la ^^)

          Répondre
    1. Idleman Auteur de l’article

      effectivement, mauvais copier coller merci ^^

      Répondre
  18. Damien HERNANDEZ

    Salut, en essayant de réinstaller Baikal j’ai les erreurs suivantes qui apparraissent sur la page de lancement. Sais-tu ce qu’il faut que je fasse pour remédier à sa ?

    Warning: mb_substr_count() [function.mb-substr-count]: Unknown encoding « 3591 » in /var/www/baikal-flat/Core/Frameworks/Flake/Util/Twig/lib/Twig/Compiler.php on line 195

    Warning: mb_substr_count() [function.mb-substr-count]: Unknown encoding « 3795 » in /var/www/baikal-flat/Core/Frameworks/Flake/Util/Twig/lib/Twig/Compiler.php on line 195

    Répondre
    1. Idleman Auteur de l’article

      Je n’en sais rien, je ne suis pas le développeur de cette application :), je te conseille de poster ton bug sur son github de manière à ce qu’il puisse t’aiguiller et fixer le bug si bug il y a :)

      Répondre
  19. CoreDumped

    Salut, chez moi, l’install se passe bien mais le login/mot de passe ne fonctionne ni pour SOGo Connector, ni pour CardDAV-Sync free beta.

    Répondre
    1. Idleman Auteur de l’article

      tu as bien mis les login et mot de passe de l’utilisateur et pas de l’admin?

      Répondre
      1. CoreDumped

        En fait ça fonctionne sur mon 127.0.0.1 mais pas sur ovh.

        Répondre
        1. Idleman Auteur de l’article

          tu dois avoir un problème quelque par dans ton url alors :)

          Répondre
  20. CoOlibry

    Salut,
    je viens d’installer Baikal sur mon mutualisé O2switch,
    tous va bien jusqu’à la synchro des contact: rien ne synchronise
    et pareil pour l’agenda ou je peut me connecter mais impossible d’ajouter un RDV

    j’ai aussi installer agendav en local (ça mérite un article pour l’installer vu qu’il n’y a pas d’autre assistant que la doc)
    avec lui je peut me connecter, créer un agenda, mais pas rajouter de RDV :
    (Le serveur a refusé votre requête (permission refusée))

    j’ai tenté de modifier les droit sur le fichier sqlite et testé en mysql, j’en reviens toujours au même point :/

    une idée ? :)

    Répondre
    1. Idleman Auteur de l’article

      La comme ça je ne vois pas… tu as bien mis les login et mot de passe de l’utilisateur et pas de l’admin?

      Répondre
    2. ctlui

      Bonsoir,

      Même problème que CoOlibry et également hébergé chez O2switch. J’ai testé avec plusieurs clients (eM Client et thunderbird).
      Sur le log d’erreur d’eM Client j’obtiens:
      S: PUT http://mysite.com/bsync/card.php/addressbooks/username/default/4c76c6a0-d154-426c-88cb-9eff711e7184.vcf
      Forbidden Forbidden

      Je crois que le problème vient de chez eux mais pas de solutions depuis mes premiers contacts vendredi dernier.
      J’ai testé owncloud et egroupware, et toujours la même erreur.
      Si CoOlibry a trouvé une solution,n porrait-il la partager.
      Merci.

      Répondre
      1. CoOlibry

        je me suis repenché sur la question et j’ai trouvé la solution :),
        pour faire fonctionner Baikal chez O2switch il faut rajouter ceci dans le .htaccess du répertoire de Baikal :

        order deny,allow
        allow from all

        enlevé les espace après le < (sinon les limit sont supprimé lors de la validation du commentaire)

        le htaccess à la racine du site contient "deny from all" au lieu de "allow from all",
        ce qui si je comprend bien refuse tout ajout ou suppression de donnée depuis un autre host que le serveur O2switch
        la solution autorise ceci uniquement pour le répertoire ou ce trouve Baikal

        Répondre
  21. Fidoboulettes

    Intéressant ce post…. j’avais vu ce baikal il y a quelque temps et ça m’avais intéressé, car j’utilise owncloud sur mon rpi mais uniquement pour les contacts et agenda de la famille (donc solution trop lourde) mais vu que j’y pipe que dalle à l’anglais, l’installation me semblait ardue… avec ton post, je pense que je vais pouvoir m’en sortir….
    Il est vrai par contre que c’est bien dommage qu’il n’y ai pas d’affichage web… ce qui est balot avec l’utilisation d’apache….
    Dans le même esprit, il y a RADicale que j’avais réussi à installer (sauf les contacts qui merdouillaient)mais pour le même pb d’affichage web j’avais laissé tomber.

    Répondre
    1. Tim

      Did you happen to find a way to import all your calendar events (mine are currently in the Synology CalDAV server) and contacts into Baikal Server?

      Répondre
      1. Idleman Auteur de l’article

        I dont known any way for import from synology to baikal sorry…, maybe you can try to export manually your .cal from your but i dont know synology GUI so i cant help you :)

        Répondre
  22. njm

    Bonjour,
    D’abord merci pour ce super tuto ! Tout fonctionne très bien avec mon iphone.
    Cependant, j’aimerai aussi synchroniser un autre téléphone (alcatel one touch, qui n’est ni android, ni apple) avec baikal, mais j’ai besoin de renseigner:
    – l’adresse du serveur: j’ai mis « http://192.168.0.3/baikal-flat/card.php/addressbooks/*mon nom d’utilisateur*/default/ » puis mon login et mot de passe (j’ai mis ceux de l’addressbook baikal)
    – l’adresse de la base de donnée, où, là, je ne sais pas du tout quoi mettre. D’autant plus que je ne peux taper que 63 caractères. Il faut également renseigner un login et un mot de passe.

    J’ai essayé plusieurs combinaisons sans succès. Me suis-je trompé quelque part ? Merci d’avance pour ton aide.

    Répondre
    1. Idleman Auteur de l’article

      Salut :), je ne connais pas alcatel et encore moins son application désolé, vérifie bien que l’application que tu utilise est faite pour se connecter avec le protocole caldav et cardav :)

      Répondre
  23. Milouze

    Hello,

    Petit retour, sur problème synchro CardDav Thunderbird et Sogo, il ne faut surtout pas utiliser d’email en tant qu’identifiant utilisateur sinon cela ne marche pas du tout (le CalDav marche), je viens de passer plusieurs heures…

    Bye

    PS : Big merci pour le chouette et bien fait tuto !!

    Répondre
  24. jean marie

    bonjour

    merci pour ces bons conseils, mais de mon coté, même en suivant à la lettre le tuto je n’arrive pas à installer Baikal.
    La page est introuvable….

    Répondre
    1. jean marie

      installation sur synology Ds112 / dsm 4.4

      Répondre
      1. Jean-Marie

        installation réussi sur synology, pas de problème pour accéder à l’interface.
        Par contre la synchronisation ne fonctionne pas…
        mac 10.6, iphone et mac 10.8
        « calendrier n’a pu détecter les réglages de compte »
        est ce que quelqu’un est dans le même cas de figure?

        Répondre
  25. EricW

    Bravo pour ce tuto. Je viens justement d’installer baikal en self-hosting.
    On peut ajouter que si on veut pouvoir accéder à ses calendriers n’importe ou, on peut installer aussi un client web, genre AGENDaV. En revanche je cherche toujours un moyen simple d’importer massivement des calendriers et des contacts, pru pouvoir dégager mes comptes google definitivement (ou du moins les données).

    Répondre
  26. FMT

    Bonjour,
    Pour ma part, je tombe sur l’erreur suivante à la première fenêtre de validation :
    Validation error
    Admin password is required.

    Warning: stripslashes() expects parameter 1 to be string, array given in /homez.705/familymi/www/baikal-flat/Core/Frameworks/Flake/Framework.php on line 117

    La ligne en question est :
    $_POST = array_map(‘stripslashes’, $_POST);

    Par rapport à la fenêtre indiqué dans le tutoriel, je vois un champ en plus nommé :
    > WebDAV authentification type
    Avec les choix possibles : Digest, ou Basic

    Mais j’ai testé les deux et j’ai toujours le même message avec n’importe quel mot de passe (simple à complexe)

    Si vous avez une idée du souci ?

    Pour info : Je suis hébergé chez OVH

    Répondre
    1. Idleman Auteur de l’article

      Ce doit être un bug inhérent à la dernière version de baikal, visiblement le script envoie un tableau de donnée par POST, or la fonction stripslahes ne fonctionne que sur une chaine de caractère, il faudrait le signaler a l’auteur du script c’est un bug très simple à résoudre :).

      En attendant je te conseille de prendr eune version ultérieure plus stable, la mienne (celle avec laquelle je présente ce tuto et que j’utilise quotidiennement) est la 0.2.4

      Répondre
  27. Yamanelow

    Testé l’install il y a quelques jours c’est simple à installer. En suivant tes indications :
    – pour thunderbid : aucun problème pour contacts/calendrier en suivant ta méthode
    – pour roundcube : l’intégration fonctionne bien et pas de pb de synchro
    – pour android : l’appli cardDav fait bien son boulot par contre si quelqu’un à une appli calendrier à proposer je suis prenneur.

    Répondre
      1. Idleman Auteur de l’article

        Effectivement ça a l’air cool, merci pour l’info :)

        Répondre
      2. AkaiKen

        Bonjour Charpy,
        je ne sais pas de quand date ton message (idleman, modifie ton thème pour afficher les dates :D !), mais je viens d’installer DAVdroid, qui m’a l’air prometteur, et je me prends une erreur 401 direct quand je tente de créer une connexion (mes login et mot de passe sont bons, j’accède à Baïkal sur Thunderbird sans aucun souci), avec http:///cal.php, comme j’ai trouvé sur un tuto je ne sais plus où. Tu n’as pas eu ce genre de problème ?
        Merci :3

        Répondre
        1. Charpy

          Salut AkaiKen,
          Pas de soucis pour moi, DAVdroid est simple à mettre en place…

          Essaye de soit désactiver l’ « Authentification préventive » lors de la création du compte, soit passer le « WebDAV authentication type » à Basic dans le panneau de config « Settings »de l’interface web de Baikal.

          Bonne chance :)

          Répondre
  28. alex

    Hello,
    Merco pour ce superbe article. J’ai donc installé Baikal chez Gandi sur simplehosting.
    Tout fonctionne a merveille sur mon pc avec Thunderbird et Lightening.
    Aussi sur une tablette nexus 7 et un mobile Nexus 5 .
    Mon seul problème est les invitations, lorsque je mets les emails des participants à une invitation cela fonctionne bien avec Thunderbird mais pas depuis Android: auncun email envoyé.
    Email client en imap, j’ai essayé avec le client mail android et K9 mail. Coté Agenda, j’ai testé avec l’agenda de base et Acalendar+.
    Coté connector, j’utilise CalDAV-Sync, CardDAV-Sync et Tâches. Aucun problème de synchro, juste impossible d’envoyer une invitation depuis Android…
    Une idée de la raison ?
    Merci

    Répondre
    1. Yann

      Saut tu utilises quoi exactement pour les taches?
      « Taches » payante à 0.99€ sur googleplay?
      Je n’ai pas réussi à faire marcher ça de manière satisfaisante.
      Merci :)

      Répondre
  29. pascale

    bonjour

    je viens d’installer baikal avec thunderbird +lightning j’ai une fenêtre d’authentification intempestive puis mon agenda devient grisé il faut « activer » et à nouveau le demande d’authentification, je suis hébergée chez ovh j’ai supprimé et renvoyé baikal flat sur le serveur puis supprimé et reinstallé complètement thunderbird en supprimant le profil je suis perdue !! lorsque je synchronise les agendas c’est très long et quelquefois il me trouve 9 agendas alors que j’en teste seulement 2 ! Xo
    je souhaite un agenda partagé entre une dizaine de collaborateurs avec des droits de modifs pour tous et que ces agendas puissent être installés sur chaque pc et que la secrétaire puisse accéder à tous pour noter les rdv
    merci de votre aide

    Répondre
  30. Chaopale Lamecarlate

    Yo !

    Je viens de découvrir quelque chose, pour les gens qui voudraient avoir dans leur Thunderbird+Lightning plusieurs calendriers du même serveur Baïkal mais de plusieurs utilisateurs (genre le perso et le partagé) . Par défaut, Thunderbird demande login et mot de passe pour le premier, mais pas les suivants, puisque c’est sur le même domaine. Donc forcément, les suivants, s’ils sont à un autre utilisateur, se tapent un vilain 403 (c’est une image), et ne demandent pas le mot de passe.

    Pour réparer ça, il suffit d’aller dans les Préférences, puis Avancé, puis le bouton Éditeur de configuration (c’est le about:config de Thunderbird), et de chercher « calendar.network.multirealm », de changer sa valeur par « true » (un double clic suffit). Puis il faut supprimer les mots de passe enregistrés pour les calendriers de Baïkal, et redémarrer Thunderbird. Tous les mots de passe seront alors demandés.

    Tada !

    (source : https://github.com/jeromeschneider/Baikal/issues/215)

    Chaopale (anciennement AkaiKen)

    Répondre
    1. Charpy

      Excellent, ca. Merci, Chaopale/ AkaiKen ;)

      Répondre
    1. Idleman Auteur de l’article

      Effectivement il a l’air pas mal aussi :)

      Répondre
    2. Charpy

      Prem’s! Voir au dessus :siffle:

      Répondre
  31. Oo

    Salut Idleman,

    Je viens de découvrir Baïkal et j’ai bien réussi à faire fonctionner les calendriers et à travers le combo Thunderbird/Lightning.

    Par contre, je n’arrive pas à faire fonctionner la synchronisation des contacts. En fait, Thunderbird ne demande pas l’ID et le mot de passe comme indiqué dans le tutoriel.

    Savez-vous d’où cela peut venir ?

    J’aimerais tacler ce souci avant de synchroniser les contacts sur mon Nexus.

    Merci à vous,

    ++

    Répondre
  32. Yann

    Salut,

    Merci pour ce genre de super trouvailles et surtout pour le tuto qui l’accompagne,
    par contre y’a t-il un moyen de chiffrer les connexions? Histoire d’être un peu plus NSA protected?

    Merci,
    Yann

    Répondre
    1. Yann

      Salut,

      Je m’auto-réponds :
      Oui c’est possible (je suppose qu’il faut avoir paramétré/installé des choses en amont puis ne pas décocher la case SSL) on trouve des infos sur la toile pas forcément pour une config raspberry mais ça doit être transposable, je vais déjà essayer sans.
      Si quelqu’un a déjà réussi à le faire qu’il hésite pas à nous donner ses pistes.

      Je cherche aussi un moyen de redonder cela, idéalement sur une deuxième connexion distante en cas de coupure de courant/ligne/incendie d’un coté, qu’un deuxième raspberry déjà synchronisé prenne le relais.
      Une piste?

      @+
      Yann

      Répondre
  33. Hubert Lelong

    Excellent article qui m’a donné du coup envie d’installer ça.
    FTP, copie du flat, OK, je vais le chercher par Firefox, et …
    « Warning: Unexpected character in input: ‘\’ (ASCII=92) state=1 in /home/galinou/www/baikal-flat/index.php on line 49
    Parse error: syntax error, unexpected T_STRING in /home/galinou/www/baikal-flat/index.php on line 49 »

    je lance Jase histoire de voir, les lignes 48 et 49, c’est :
    # Bootstraping Flake
    \Flake\Framework::bootstrap();

    bizarre, non ?
    quoitepense ?
    D’avance merci.

    Répondre
  34. Funkin-Stoopid

    Bonjour
    Désolé j’arrive un peu après la bataille. j’ai deux petites questions:
    1 – Je souhaite installer baikal en dehors du DocumentRoot dans Apache. Il se situe dans /srv/http/main/ et je place baikal (et d’autres applis web) dans /srv/http/ de sorte que personnes ne puisse se promener dans les répertoires des applications.
    Je passe par un fichier de conf, /etc/http/conf/extra/baikal.conf . Le problème est que dans cette configuration, la synchronisation ne se fait plus. Connais tu les raisons et comment puis-je y remédier?
    2 – Je cherche la même chose (synchronisation entre plusieurs plateforme) pour des notes. Connais tu un équivalent dav pour les notes ?
    Merci

    Répondre
  35. Christian

    Bonjour à tous,

    Je viens d’upgrader baikal-flat sur un serveur d’hébergement en FTP, de la version 0.2.6 à la version 0.2.7. Le processus s’est bien déroulé (le script d’upgrade m’indique bien que je suis passer d’une version à l’autre), mais lorsque je clique sur le boton m’invitant à poursuivre en allant sur l’interface d’admin, j’obtiens le message d’erreur suivant. Comme je suis plutôt noob, je viens vous demander votre aide :

    exception ‘Exception’ with message ‘SQL ERROR in: ‘SELECT count(*) as nbitems
    FROM users
    WHERE
    1=1’; Message: Array
    (
    [0] => HY000
    [1] => 11
    [2] => database disk image is malformed
    )
    ‘ in /home/wellspri/www/baikal-flat/Core/Frameworks/Flake/Core/Database.php:181
    Stack trace:
    #0 /home/wellspri/www/baikal-flat/Core/Frameworks/Flake/Core/Requester/Sql.php(201): Flake\Core\Database->query(‘SELECT count(*)…’)
    #1 /home/wellspri/www/baikal-flat/Core/Frameworks/BaikalAdmin/Controller/Dashboard.php(44): Flake\Core\Requester\Sql->count()
    #2 /home/wellspri/www/baikal-flat/Core/Frameworks/Flake/Core/Render/Container.php(70): BaikalAdmin\Controller\Dashboard->render()
    #3 /home/wellspri/www/baikal-flat/Core/Frameworks/Flake/Controller/Page.php(84): Flake\Core\Render\Container->renderBlocks()
    #4 /home/wellspri/www/baikal-flat/admin/index.php(81): Flake\Controller\Page->render()
    #5 {main}

    D’avance merci pour vos pistes !

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Xo ^_^ :siffle: :p :-( :evil: oO :) T_T <3 :D more »