Mozilla sync

Avatar du membre
did
Messages : 519
Enregistré le : jeu. 18 sept. 2014 20:35

Re: Mozilla sync

Message par did »

J'ai pas eu le temps de pousser les tests plus loin ces derniers jours.

Je m'y remets ce week-end et je vous fais un compte rendu détaillé.
Avatar du membre
did
Messages : 519
Enregistré le : jeu. 18 sept. 2014 20:35

Re: Mozilla sync

Message par did »

Bonsoir à tous,

Je reprends mes essais de mozilla sync sur le serveur mis à disposition par l'admin Zaclys, cette fonctionnalité me manque pas mal depuis qu'on est passé à nextcloud.

Mais pour l'instant, sans résultat.
J'ai principalement suivi cette doc : https://mozilla-services.readthedocs.io ... c-1.5.html,
Ce que j'ai fait :

1/ Préparation :
- installation des paquets nécessaires : git, python-dev, g++...
- ouverture du port 5000 par l'admin

2/ Installation du serveur :

Code : Tout sélectionner

git clone https://github.com/mozilla-services/syncserver
cd syncserver
make build
La compilation semble se dérouler normalement.

3/ Test

Code : Tout sélectionner

make test
J'obtiens

Code : Tout sélectionner

Ran 59 tests in 48.454s

OK (skipped=7)
Je sais pas si c'est bon.

4/ Configuration du serveur Sync

Modification du fichier syncserver.ini pour rajouter les lignes :

Code : Tout sélectionner

public_url = https://mozillasync.zaclys.fr
sqluri = pymysql://z:************@localhost/nc
Visiblement, il n'y a pas de problème de connexion à la base de données.

5/ Configuration du serveur Apache
Modification du fichier /etc/httpd/conf/httpd.conf pour rajouter :

Code : Tout sélectionner

<Directory /var/www/html/syncserver>
  Require all granted
</Directory>

<VirtualHost *:80>
  ServerName mozillasync.zaclys.fr
  DocumentRoot /var/www/html/syncserver
  WSGIProcessGroup sync
  WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25 python-path=/var/www/html/syncserver/local/lib/python2.7/site-packages/
  WSGIPassAuthorization On
  WSGIScriptAlias / /var/www/html/syncserver/syncserver.wsgi
  CustomLog /var/log/apache2/example.com-access.log combined
  ErrorLog  /var/log/apache2/example.com-error.log
</VirtualHost>
Je ne suis vraiment pas sûr de cette étape qui apparemment est nécessaire lorsqu'on est derrière un serveur Apache + mod_wsgi. Je ne sais pas si je modifie le bon fichier. Je ne maîtrise pas du tout le sujet.


Lorsque je me rends à l'adresse https://mozillasync.zaclys.fr, je devrais avoir un "It works !", mais ce n'est pas le cas !
J'ai essayé d'installer le serveur dans /opt/ ou dans /var/www/html/ mais ça ne change rien.

Voilà, un peu d'aide serait bienvenue, car là je sèche.
Si quelqu'un veut s'y essayer, je passe la main (accès SSH).
Avatar du membre
did
Messages : 519
Enregistré le : jeu. 18 sept. 2014 20:35

Re: Mozilla sync

Message par did »

Je progresse.

J'utilise la version du serveur installée dans /opt/

J'ai modifié le fichier de config syncserver.ini. J'ai remplacé :

Code : Tout sélectionner

public_url = https://mozillasync.zaclys.fr
par

Code : Tout sélectionner

public_url = http://178.32.22.48:5000
qui est l'ip publique du serveur.

J'ai supprimé les modifications dans le fichier /etc/httpd/conf/httpd.conf qui semblent ne servir à rien (ça fonctionne pareil avec ou sans).

J'obtiens enfin "It works!" quand je me rends sur http://178.32.22.48:5000/.

J'ai modifié la configuration de mes Firefox sur différents pc :
dans about:config, pour la chaîne identity.sync.tokenserver.uri, utiliser l'adresse :

Code : Tout sélectionner

http://178.32.22.48:5000/token/1.0/sync/1.5
Et ça marche ! Mes différents navigateurs se synchronisent normalement dans les deux sens.

Avant d'aller plus loin, j'aimerais réussir à utiliser l'adresse https://mozillasync.zaclys.fr plutôt que l'IP du serveur. MatthieuBarbu, tu as l'air de t'y connaître, aurais-tu un peu de temps pour te pencher sur la question ?

Plusieurs question aux admins :
- le nom de domaine mozillasync.zaclys.fr est-il bien enregistré quelque part ?
- est-il possible d'avoir accès à l'interface de gestion de la base de données pour voir ce qui s'y passe exactement ?

Merci
Avatar du membre
root
L'équipe Zaclys
Messages : 646
Enregistré le : mar. 25 mars 2014 16:25
Contact :

Re: Mozilla sync

Message par root »

salut did,

http://mozillasync.zaclys.fr:5000 doit fonctionner ( mozillasync.zaclys.fr = 178.32.22.48 )

ton pb au départ c'est le port , si tu mets https://mozillasync.zaclys.fr le https correspond au port 443 donc ça pointe vers 178.32.22.48:443

si tu mets http://mozillasync.zaclys.fr sans préciser le port ( :5000) , http c'est port 80 , donc ça point vers 178.32.22.48:80

alors que dans ton fichier de config du serveur sync tu lui dis d'écouter sur le port 5000

ps : par contre port 5000 ça ne passera pas pour les utilisateurs qui sont derriere des proxy d'entreprise / université

a+
MatthieuBarbu
L'équipe Zaclys
Messages : 94
Enregistré le : mar. 13 juin 2017 11:06

Re: Mozilla sync

Message par MatthieuBarbu »

Salut Did,

je vais compléter un peu la réponse de root.

généralement les ports du genre 5000 & co sont des ports de test.
Tu travailles sur ces port et en localhost (en général car ici c'est pas ton cas mais tu travailles bien avec l'ip) juste le temps de faire ta config.

C'est la même chose avec Django (autre framework web en Python) par exemple.

D'après la doc, il ne faut pas faire tourner le serveur web fournit par python (celui sur le port 5000) directement sur le net mais il faut mettre une façade (apache ou nginx) qui elle accèdera au vrai serveur (port 5000).

Ta config apache WSGI sert justement à ça, elle semble bonne mais il manque la partie SSL sur le port 443.

Au besoin, on peut regardé ça ensemble :)

MatthieuBarbu
Membre de l’Équipe Zaclys
https://www.zaclys.com

Sur https://mastodon.zaclys.com
@MatthieuBarbu
Avatar du membre
did
Messages : 519
Enregistré le : jeu. 18 sept. 2014 20:35

Re: Mozilla sync

Message par did »

Merci à vous deux pour vos réponses, ça m'aide à y voir un peu plus clair.
root a écrit : http://mozillasync.zaclys.fr:5000 doit fonctionner (mozillasync.zaclys.fr = 178.32.22.48 )
Pourtant, impossible de synchroniser des données si je mets http://mozillasync.zaclys.fr:5000 ou http://mozillasync.zaclys.fr dans le fichier de config.
Tu peux vérifier que :
http://178.32.22.48:5000, ça marche
http://mozillasync.zaclys.fr:5000, ça mouline sans fin.
MatthieuBarbu a écrit : D'après la doc, il ne faut pas faire tourner le serveur web fournit par python (celui sur le port 5000) directement sur le net mais il faut mettre une façade (apache ou nginx) qui elle accèdera au vrai serveur (port 5000).

Ta config apache WSGI sert justement à ça, elle semble bonne mais il manque la partie SSL sur le port 443.


Effectivement, je pense que c'est ça que je ne sais pas faire et pourquoi ça foire. J'ai essayé toutes sortes de config mais sans résultat. Je ne comprends pas vraiment comment le lancer "derrière" Apache, ni comment le configurer.

Ton aide sera plus qu'utile. Je t'envoie les codes d'accès par mp si tu veux.
Les deux fichiers que j'ai modifiés sont :
- /opt/syncserver/synserver.ini

Code : Tout sélectionner

[server:main]
use = egg:gunicorn
host = 0.0.0.0
port = 5000
workers = 1
timeout = 30

[app:main]
use = egg:syncserver

[syncserver]
# This must be edited to point to the public URL of your server,
# i.e. the URL as seen by Firefox.
#public_url = https://mozillasync.zaclys.fr:5000
public_url = http://178.32.22.48:5000


# This defines the database in which to store all server data.
#sqluri = sqlite:////tmp/syncserver.db
sqluri = pymysql://z:****************@localhost/nc

# This is a secret key used for signing authentication tokens.
# It should be long and randomly-generated.
# The following command will give a suitable value on *nix systems:
#
#    head -c 20 /dev/urandom | sha1sum
#
# If not specified then the server will generate a temporary one at startup.
#secret = INSERT_SECRET_KEY_HERE

# Set this to "false" to disable new-user signups on the server.
# Only request by existing accounts will be honoured.
# allow_new_users = false

# Set this to "true" to work around a mismatch between public_url and
# the application URL as seen by python, which can happen in certain reverse-
# proxy hosting setups.  It will overwrite the WSGI environ dict with the
# details from public_url.  This could have security implications if e.g.
# you tell the app that it's on HTTPS but it's really on HTTP, so it should
# only be used as a last resort and after careful checking of server config.
force_wsgi_environ = true

# Uncomment and edit the following to use a local BrowserID verifier
# rather than posting assertions to the mozilla-hosted verifier.
# Audiences should be set to your public_url without a trailing slash.
#[browserid]
#backend = tokenserver.verifiers.LocalVerifier
#audiences = https://mozillasync.zaclys.fr
- /etc/httpd/conf/httpd.conf, auquel j'ai rajouté :

Code : Tout sélectionner

<VirtualHost *:80>
  ServerName mozillasync.zaclys.fr
  Redirect / https://mozillasync.zaclys.fr
</VirtualHost>

<VirtualHost *:443>
  ServerName mozillasync.zaclys.fr
  DocumentRoot  /opt/syncserver
  WSGIProcessGroup sync
  WSGIDaemonProcess mozillasync.zaclys user=sync group=sync processes=2 threads=25 python-path=/opt/syncserver/local/lib/python2.7/site-packages/
  WSGIPassAuthorization On
  WSGIScriptAlias / /opt/syncserver/syncserver.wsgi
  CustomLog /var/log/apache2/mozillasync.zaclys.fr-access.log combined
  ErrorLog  /var/log/apache2/mozillasync.zaclys.fr-error.log
</VirtualHost>

<Directory /opt/syncserver>
  Require all granted
</Directory>
Mais il y a sûrement des erreurs là-dedans, tu aurais plutôt intérêt à repartir de zéro.
Répondre

Retourner vers « Idées/suggestions »