Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| app:firefox-sync:installer-serveur-sync [2017/03/24 11:17] – créée yoann | app:firefox-sync:installer-serveur-sync [2023/05/29 17:29] (Version actuelle) – ajout de références yoann | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ====== Installer un serveur sync 1.5 ====== | ====== Installer un serveur sync 1.5 ====== | ||
| - | Déclarer un nouveau nom de domaine, | + | Déclarer un nouveau nom dans votre domaine, |
| - | Cloner les sources | + | Cloner les sources |
| <code bash> | <code bash> | ||
| Ligne 11: | Ligne 11: | ||
| $ sudo mkdir ffsync | $ sudo mkdir ffsync | ||
| $ sudo chown yoann:yoann ffsync | $ sudo chown yoann:yoann ffsync | ||
| - | $ git clone https:// | + | $ git clone https:// |
| </ | </ | ||
| Ligne 21: | Ligne 21: | ||
| </ | </ | ||
| - | Tester | + | ===== 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' | ||
| + | |||
| + | Via le client mysql: | ||
| + | |||
| + | * Créer la base de données | ||
| + | * Créer l' | ||
| + | |||
| + | 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:// | ||
| + | </ | ||
| + | |||
| + | ===== Configuration du serveur Apache ===== | ||
| + | |||
| + | Charger le module **wsgi** | ||
| <code bash> | <code bash> | ||
| + | $ sudo apt-get install libapache2-mod-wsgi | ||
| + | $ sudo a2enmod wsgi | ||
| + | </ | ||
| + | Créer l' | ||
| + | <code bash> | ||
| + | $ sudo addgroup --system sync | ||
| + | $ adduser --system --no-create-home --ingroup sync sync | ||
| </ | </ | ||
| - | ===== Configurer ===== | + | < |
| + | Dans mon cas l' | ||
| + | </ | ||
| - | ==== Base de données ==== | + | Changer le propriétaire du répertoire |
| - | Sync utilise l'ORM SQLAlchemy, plusieurs systèmes de base de données peuvent etre choisit en fonction du serveur de production. Un serveur de base de données MySQL s’exécutant déjà, je fais le choix de l' | + | <code bash> |
| + | $ sudo chown sync:sync -R ./ffsync | ||
| + | </ | ||
| - | * Creer la base de données | ||
| - | * Créer l' | ||
| - | Renseigner | + | Créer |
| + | < | ||
| + | < | ||
| + | ServerName vhost1.tld | ||
| + | DocumentRoot "/ | ||
| + | # SSL Engine Switch: | ||
| + | # | ||
| + | SSLEngine on | ||
| + | |||
| + | SSLCertificateFile | ||
| + | SSLCertificateKeyFile / | ||
| + | |||
| + | WSGIProcessGroup sync | ||
| + | WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25 python-path=/ | ||
| + | WSGIPassAuthorization On | ||
| + | WSGIScriptAlias / / | ||
| + | |||
| + | CustomLog / | ||
| + | ErrorLog | ||
| + | |||
| + | < | ||
| + | Require all granted | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Dans le fichier de configuration du serveur sync **syncserver.ini**, | ||
| + | |||
| < | < | ||
| - | # This defines the database in which to store all server data. | + | public_url |
| - | sqluri | + | |
| </ | </ | ||
| + | |||
| + | Tester la configuration Apache et activer l’hôte virtuel: | ||
| + | |||
| + | <code bash> | ||
| + | $ 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:// | ||
| + | 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' | ||
| + | |||
| + | <code bash> | ||
| + | $ sudo ufw status | ||
| + | </ | ||
| + | |||
| + | Si ce n'est pas le cas: | ||
| + | <code bash> | ||
| + | $ sudo ufw allow https | ||
| + | </ | ||
| + | |||
| + | ===== Mettre à jour syncserver ===== | ||
| + | |||
| + | Entrer dans le répertoire de clonage du projet git: | ||
| + | <code bash> | ||
| + | $ cd ./ffsync | ||
| + | </ | ||
| + | |||
| + | Les commandes ci-dessous permettent de mettre à jour le serveur sync: | ||
| + | |||
| + | <code bash> | ||
| + | $ 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: | ||
| + | |||
| + | modifier la valeur de la variable | ||
| + | |||
| + | < | ||
| + | identity.sync.tokenserver.uri = https:// | ||
| + | </ | ||
| + | |||
| + | ===== Test du serveur ===== | ||
| + | |||
| + | * Consulter l'URL https:// | ||
| + | |||
| + | < | ||
| + | {" | ||
| + | </ | ||
| + | |||
| + | * Créer un compte Firefox, une fois authentifié sur le navigateur, lancer la synchro | ||
| + | * Vérifier que dans la base mysql l' | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Problèmes rencontrés ===== | ||
| + | |||
| + | ==== Coté serveur ==== | ||
| + | |||
| + | La synchronisation ne fonctionne pas, le journal d' | ||
| + | |||
| + | < | ||
| + | [Fri Jun 16 08:08:50 2017] [error] | ||
| + | [Fri Jun 16 08:08:50 2017] [error] / | ||
| + | [Fri Jun 16 08:08:50 2017] [error] | ||
| + | </ | ||
| + | |||
| + | Le message d' | ||
| + | |||
| + | <code bash> | ||
| + | $ cd ffsync/ | ||
| + | $ . activate | ||
| + | $ pip install urllib3[secure] | ||
| + | $ deactivate | ||
| + | $ cd ../.. | ||
| + | $ sudo chown -R sync:sync local | ||
| + | </ | ||
| + | |||
| + | La synchronisation en fonctionne pas sous android, le périphérique apparaît sur le compte mais les options de synchronisations restent grisées et pas de synchronisation. | ||
| + | |||
| + | Cela peut être du a l' | ||
| + | |||
| + | ==== Côté client mobile ==== | ||
| + | |||
| + | Une fois authentifié depuis le navigateur du mobile, la synchronisation ne fonctionne toujours pas: | ||
| + | |||
| + | * Vérifier la syntaxe de l'URI du paramètre **identity.sync.tokenserver.uri** | ||
| + | * Se déconnecter et désinstaller/ | ||
| + | * Se reconnecter | ||
| + | |||
| + | Après ces modifications la synchronisation a fini par se faire. | ||
| + | |||
| + | < | ||
| + | Concernant le débogage du client mobile, il est possible d' | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | adb logcat | grep FxAccounts | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Références ===== | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | |||