Mise à jour 06/12/2011 : Suite à la mise en ligne d’une version modifiée de ce tutoriel n’utilisant pas le serveur Apache, je précise que si le tutoriel suivant est parfaitement fonctionnel, je préfère pour ma part ne pas l’utiliser pour les raisons décrites dans l’article sus-nommé. C’est vous qui voyez, y’en a qui ont essayé…
Suite au précédent article qui décrivait l’installation du serveur Sync minimal (et au fait qu’il n’était plus maintenu au profit de la version complète qui a été réécrite en Python), j’aborde ici l’installation du serveur Sync complet derrière un serveur Apache avec utilisation d’une base données MySQL.
Pré-requis :
- Un serveur GNU/Linux (ici Debian Squeeze i386)
- Serveur Web (ici Apache 2) avec support HTTPS
- Base de données MySQL
- Un navigateur Mozilla Firefox/IceWeasel PC/Mobile
Conventions :
- prompt : # commande : exécuter la commande sous le compte root ou précédée de la commande « sudo »
- prompt : $ commande : exécuter la commande sous le compte utilisateur
1. Installation
– Installer les dépendances :
# apt-get install python-dev mercurial python-virtualenv mysql-server build-essential libmysqlclient-dev libapache2-mod-wsgi
– Créer la base de données sync :
# mysql -u root -p
mysql> create database sync;
mysql> grant all on sync.* to sync identified by 'my_password';
mysql> flush privileges;
mysql> exit;
– Aller dans /var/www et télécharger la dernière version du serveur :
# cd /var/www
# hg clone https://hg.mozilla.org/services/server-full
– Renommer le dossier /var/www/server-full en /var/www/sync :
# mv /var/www/server-full /var/www/sync
– Se placer dans le dossier /var/www/sync et compiler le serveur :
# cd sync
# make build
– Installer Mysql-Python
# bin/easy_install Mysql-Python
Dans sa version actuelle, le serveur Sync embarque son propre serveur Web mais celui-ci n’est pas conçu pour supporter une forte charge (ce qui n’est pas très pénalisant dans notre cas) mais surtout ne semble pas posséder de mode chiffré. Nous allons donc faire fonctionner le serveur Sync derrière un serveur Apache en mode SSL via le mode WSGI. A noter que NGINX et Lighttpd sont aussi supportés (voir la doc Mozilla).
– Le mode WSGI ayant été installé avec les dépendances, il ne reste plus qu’à l’activer si nécessaire :
# a2enmod wsgi
– Créer un group sync et ajouter l’utilisateur sync à ce groupe :
# groupadd sync
# usermod -G sync sync
– Configurer le fichier /var/www/sync/etc/sync.conf pour Apache et MySQL (directives [storage] sqluri et [auth] sqluri), Apache 2 (directive [auth] fallback_node) et SMTP (directive [smtp] sender) :
# nano /var/www/sync/etc/sync.conf
[global]
clean_shutdown = false
[captcha]
use = false
public_key = 6Le8OLwSAAAAAK-wkjNPBtHD41v5OmoNFANIa1JL
private_key = 6Le8OLwSAAAAAEKoqfc-DmoF4HNswD7RNdGwxRij
use_ssl = false
[storage]
backend = syncstorage.storage.sql.SQLStorage
sqluri = mysql://sync:my_password@localhost/sync
standard_collections = false
use_quota = true
quota_size = 5120
pool_size = 100
pool_recycle = 3600
reset_on_return = true
display_config = true
create_tables = true
[auth]
backend = services.auth.sql.SQLAuth
sqluri = mysql://sync:my_password@localhost/sync
pool_size = 100
pool_recycle = 3600
create_tables = true
fallback_node = https://my_server.net/
[smtp]
host = localhost
port = 25
sender = my_account@email.net
[cef]
use = true
file = syslog
vendor = mozilla
version = 0
device_version = 1.3
product = weave
– Configurer le Virtualhost Apache :
# nano /etc/apache2/sites-available/sync
ServerAdmin my_account@email.net
ServerName my_server.net
DocumentRoot /var/www/sync
Order deny,allow
Allow from all
Options -Indexes
WSGIProcessGroup sync
WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25
WSGIPassAuthorization On
WSGIScriptAlias / /var/www/sync/sync.wsgi
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
– Activer le Virtualhost et recharger la configuration d’Apache :
# a2ensite sync
# service apache2 reload
2. Ajout d’un Firefox PC / Mobile
2.1. Firefox PC
– Ouvrir les Options/Paramètres de Firefox, allez dans l’onglet Sync et cliquer sur le bouton Configurer Firefox Sync
– Choisir Créer un nouveau compte
– Configurer les options de synchronisation (bouton en bas à gauche) et valider (Attention à ne pas écraser vos marque-pages par mégarde !) :
– Renseigner les champs suivants :
Compte : my_account@email.net
Mot de passe : my_password
serveur (Utiliser un serveur personnalisé…) : https://my_server.net/
Pensez à noter la clé de synchronisation après avoir validé les paramètres de connexion, elle sera demandée pour se connecter au compte depuis un autre Firefox.
2.2. Firefox Mobile
Une fois le compte créer et les données stockées sur le serveur, la configuration de Firefox Mobile se fait la manière suivante.
– Aller dans les paramètres, activer Sync et appuyer sur le bouton Connecter :
– Appuyer sur le lien Je n’ai pas accès à mon ordinateur pour l’instant… :
– Renseigner les champs suivants :
Compte : my_account@email.net
Mot de passe : my_password
Serveur (Utiliser un serveur personnalisé…) : https://my_server.net/
Clé de synchronisation : bd54sb5e1fd64gv76vs5gv16qse1vsd5
– La synchronisation est maintenant activée :
Sources :
- Documentation Mozilla installation Sync server : http://docs.services.mozilla.com/howtos/run-sync.html
- Documentation Mozilla Sync server : http://docs.services.mozilla.com/index.html
- Fixing the python config file if you’re getting server errors : https://tobyelliott.wordpress.com/2011/06/22/fixing-the-python-config-file-if-youre-getting-server-errors/
- http://www.verboom.net/blog/index.html?single=20110714.0