Auto-hébergez Firefox Sync et synchronisez préférences, identifiants, mots de passe, historique…

Lé pas bô mon panda ? :)

Lé pas bô mon panda ? 🙂

Attention ! Firefox n’utilise plus cet outil, ce tutoriel n’est donc plus d’actualité…

Salut à tous !

Aujourd’hui je vous propose de continuer la ligne directrice des derniers articles sur l’auto-hébergement en faisant un tour du côté des utilisateurs de Mozilla Firefox. Mon panda roux préféré propose depuis sa version 4 un outil permettant de synchroniser marque-pages, historiques de navigation, préférences, mots de passe, formulaires pré-remplis, et les 25 derniers onglets ouverts à travers différents ordinateurs, tablettes et smartphone. Ce service sobrement intitulé Firefox Sync peut être hébergé chez vous, sur votre Raspberry Pi ou votre serveur dédié si vous ne souhaitez pas utiliser les serveurs de Mozilla.

Outre le respect de votre vie privée apporté par cet outil, il peut aussi très bien vous servir en interne dans votre entreprise par exemple.

Normalement développé en Perl (il me semble) l’accès au code source a permis l’apparition de forks, et notamment d’une version PHP, que je vous propose d’installer !

Ce que je vais mettre en place

Comme je dispose déjà d’un serveur web Apache et de MariaDB sur mon dédié, je vais les utiliser. Mais j’aurais très bien pu utiliser une solution plus légère type NGinX / SQLite !

Si ce n’est pas déjà fait, installez donc Apache / PHP / MySQL (ou MariaDB), puis Git pour récupérer les sources du projet.

apt-get install git

Installation et configuration de FSyncMS

Récupération des sources du projet

Personnellement je place les sources dans /var/www/ :

cd /var/www
git clone git://github.com/balu-/FSyncMS.git
chown -R www-data: /var/www/FSyncMS && chmod -R 775 /var/www/FSyncMS

Préparation du vhost Apache

Plutôt que de passer par l’adresse IP du service, je veux que Sync soit accessible à l’adresse https://sync.mon-domaine.com. Voici le vhost que j’utilise :

<VirtualHost *:80>
        ServerAdmin     admin@mon-domaine.com
        ServerName      sync.mon-domaine.com
 
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteRule ^(.*)?$ https://%{SERVER_NAME}/ [L,R=301]
</VirtualHost>
 
<IfModule mod_ssl.c>
 <VirtualHost *:443>
        ServerAdmin     admin@mon-domaine.com
        ServerName      sync.mon-domaine.com:443
        DocumentRoot    /var/www/FSyncMS
 
        SSLEngine On
        SSLCertificateFile      /etc/apache2/certificates/mon-domaine.com.cert
        SSLCertificateKeyFile   /etc/apache2/certificates/mon-domaine.com.key
        SSLProtocol             all -SSLv2 -SSLv3
        SSLHonorCipherOrder     On
        SSLCipherSuite          ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:HIGH:!MD5:!aNULL:!EDH:!RC4
        SSLCompression          Off
 
        ErrorLog        /var/log/apache2/sync-error.log
        CustomLog       /var/log/apache2/sync-access.log "combined"
 
        <Directory "/var/www/FSyncMS">
                Options -Indexes
                Require all granted
        </Directory>
 </VirtualHost>
</IfModule>

Ignorez la partie entre IfModule mod_ssl.c et IfModule si vous ne souhaitez pas d’HTTPS (en déplaçant DocumentRoot et Directory /var/www/FSyncMS), sinon vous trouverez plus d’informations par ici.

Sauvegardez, activez le vhost et rechargez Apache :

sudo a2ensite vhost.conf
sudo service apache reload

Préparation de la base de données MySQL

Les commandes habituelles pour la création de la base de données :

mysql -u root -p
CREATE DATABASE fsync;
GRANT ALL PRIVILEGES ON fsync.* TO fsync@localhost IDENTIFIED BY "password";
FLUSH PRIVILEGES;
quit

Configuration de FSync

Normalement si tout s’est bien passé vous devriez pouvoir accéder à votre serveur à l’adresse https://sync.mon-domaine.com. Une page de configuration doit vous permettre de configurer l’accès à la base de données. Mais vous pouvez aussi passer par l’édition du fichier FSyncMS/settings.php. Voici le mien :

<?php
    // you can disable registration to the firefox sync server here,
    // by setting ENABLE_REGISTER to false
    // 
    define("ENABLE_REGISTER", true);
 
    // firefox sync server url, this should end with a /
    // e.g. https://YourDomain.de/Folder_und_ggf_/index.php/
    // 
    define("FSYNCMS_ROOT", "https://sync.mon-domaine.com/index.php/");
 
    // Database connection credentials
    // 
    define("SQLITE_FILE", "weave_db");
    define("MYSQL_ENABLE", true);
    define("MYSQL_HOST", "localhost");
    define("MYSQL_DB", "fsync");
    define("MYSQL_USER", "fsync");
    define("MYSQL_PASSWORD", "password");
 
    // Use bcrypt instead of MD5 for password hashing
    define("BCRYPT", true);
    define("BCRYPT_ROUNDS", 12);
?>

Dans tous les cas pensez à modifier "FSYNCMS_ROOT" et éventuellement passez "ENABLE_REGISTER" à FALSE une fois vos clients configurés pour éviter que n’importe qui puisse s’inscrire chez vous !

Ajouter un premier client

Rendez-vous dans Firefox, Firefox > Configurer Sync… et sélectionnez « Créer un nouveau compte ».

Configuration de Sync

Il va ensuite falloir que vous créez votre nouveau compte :

Création du compte Sync

Note : assurez-vous que Firefox fait confiance à votre serveur si vous utilisez un certificat auto-signé…

Normalement c’est tout, Firefox va commencer à synchroniser vos favoris, vos marques-pages, vos modules complémentaires…

Retour d’expérience

Cela fait maintenant 2 mois que j’utilise FSyncMS sur mon serveur personnelle sans aucun souci. Je retrouve toutes mes données Firefox sur l’ensemble de mes machines. Il n’y a que ma Nexus 7 que je n’ai pas réussi à synchroniser et je pense que c’est dû à HTTPS.

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email