Firefox Sync, originariamente “Mozilla Weave”, è un software che consente agli utenti di sincronizzare parzialmente segnalibri, cronologia, preferenze, password, moduli compilati, add-ons e aprire le schede su più Firefox installati.Mantiene i propri dati (criptati) sui server Mozilla.In questo articolo si vuole creare un proprio server Weave.
Per questa installazione ho utilizzato il database sql-lite predefinito. Più in là, vorrei aggiungere un backend MySQL e utilizzare gunicorn + Nginx per una soluzione un pò più robusta.
Fino ad ora sto testando questa impostazione predefinita ed è stata promettente ,veloce,non ho avuto problemi rilevanti,e funziona bene con i miei dispositivi mobili. Un piccolo avvertimento è che su iphone/pad ho trovato solo iCab per sincronizzare bene,ed è il solo modo.Per il momento è più che accettabile per accedere ai miei segnalibri.In futuro,vorrei trovare una soluzione più elegante.
Prima di tutto sono necessarie alcune cose:
sudo aptitude install python-dev mercurial sqlite3 python-virtualenv
Per installare il server:
hg clone https://hg.mozilla.org/services/server-full cd server-full make build
Per configurare il server, prima accedere al sito Recapcha per ottenere una chiave API, se si desidera utilizzare questa funzione di sicurezza. Quindi, aprire il file conf. Cambiare fallback_node con la disposizione del IP pubblico del server, modificare il percorso Db come si desidera e abilitare/configurare il Captcha, se lo si desidera.
/server-full/etc/sync.conf
[nodes] fallback_node = http://www.openserverproject.com:5000/ [storage] sqluri = sqlite:////path/to/database/file.db [auth] sqluri = sqlite:////path/to/database/file.db [captcha] use = true public_key = xxxxxxxxxxxxx private_key = xxxxxxxxxxxx use_ssl = true
Dopo aver testato il server e configurare gli account utente ricordati di disabilitare i nuovi utenti, altrimenti chiunque sarà in grado di utilizzare il server.
[auth] allow_new_users = false
Per aggiornare il server è possibile utilizzare:
cd /path/to/server-full hg pull hg update make build
È probabile che chi vuole creare un utente per il server deve aggiornare le autorizzazioni del file DB sql-lite di conseguenza. Il file e la sua directory dovrebbero essere scrivibili dall’utente in cui il server è in esecuzione, e inaccessibile ad altri utenti. Si può impostare la umask del processo per assicurare che i file siano sono leggibili solo da l’utente appropriato. Per esempio:
umask 007 bin/paster serve development.ini
Ecco un esempio di script di avvio per /etc/init.d, modificare i nomi delle cartelle /utenti e assicurarsi che la directory PID_FILE vengano concesse le autorizzazioni del caso.
#!/bin/bash ### BEGIN INIT INFO # Provides: paster # Required-Start: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the paster server # Description: starts paster ### END INIT INFO PROJECT=/path/to/server-full #VIRTUALENV=/home/mozilla-sync/src #PID_DIR=/var/run/ PID_FILE=/var/run/mozilla-sync/firefox-sync.pid LOG_FILE=/var/log/firefox-sync.log USER=ffsyncuser GROUP=ffsyncgrp PROD_FILE=/path/to/server-full/development.ini RET_VAL=0 #source $VIRTUALENV/bin/activate cd $PROJECT case "$1" in start) bin/paster serve \ --daemon \ --pid-file=$PID_FILE \ --log-file=$LOG_FILE \ --user=$USER \ --group=$GROUP \ $PROD_FILE \ start ;; stop) bin/paster serve \ --daemon \ --pid-file=$PID_FILE \ --log-file=$LOG_FILE \ --user=$USER \ --group=$GROUP \ $PROD_FILE \ rm -f $PID_FILE stop ;; restart) bin/paster serve \ --daemon \ --pid-file=$PID_FILE \ --log-file=$LOG_FILE \ --user=$USER \ --group=$GROUP \ $PROD_FILE \ restart ;; status) bin/paster serve \ --daemon \ --pid-file=$PID_FILE \ --log-file=$LOG_FILE \ --user=$USER \ --group=$GROUP \ status ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 esac exit $RET_VAL