Outils pour utilisateurs

Outils du site


app:firefox-sync:installer-serveur-sync

Ceci est une ancienne révision du document !


Installer un serveur sync 1.5

Déclarer un nouveau nom de domaine, j'utilise freedns declarer-domaine-freedns. Il sera nécessaire pour la configuration de l’hôte virtuel Apache.

Cloner les sources

$ cd /srv
$ sudo mkdir ffsync
$ sudo chown yoann:yoann ffsync
$ git clone https://github.com/mozilla-services/syncserver ffsyn

Construire l'application

$ cd ffsync
$ make build

Configurer

Base de données

Sync utilise l'ORM SQLAlchemy, plusieurs systèmes de base de données peuvent être choisis en fonction du serveur de production. Dans mon cas, un serveur de base de données MySQL s’exécutant déjà, je fais le choix de l'utiliser.

Via le client mysql:

  • Créer la base de données
  • Créer l'utilisateur ayant les droits sur la base

Modifier ensuite la configuration du serveur sync via le fichier syncserver.ini:

# This defines the database in which to store all server data.
sqluri = pymysql://user:password@localhost/ffsync

Configuration du serveur Apache

Charger le module wsgi

$ sudo apt-get install libapache2-mod-wsgi
$ sudo a2enmod wsgi

Créer l'utilisateur et le groupe système sync

$ sudo addgroup --system sync
$ adduser --system --no-create-home --ingroup sync sync
Dans mon cas l'utilisateur sync existait mais pas le groupe. Créer le groupe système et ajouter l'utilisateur préexistant au groupe sync avec la commande sudo adduser sync sync

Changer le propriétaire du répertoire de l'application

$ sudo chown sync:sync -R ./ffsync

Créer le fichier de configuration de l’hôte virtuel apache. Ci dessous mon fichier de configuration calqué sur la documentation officielle:

    # Configuration du serveur Sync

    <VirtualHost *:80>
      ServerName ffsync.homenet.org
      DocumentRoot "/srv/ffsync"

      WSGIProcessGroup sync
      WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25 python-path=/srv/ffsync/local/lib/python2.7/site-packages/
      WSGIPassAuthorization On
      WSGIScriptAlias / /srv/ffsync/syncserver.wsgi

      CustomLog /var/log/apache2/ffsync.homenet.org-access.log combined
      ErrorLog  /var/log/apache2/ffsync.homenet.org-error.log

      <Directory "/srv/ffsync">
	Order deny,Allow
        Allow from All
      </Directory>

    </VirtualHost>

Dans le fichier de configuration du serveur sync syncserver.ini, modifier la valeur de la variable public_url et indiquer le nom de domaine associé a votre hôte virtuel apache:

public_url = http://ffsync.homenet.org

Tester la configuration Apache et activer l’hôte virtuel:

$ sudo apache2ctl configtest
$ sudo a2ensite ffsync
$ sudo service apache2 reload

Via le navigateur saisir l'URL pour vérifier que le serveur répond https://vhost1.domain/ Si tout se passe normalement le message it works! apparaît. Dans cas où aucune réponse n'est retournée, penser a vérifier l'état du pare-feu, il doit autoriser https:

$ sudo ufw status

Si ce n'est pas le cas:

$ sudo ufw allow https

Mettre à jour syncserver

Entrer dans le répertoire de clonage du projet git:

$ cd ./ffsync

Les commandes ci-dessous permettent de mettre à jour le serveur sync:

$ git stash       # sauvegarde les modifications apportées aux fichiers conf locaux
$ git pull        # fusionne les modifications commit depuis github
$ git stash pop   # ré-applique les configurations locales
$ make build

Paramétrer les navigateurs clients

Paramétrer les navigateurs clients pour qu'ils utilisent votre serveur sync. Dans la barre d'URL taper about:config dans la barre de recherche taper sync

modifier la valeur de la variable

identity.sync.tokenserver.uri = https://vhost1.domain/token/1.0/sync/1.5

Erreurs

La synchronisation ne fonctionne pas, le journal d'erreurs Apache pour l’hôte virtuel remonte les messages suivants:

[Fri Jun 16 08:08:50 2017] [error]   SNIMissingWarning
[Fri Jun 16 08:08:50 2017] [error] /srv/ffsync/local/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:132: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
[Fri Jun 16 08:08:50 2017] [error]   InsecurePlatformWarning

Le message d'erreur mentionne un lien https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl-py2 décrivant la procédure pour mettre a jour un module python:

$ cd ffsync/local/bin
$ . activate
$ pip install urllib3[secure]
$ deactivate
$ cd ../..
$ sudo chown -R sync:sync local

Références

app/firefox-sync/installer-serveur-sync.1497602691.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)