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 .
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.
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.
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 :
- 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 ).
Voyons un peu comment installer tout ça .
Installation
- Téléchargez le flat-package du script sur le site officiel
- 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.
- 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
- 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ù )
- Cliquez sur suivant, vous arrivez à la configuration de la base de données
- 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
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.
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
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 pour ajouter un nouvel utilisateur :
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 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 , 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”
Puis taper l’adresse de votre carnet d’adresses, dans mon cas j’ai gardé celui par défaut :
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é :
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
Sélectionnez “CalDav” et rentrez l’adresse de votre calendrier 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/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
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 🙂
- 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é
- Renommez le fichier plugins/carddav/config.inc.php.dist en plugins/carddav/config.inc.php
- Dans la même base MySQL que RoundCube, exécutez le sql contenu dans le fichier plugins/carddav/SQL/mysql.sql
- 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: 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 !!
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 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 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
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.
Si roundcube possède en natif ou via un plugin la techno cardav ça fonctionnera, visiblement le plugin existe 🙂 :
https://github.com/graviox/Roundcube-CardDAV
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 !
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 🙂
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 🙂
Avec plaisir :), remercie Itoine de me l’avoir proposé 🙂
“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” ?
Si, mais dans le cas d’un hébergement seul un chmod sera faisable 🙂
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…
C’est fait j’ai rajouté la partie sur roundcube 🙂
Afin de synchroniser Android via CardDAV-Sync free beta, j’ai dû utiliser l’adresse suivante:
http://nom_du_site/repertoire_de_baikal/card.php/principals/nom_user/
la solution que tu propose ne fonctionnait pas (android 4.0.4)
Etrange, chez moi c’est pourtant fonctionnel avec l’adresses indiquée…les mystères de l’informatique…
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é !
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 ?
++++
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 ^^
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
Yop 🙂
Ps que je sache non, mais c’est une excellente suggestion à faire sur le github de l’auteur 🙂
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
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.
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 ?
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.
Allons bon !! :D, et dans ton /var/log/apache2/error.log ya quoi ?
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() [
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
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.
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
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…
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 🙂
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.
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.
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
Je testerais ça sur un dédié à l’occase.
Par curiosité ton site est hébergé sur quoi idleman ? dedibox ? kimsufi ?
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 🙂
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 ?
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
Merci pour la précision
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 ?
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 🙂
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 🙂
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é).
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…
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 ^^
Et surtout ça ne règle pas les problèmes de permissions.
Je suis pas chaud pour gérer ça côté client… 🙂
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…
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 !!
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
É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…
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.
Normalement il y a un .sql expres pour les bases postgreSQL dans le répertoire du plugin 🙂
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 !
Ya pas de quoi (même si j’ai servis a rien sur ce coup la ^^)
Pour info il y a une coquille pour le lien serveur sur la config roundcube.
Ce n’est pas http://127.0.0.1/baikal-flat/cal.php/calendars/idleman/default/ mais http://127.0.0.1/baikal-flat/card.php/addressbooks/idleman/default/ .
effectivement, mauvais copier coller merci ^^
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
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 🙂
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.
tu as bien mis les login et mot de passe de l’utilisateur et pas de l’admin?
En fait ça fonctionne sur mon 127.0.0.1 mais pas sur ovh.
tu dois avoir un problème quelque par dans ton url alors 🙂
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 ? 🙂
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?
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.
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
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.
Installation sur synology ici:
http://forum.synology.com/enu/viewtopic.php?f=77&t=69408
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?
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 🙂
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.
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 🙂
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 !!
Merci pour le tuyau 🙂
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….
installation sur synology Ds112 / dsm 4.4
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?
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).
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
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
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.
Je teste actuellement DAVdroid (Open source, via le dépot F-droid [gratuit] ou via Google Play [2,59E] – http://davdroid.bitfire.at/what-is-davdroid/ ).
KISS, fait bien le boulot, syncro Contact et Calendrier, et voila 😉
Effectivement ça a l’air cool, merci pour l’info 🙂
Bonjour Charpy,
je ne sais pas de quand date ton message (idleman, modifie ton thème pour afficher les dates 😀 !), 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
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 🙂
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
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 🙂
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
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)
Excellent, ca. Merci, Chaopale/ AkaiKen 😉
Merci Idleman pour cet article ! Ça m’a beaucoup aidé. 🙂
Juste une remarque, tu pourrais aussi proposer pour Android un autre davsync : http://davdroid.bitfire.at/what-is-davdroid qui lui est sous licence libre et disponible chez F-Droid. 😀
Effectivement il a l’air pas mal aussi 🙂
Prem’s! Voir au dessus :siffle:
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,
++
Sur ton article, il manque juste la synchro CalDav sur Android avec Caldav Sync Free Beta: https://play.google.com/store/apps/details?id=org.gege.caldavsyncadapter
Merci pour ton tuto dans tout les cas, ça m’a éviter de faire chauffer mon cerveau =]
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
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
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.
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
Hello,
Merci pour ce tuto, j’ai pu installer Baikal sur un VPS (Windows Server 2012) il y a quelques mois, et ça marche impec.
Néanmoins j’essaye aujourd’hui de l’installer sur mon PC perso, et là ça coince : impossible de faire la synchro depuis Android. Lorsque je tente de créer un compte, ça me renvoie l’erreur suivante :
“Invalid Server Answer, check URL”.
Autant dire que j’ai checké l’url plusieurs fois, les identifiants également, et que tout est parfaitement identique à ce qui est fait sur le VPS… J’ai donc du mal à trouver d’où peut venir l’erreur.
Une idée ?
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 !
Je viens d’appliquer le tuto et ça fonctionne bien pour la partie serveur et connexion. Petit souci: pas de synchro des listes de thunderbird? ou j’ai raté quelque chose?
Bonjour et merci pour le tuto qui m’a permis d’installer Baikal qui aujourd’hui est en v. 0.46
Petite question : comment fait-on pour accéder à ses calendrier et carnets d’adresses ? La méthode donnée ici ne semble pas fonctionner…
Merci par avance
Bonjour,
Après quelques heures de recherche, j’ai réussi à faire fonctionner la synchronisation !
Il y a vraisemblablement eu une mise à jour de version de baïkal (0.4.6) qui nécessite une légère modification de l’URL à renseigner dans Thunderbird. Il faut ajouter “/HTML/”, comme ceci :
http://127.0.0.1/baikal-flat/HTML/card.php/addressbooks/idleman/default/
Et ça fonctionne…