Bye-Bye Google

Dans cet article nous allons voir comment se passer d’un certain nombre de services offerts par Google en regardant les alternatives possibles, en particulier en auto-hébergement sur un Raspberry Pi.

Je ne traiterai pas ici des raisons qui peuvent pousser les uns et les autres à s’écarter des services de Google. Il peut s’agir de raisons comme la protection de la vie privée numérique, le fait de ne pas vouloir participer à l’extension des pouvoirs d’un monopole monstrueux, des raisons éthiques, etc.

De quels services vais-je parler :

  1. La messagerie électronique (Gmail)
  2. Le moteur de recherche
  3. La gestion de calendrier, synchronisé sur différents appareils
  4. La gestion des contacts, synchronisés sur différents appareils

Messagerie électronique


Ce ne sont pas les alternatives à Gmail qui manquent, mais tant qu’à faire, autant changer pour une solution qui soit à la fois ergonomique, respectueuse de la vie privée, mais surtout qui propose le chiffrement des données de bout en bout avec des standards de sécurité solides. Après avoir testé plusieurs alternatives, mon choix s’est arrêté sur ProtonMail.

Dans les grandes lignes, il s’agit d’un service de messagerie entièrement hébergé en Suisse, créé par des scientifiques et ingénieurs du CERN, à Genève, et qui présente comme caractéristique principale d’offrir du chiffrement de bout en bout des messages. Même si la maturité du service, tant ergonomique que sur le plan de la sécurité, n’est pas encore là (voir mon article détaillé sur le modèle de sécurité de ProtonMail), ce service reste mon favori et a définitivement remplacé ma messagerie Gmail.

Le service est gratuit jusqu’à une certaine taille de boite de messagerie, des applications IOS et Android sont en cours de développement, et à la date d’écriture de cet article, l’accès gratuit se fait encore par inscription sur liste d’attente (mais ça n’est pas très long).

Moteur de recherche


Le moteur de recherche est probablement le service de Google le plus utilisé et le plus connu. D’après mes divers essais, il reste également le plus performant. Mais c’est au prix d’un profiling effectué sur ses utilisateurs, par agrégation des informations obtenues via les différents services proposés, ce qui peut constituer un véritable problème pour de plus en plus de personnes prenant conscience des implications pour la vie privée.

Les conséquences d’une telle capacité de profiling et de connaissance des utilisateurs,  leur mode de vie,  leurs préférences politiques, le sport qu’ils pratiquent, leurs lieux de vacances, leur jobs successifs, leurs maladies, etc. sont probablement encore largement sous évaluées. Quand Google et toute sa puissance financière et médiatique commencera à proposer des services plus ancrés dans la vie réelle (assurances santé ou automobile pour ne prendre qu’un exemple), il sera trop tard pour se rendre compte que Google en sait beaucoup trop, bien plus que ce qu’un gouvernement ne pourrait savoir, sur une masse gigantesque de personnes.

Échapper à tout ça, fuir ce système, constitue une motivation bien suffisante pour accepter un service légèrement moins performant. Ainsi, le moteur de recherche Qwant a remplacé Google dans ma vie privée (j’utilise toujours Google au travail, pour des recherches donc purement professionnelles, en n’étant plus logué à aucun service de Google). Ce moteur de recherche estampillé « européen » (initialement franco-allemand si j’ai bien compris) promet et promeut une approche différente des données utilisateur: pas de collecte, pas de traçage des utilisateurs, pas de profiling, respect de la vie privée. Leur business model est différent de celui de Google et il est expliqué sur leur site.

Même si cette promesse n’était pas entièrement tenue, il resterait largement préférable de ne pas mettre tout ses œufs dans le même panier en segmentant les services que l’on utilise, et donc l’utilisation de Qwant conserverait ma préférence sur celle du géant américain.

Gestion de calendrier et des contacts


Pour la gestion de calendrier, nous allons retrouver un des sujets favoris et récurrent de ce blog : l’utilisation d’un Raspberry Pi pour héberger un serveur d’agenda et de contacts, reposant respectivement sur les protocoles CalDAV et CardDAV. Il faudra bien sûr que ce RPi soit accessible sur internet, et expose un serveur web (par exemple: nginx).

Mon choix s’est porté sur un serveur de calendrier, également serveur de contacts, gratuit, libre et open source, reposant sur une technologie que j’utilise déjà pour plusieurs autres applications sur mon Raspberry Pi, à savoir PHP.

La solution en question se nomme « Baïkal Server » .

Nous allons voir comment installer et configurer ce serveur sur un Raspberry Pi (RPi), utilisant Nginx comme serveur web.

Nous verrons ensuite comment configurer un téléphone sous Androïd pour synchroniser le calendrier et le carnet de contacts sur ce serveur de calendrier.

0. PREREQUIS

Je pars du principe que le serveur web Nginx est installé et configuré sur votre RPi ainsi que PHP, le tout parfaitement fonctionnel. L’installation de Baïkal est tout à fait possible sur un autre serveur web (ex: Apache). Si ces prérequis ne sont pas remplis, allez faire un tour sur Qwant, ce ne sont pas les tutoriaux qui manquent pour l’installation du duo Nginx/PHP.

1. INSTALLATION

Baïkal est distribué en plusieurs versions (‘flat’ , ‘regular’, ‘bleeding edge’). Nous allons partir sur la version la plus simple à installer: flat. Sur le site officiel de Baïkal, copier l’adresse de téléchargement du package flat. Par exemple: http://baikal-server.com/get/baikal-flat-0.2.7.zip

Avant toute chose, assurez vous que les dépendances nécessaires pour faire tourner Baïkal sont installées sur le RPi, elles sont détaillées dans le fichier INSTALL.md contenu dans le package.

Sur le RPi, se placer dans le répertoire racine de votre serveur web, par exemple /var/www/html. Puis, exécuter les commandes suivantes:

pi@rpi /var/www/html $ wget http://baikal-server.com/get/baikal-flat-0.2.7.zip
pi@rpi /var/www/html $ unzip baikal-flat-0.2.7.zip
pi@rpi /var/www/html $ sudo mv baikal-flat baikal
pi@rpi /var/www/html $ sudo chown -R www-data:www-data baikal
pi@rpi /var/www/html $ sudo chmod -R 755 baikal
pi@rpi /var/www/html $ touch baikal/Specific/ENABLE_INSTALL

Ensuite, il suffit d’ouvrir, depuis votre navigateur, l’URL http(s)://votre_serveur_web/baikal/ , la page d’administration initiale s’affiche alors :

Sur cette interface, vous pouvez spécifier le fuseau horaire, activer le protocole CalDAV pour la fonctionnalité serveur de calendrier et le protocole CardDAV pour la fonctionnalité serveur de contacts.

Il faut ensuite choisir le type d’authentification. Pour une compatibilité avec un maximum de client d’agenda, je conseille de mettre ‘Basic’, mais il faudra veiller à ce que votre site web soit accessible en HTTPS.

Il ne reste plus qu’à choisir un mot de passe pour l’administrateur de Baïkal et cliquer sur « Save changes ».

 

 

 

La page suivante permet de choisir si l’on souhaite utiliser une base de données SQLite ou MySQL. On gardera le paramétrage par défaut, soit une base de donnée SQLite, bien suffisante pour la gestion d’un calendrier familial et des contacts de la famille.

Pour finir, nous allons rajouter un bloc de configuration dans le fichier de configuration du serveur Nginx, sous la directive « server »:

location /baikal/ {
    location ~ (Core|Specific) {
            deny all;
            return 404;
    }

    charset utf-8;

    location ~ ^(.+\.php)(.*)$ {
            try_files $fastcgi_script_name =404;
            fastcgi_split_path_info  ^(.+\.php)(.*)$;
            fastcgi_pass   unix:/var/run/php5-fpm.sock;
            fastcgi_param  PATH_INFO        $fastcgi_path_info;
            include        fastcgi.conf;
    }
}

Pensez à redémarrer Nginx et l’installation est finie.

2. CRÉATION D’UN CALENDRIER ET D’UN CARNET DE CONTACTS

Nous allons maintenant pouvoir créer un calendrier et un carnet de contacts pour la gestion des contacts.

Pour ce faire, il faut se connecter à l’interface d’administration de Baïkal via l’URL http(s)://votre_serveur_web/baikal/, avec l’utilisateur « admin » et le mot de passe que vous avez préalablement défini durant l’étape d’installation. Le tableau de bord de Baïkal s’affiche :

A partir de là, on va d’abord créer un utilisateur, en cliquant sur le menu « User and resources », puis sur le bouton « Add User ». On définit alors le nom de l’utilisateur, un label qui sera utilisé pour l’affichage, l’adresse e-mail et le mot de passe souhaité pour cet utilisateur. Ce sont ces informations qui, plus tard, seront utilisées dans le client d’agenda et le client de carnet de contacts.

Une fois fait, un calendrier par défaut ainsi qu’un carnet de contacts par défaut sont créés et associés à cet utilisateur :

NB: Baïkal est un serveur de calendrier et de carnet de contacts. Il ne permet pas en lui même d’ajouter des évènements ou des contacts. Pour ça il faut un client qui offre deux fonctionnalités principales :

  1. une interface permettant l’ajout et l’édition d’évènements de calendrier, ou de contacts au carnet d’adresse.
  2. la synchronisation avec un serveur de calendrier (supportant le protocole CalDAV) ou avec un serveur de contacts (supportant le protocole CardDAV).

Ce client peut être soit pré-installé sur votre appareil (ex: Calendar sous Mac) ou bien que vous devrez installer, par exemple sur votre téléphone Android, comme nous allons le voir dans le paragraphe suivant.

3. SYNCHRONISATION DU CALENDRIER SUR TÉLÉPHONE ANDROID

Afin de synchroniser le calendrier d’un téléphone Android avec notre serveur Baïkal, il faut installer l’application DAVDroid sur le téléphone. Deux options s’offrent à nous pour installer cette application:

  1. Depuis le PlayStore de Google, mais dans ce cas l’application est payante.
  2. Ou bien depuis un magasin d’applications alternatif tel que F-Droid. Dans ce cas, il faut d’abord installer l’application F-Droid, puis depuis cette application, qui n’est qu’un autre magasin d’applications, chercher l’appli DAVDroid et l’installer. En utilisant ce moyen, l’application est gratuite.

Une fois l’application DAVDroid installée, vous pouvez la lancer et suivre les étapes suivantes :

  1. Cliquez sur le bouton d’ajout de compte
  2. Sélectionnez l’option « Login with URL and username » :
  3. Sur l’écran suivant, saisissez l’URL d’accès aux calendriers de votre serveur Baïkal, sous la forme http(s)://votre_serveur_web/baikal/cal.php, indiquez le nom d’utilisateur qui a été créé dans l’étape précédente, ainsi que le mot de passe correspondant, et gardez cochée l’authentification préventive :
  4. Si DAVDroid arrive à se connecter correctement à votre serveur Baïkal, il affichera alors le calendrier par défaut correspondant au compte « famille ». Sélectionnez le :
  5. Pour finir, nommez le compte tel qu’il apparaitra dans l’application de calendrier par défaut de votre téléphone Android.

Et voilà ! A partir de là, vous pouvez régler les détails de synchronisation de votre calendrier dans les paramètres de compte Android.

4. SYNCHRONISATION LES CONTACTS SUR TÉLÉPHONE ANDROID

Pour synchroniser les contacts sur un téléphone Android, mon choix s’est porté sur l’application « CardDAV-Sync free » , disponible gratuitement sur le PlayStore Android.

Une fois l’application CardDAV-Sync free installée, vous pouvez la lancer et suivre les étapes suivantes :

  1. Cliquez sur le bouton d’ajout de compte et sélectionnez un compte de type « CardDAV » :
  2. Sur l’écran suivant, indiquez l’URL d’accès à votre serveur Baïkal, sous la forme http(s)://votre_serveur_web/baikal/card.php/principals/famille/default ou vous remplacerez « famille » par votre nom d’utilisateur. Si, dans l’interface d’administration de Baïkal, vous aviez changé le nom du carnet de contacts par défaut, vous prendrez également soin de changer « default » par le nom du carnet de contacts correspondant. Cochez « SSL » si votre serveur web est accessible en HTTPS, puis saisissez le nom du compte ainsi que le mot de passe correspondant :
  3. Pour finir, nommez le compte tel qu’il apparaitra dans les paramètres de compte Android. Vous pouvez également choisir si vous voulez que la synchronisation ne se fasse que dans le sens du serveur Baikal vers votre téléphone, mais cela implique que vous ayez un autre client de carnet de contacts depuis lequel vous créez/éditez vos contacts. Sinon, décochez cette option :
  4. Si les contacts de votre serveur Baikal n’apparaissent pas dans votre téléphone, pensez à vérifier le filtre d’affichage du carnet de contacts pour sélectionner tous les contacts du compte Baïkal :

Conclusion


Se passer de plusieurs services Google s’avère plus facile qu’on pourrait le penser. En particulier, la partie auto-hébergement d’un serveur de calendrier et de contacts sur un Raspberry Pi est assez simple à mettre en œuvre, sous réserve de tourner un serveur web accessible depuis internet. Il est assez plaisant de reprendre le contrôle de ses données personnelles et privées. Le chemin est encore long, puisque l’OS Android est développé par Google et qu’il est difficile de savoir quelles données du téléphone sont collectées, mais c’est un bon début.

En attendant, il me semble important que de plus en plus de personnes prennent ce chemin, et j’espère que cet article saura convaincre quelques uns d’entre vous.

A+

Vous aimez cet article ? Faites le savoir avec quelques bitcoins !

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s