Installation d’un serveur Firefox Sync

Mozilla propose un service « Sync » performant et gratuit au sein leurs propres serveurs mais Mozilla nous laisse aussi la possibilité de créer notre serveur de synchronisation personnel.
Dans cet article, le serveur personnel Firefox Sync est installé sur Debian 7.

Présentation de Firefox Sync

Un serveur personnel Firefox Sync permet de sauvegarder l’ensemble de la configuration de votre navigateur Firefox via une synchronisation des objets ci-dessous :

L’ensemble de votre configuration ne vous quittera plus et vos données sont entre vos mains.
Pratique si l’on dispose de plusieurs appareils (smartphone, pc portable, pc de bureau)!

Installation de Firefox Sync

Téléchargement des pré-requis :

apt-get install python-dev mercurial sqlite3 python-virtualenv libssl-dev

Téléchargement du serveur personnel Firefox Sync :

cd /var/www/
clone https://hg.mozilla.org/services/server-full
cd server-full
make build

Faire un test pour s’assurer que tout fonctionne :

make test

Configuration de Firefox Sync :
 

Rendez-vous dans le fichier de configuration :

nano etc/sync.conf

Les lignes à modifier sont  :

[nodes]
fallback_node = http://votre_nom_dns:5000/

[storage]

sqluri = sqlite:////chemin/de/votre_base/nom_du_fichier.db

[auth]

sqluri = sqlite:////chemin/de/votre_base/nom_du_fichier.db

Par défaut le serveur Firefox Sync utilise SQLite, si vous souhaitez utiliser MySql voici la procédure :

Installation de MySql :

apt-get insall mysql-server

Ajouter une base de donnée dans MySql :

# mysql -u root -p
mysql> create database ffsync;
mysql> grant all on sync.* to sync identified by 'mon_mot_de_passe';
mysql> flush privileges;
mysql> exit;

Installation de « mysql-python » dans le dossier server-full :

bin/easy_install Mysql-Python

Modification de fichier de configuration pour mysql :

[nodes]
fallback_node = http://votre_nom_dns:5000/

[storage]

sqluri = mysql:////ffsync:mon_mot_de_passe@localhost/ffsync

[auth]

sqluri = mysql:////ffsync:mon_mot_de_pass@localhost/ffsync

Fin du paramétrage du fichier de configuration avec MySql.

Dans votre fichier de configuration la ligne suivante permet la création d’utilisateur :
(Dès que vos utilisateurs seront ajoutés, je vous conseille de la mettre à « false » rapidement.)

 [auth]
allow_new_users=true

Envoi d’email de récupération du mot de passe Firefox Sync :

 [smtp]
host = localhost
port = 25
sender = [email protected]

Lancement du serveur Firefox Sync :

bin/paster serve development.ini
==> Starting server in PID 29951.
==> serving on 0.0.0.0:5000 view at http://127.0.0.1:5000

Le serveur fonctionne ! Cependant la tâche doit être lancée manuellement.
Voyons comment automatiser la tâche avec un script au démarrage du système  .

Création d’un groupe et d’un utilisateur pour le lancement du script :

Création d’un groupe pour le lancement de Firefox Sync :

groupadd sync

Création d’un utilisateur dans le groupe « sync » pour le lancement de Firefox Sync :

useradd -d /var/www/server-full -g sync -r -s /bin/bash firefox

Création d’un dossier de log pour firefox :

mkdir /var/log/firefox

Donner les droits sur les dossiers « server-full » et « /var/log/firefox »:

chown -R firefox:sync /var/www/server-full && chown -R firefox:sync /var/log/firefox

Création du script de lancement de Firfox Sync :

nano /etc/init.d/ffsync.sh

Écrire ceci dans le fichier :

 #!/bin/bash
 
### BEGIN INIT INFO
# Provides:          Mozilla Sync HomeServer
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Mozilla Sync HomeServer initscript
# Description:       Mozilla Sync HomeServer
### END INIT INFO
MESSAGELOG=/var/log/firefox/sync-messages.log
PID=`pidof -x -o %PPID paster`
case "$1" in
  start)
    echo "Starting Mozilla Sync HomeServer"
    [ ! -d $MESSAGEDIR ] && mkdir -p $MESSAGEDIR
    su firefox -c "cd /var/www/server-full/ && bin/paster serve development.ini &>$MESSAGELOG &"
    ;;
  stop)
    echo "Stopping Mozilla Sync HomeServer"
    kill $PID &>/dev/null
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"
esac
exit 0

Rendre exécutable le script :

chmod +x ffsync.sh

Ajouter le script au démarrage du système :

insserv ffsync.sh

Pour faire un test rien ne vaut un redémarrage système !
Pour s’assurer que le lancement est effectif :

netstat -tan
=> tcp  0  0 0.0.0.0:5000  0.0.0.0:*               LISTEN

Configuration du client firefox Sync

Sous Windows appuyez sur la touche « ALT » et sur la barre du menu « outils » puis « configurez sync« :

Sélectionner « créer un nouveau compte » (exemple) :

C’est terminé ! N’oubliez pas de désactiver l’inscription utilisateur dans le fichier de configuration.
Les logs vous renseignerons pour tous les problèmes qui surviendront( /var/log/firefox/).
Profitez bien de votre serveur Firefox Sync !