Firefox Sync
Environnement
- Conteneur LXC Proxmox
- Ubuntu 18.04
- Reverse-proxy qui redirige les requêtes HTTPS vers le serveur Sync
Installation
Installer Python, Virtualenv, SQLite, Git et les outils de compilation :
apt install python-dev git-core python-virtualenv g++ sqlite3
Télécharger la dernière version du serveur et la compiler :
cd /opt
git clone https://github.com/mozilla-services/syncserver
cd syncserver
make build
Configuration
Créer un utilisateur sans privilège pour lancer le serveur :
useradd -s /usr/sbin/nologin -r -M syncserver
chown syncserver:www-data -R /opt/syncserver
chmod 750 -R /opt/syncserver
Tester l'installation du serveur :
make test
Générer une clé secrète pour signer les jetons d'authentification :
head -c 20 /dev/urandom | sha1sum
Éditer le fichier /opt/syncserver/syncserver.ini de la manière suivante :
cp -p /opt/syncserver/syncserver.ini /opt/syncserver/syncserver.ini.bak
nano /opt/syncserver/syncserver.ini
[syncserver]
public_url = https://sync.domaine.lan/
identity_provider = https://sync.domaine.lan/
sqluri = sqlite:////opt/syncserver/syncserver.db
secret = cle_secrete_de_signature_des_jetons_d_authentification
Démarrer le serveur :
make serve
Dans Firefox, saisir about:config dans la barre d'adresse et modifier la valeur identity.sync.tokenserver.uri comme suit :
identity.sync.tokenserver.uri https://sync.domaine.lan/token/1.0/sync/1.5
Dans Firefox, créer un compte (si besoin) et lancer la synchronisation.
Une fois tous les comptes synchronisés, pour éviter que d'autres comptes utilisent le serveur, dans le fichier /opt/syncserver/syncserver.ini, décommenter le paramètre allow_new_users = false :
nano /opt/syncserver/syncserver.ini
[syncserver]
allow_new_users = false
Créer un service Systemd pour démarrer automatiquement le serveur :
nano /etc/systemd/system/syncserver.service
[Unit]
Description=A gunicorn server running Mozilla's Firefox sync server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
User=syncserver
Group=www-data
Umask=007
Restart=on-abort
WorkingDirectory=/opt/syncserver
ExecStart=/opt/syncserver/local/bin/gunicorn --daemon --paste /opt/syncserver/syncserver.ini
ExecStop=/usr/bin/pkill --pidfile /var/run/syncserver.pid
PIDFile=/var/run/syncserver.pid
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Mise à jour
cd /opt/syncserver
git stash
git pull
git stash pop
make build
Supprimer les données sur les serveurs Mozilla (à exécuter sur le serveur Sync) :
pip install PyFxA
python /opt/syncserver/bin/delete_user_data.py user@domaine.lan