Une des première application de mon serveur Web NGINX à été de mettre en œuvre un serveur de synchronisation pour Firefox.

Cette fonctionnalité de synchronisation est nommée Firefox Sync (ex Weave), elle est intégrée par défaut dans Firefox 4 (pour les version antérieure il faut passer par une extension).

« Firefox Sync » est un service qui vous permet de synchroniser vos marque-pages, votre historique, vos mots de passe et vos onglets ouverts avec une autre copie de Firefox – comme, par exemple, avec une sur un autre ordinateur ou sur un terminal mobile – source

 

Xmarks Sync vs Firefox Sync

Pour remplir ce rôle jusqu’alors j’utilisais l’extension Xmarks Sync, mais ces dernier temps la synchronisation se faisait de plus en plus longue, voir n’aboutissait pas pour les mots de passe.

De plus pourquoi ajouter une extension ralentissant potentiellement Firefox alors que ce dernier embarque désormais la fonctionnalité.

Autres différences (non exhaustif) :

  1. Firefox Sync est libre et soutenu par la foncdation Mozilla, Xmarks est une société commerciale, le service à failli disparaitre (Xmarks is Dead. Long Live Xmarks?) avant son acquisition par Lastpass
  2. Firefox Sync crypte les mots de passe avant d’envoyer les données vers le serveur alors que Xmark fait l’inverse
  3. Firefox Sync synchronise les marques-page, l’historique, les préférences, les onglets ouverts et les mots de passe, Xmarks ne synchronise pas les préférences
  4. Xmarks est multi-navigateur, Firefox Sync n’est que pour Firefox
  5. Xmarks propose une interface de consultation des ses bookmarks via le web, Firefox Sync non
  6. Xmarks sauvegarde l’historique des bookmark il est ainsi possible de revenir en arrière si on a supprimé par mégarde des marques-page, Firefox Sync je ne penses pas
  7. Xmarks gère des notion de profil permettant par exemple de ne synchroniser qu’une partie des ses marques pages (au boulot par exemple), Firefox Sync non
  8. Xmarks à une notion de partage de bookmark, Firefox Sync non
  9. Xmarks modifie la page des résultats Google pour ajouter une prévisualisation et un système de notation
  10. Xmarks est plus paramétrable et plus « loquace » sur ce qu’il fait
  11. Xmarks et Firefox Sync permettent l’utilisation de son propre serveur, en HTTP(s) pour Firefox Sync, contre FTP(s) ou WebDav sur HTTP(s) pour Xmarks

Bref Xmarks possède nombre d’options en plus mais Firefox Sync est plus libre….

Toutes les informations (spécifications / API / Sources)  concernant le serveur Sync sont disponibles sur la page Firefox Sync du Wiki Mozilla

 

Installation Firefox Sync

Sync nécessite une plateforme LAMP ce qui n’est pas pour me plaire car je souhaite autant que possible me passer de MySQL et n’est pas forcément aisé à mettre en œuvre (cf. les sources) mais il existe une version light du serveur Sync.

Le serveur Firefox Sync minimal nécessite un serveur Web avec support du php (NGINX sur mon Dockstar) et SQLite.

Créer un répertoire dans votre arborescence web et donner les droits à l’utilisateur sous lequel votre serveur Web tourne (le plus souvent www-data) :

drwxrwxr-x  2 www-data www-data 4,0K 25/03/2011 20:54 weave/

Récupérer la dernière archive des scripts du serveur Firefox Sync minimal : http://people.mozilla.org/~telliott/

Décompresser cette archive dans le dossier précédemment créé.

 

Paramétrer votre serveur Web pour rendre accessible le répertoire et le documentation (fichier README) indique qu’il faut créer un alias du type :

Alias /weave /<chemin vers weave>/index.php

Ce qui sous NGINX se traduit ainsi :

location /weave {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param   SCRIPT_FILENAME $document_root/weave/index.php;
    fastcgi_param   SCRIPT_NAME $document_root/weave/index.php;
    if ( $request_uri ~ "/weave/([^?]*)" ) {
        set $path_info  /$1;
     }
    fastcgi_param   PATH_INFO       $path_info;
 }

Il faut ensuite aller à l’adresse suivante :

http://[adresse de votre serveur]/weave/1.0/blah/info/collection

Une authentification vous est réclamé :

Saisir :

  • Utilisateur : blah
  • Mot de passe : n’importe quoi

Dans le répertoire contenant les scripts php, une base SQLite doit avoir été créée :

-rw-r--r-- 1 www-data www-data 5,4M 25/03/2011 20:54 weave_db

On peut considérer Firefox Sync installé.

 

Configuration du/des utilisateur(s)

La version minimale du serveur Firefox Sync ne possède pas d’interface pour gérer les utilisateurs, il faut les créer « à la main » sur le serveur, ce qui offre l’avantage de ne pas avoir de risque de voir son serveur Sync sqatté…

La création d’un utilisateur se fait avec le script php create_user que l’on lance en ligne de commande.

Il faut pour cela avoir installé le paquet php5-cli.

Puis on lance le script et on répond aux question

$ sudo php create_user
(c)reate, (d)elete or change (p)assword: c
Please enter email: aa
Please enter password: aa
aa created

A noter qu’il n’est pas nécessaire de saisir un email comme indiqué mais le login souhaité

Et voila…

 

Configuration de Firefox 4

Dans Firefox 4 aller dans le bouton Firefox et sélectionner « Configurer sync… »

Sélectionner « J’ai déjà un compte sync, se connecter » :

 

Sélectionner « Je n’ai pas l’appareil avec moi »

2 cas de figure se présentent dès lors :

 

1ère configuration de Firefox

C’est le premier Firefox que vous configurez avec le compte utilisateur, le serveur Firefox Sync ne contient donc aucunes données.

Saisir votre login et mot de passe choisis lors de la création de l’utilisateur.

Dans la liste déroulante « Serveur » choisir « Utiliser un serveur personnalisé », puis saisir l’URL d’accès à Firefox Sync sur votre serveur.

Saisir une clé au hasard , elle ne sera pas prise en compte et Firefox en générera une autre.

Firefox détecte que c’est votre première configuration, il génère une nouvelle clé (que vous pouvez re-générer) :

Noter cette clé, ou l’enregistrer dans une endroit sûr, elle vous sera nécessaire pour configurer les autres Firefox que vous souhaiter synchroniser.

Cliquer sur « Modifier la clé de synchronisation ».


Cette alerte vous avertit que les données des autres appareils synchronisés avec le compte utilisateur choisi seront écrasées avec les données du Firefox en-cours de configuration.

Ce n’est pas grave puisque nous configurons le premier Firefox à synchroniser.

Cliquer sur Terminer :

Vous pouvez alors choisir les options de synchronisation en cliquant sur le bouton du même nom.

Choisir quelle données synchroniser et le mode de première synchronisation, dans mon cas mon Firefox contenant déjà tous mes Bookmark et rien sur le serveur j’ai choisi de remplacer les données du serveur par celle de mon Firefox.

 

Configuration des Firefox suivants

Vous avez déjà au moins un Firefox de paramétré, synchronisé, le serveur contient donc déjà des données pour l’utilisateur choisi et vous souhaitez en ajouter un autre.

Comme précédemment saisir votre login et mot de passe de l’utilisateur choisi, l’URL de votre serveur de synchronisation.

Saisir la clé générée lors de la configuration du 1er Firefox

Cliquer sur Suivant, Firefox vérifie le login/mdp et la clé saisie.

La configuration est terminée, de même qu’auparavant choisir les options de synchronisation.

Par contre contrairement à au paragraphe précédent (et à la copie d’écran), il faut choisir soit :

  • de remplacer les donnée de ce Firefox par celle du serveur, si vous n’avez pas de bookmark sur l’ordinateur en cours
  • de fusionner les données du serveur avec celle de l’ordinateur en cours de paramétrage

 

Rque : les options de paramétrage sont ensuite modifiables dans les options Firefox :

A noter que le menu Gestion du compte > modifier le mot de passe ne fonctionne pas avec la version minimal du serveur Firefox Sync.

 

Sécurisation HTTPS

Pour plus de sécurité il est conseillé de mettre en œuvre une connexion HTTPs, le flux HTTP est alors crypté avant d’être envoyé sur le réseau (internet).

Pour créer une connexion HTTPs avec NGINx je vais prochainement publier un article.

Une chose à savoir si vous utilisez un certificat auto-signé sur votre serveur Web (90% des cas, non ?), il vous faudra aller sur l’adresse de Firefox Sync sur votre serveur avec Firefox, et accepter l’alerte de sécurité avant de paramétrer Firefox Sync sur ce même Firefox.

Sources :

Installation d’un serveur complet :

Installation d’un serveur Weave

Install & Setup a custom Firefox Sync/Weave server

Installation d’un serveur minimal :

Weave Minimal Server « Tapestry

Installation d’un serveur Firefox sync | Gege2061′s blog

Serveur Firefox Sync et NGINX :

More alternate server possibilities « Tapestry

Got Mozilla Weave working with Nginx — Hasse’s technical ramblings

► Installer son propre serveur Firefox sync avec PHP-FPM et Nginx ◄ – Jean Baptiste Favre

Les commentaires sont fermés.