Utente:Frenko/Draft

Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 7 "wheezy"

Introduzione

Firefox, come Iceweasel, permette la sincronizzazione di alcuni contenuti del browser tra più installazioni degli stessi. Tramite Sync Server è possibile sincronizzare Bookmarks, Tabs, Estensioni e altre piccole cose. Mozilla permette la sincronizzazione gratuita su dei loro server. In questa guida installeremo e configureremo un nostro Sync Server che lavorerà sotto Apache ed useremo MySql come database per l' archiviazione (è possibile utilizzare anche SQLite).
In questa guida tratteremo la versione 1.5 del sync-server, la quale funziona con Firefox/Iceweasel 29 e successivi (presenti da Wheezy in poi). Per versioni precedenti rifarsi alla seguente guida

Nella guida supporremo che il computer sul quale andremo ad installare il sync-server avrà IP 192.168.1.50

Installazione sync-server

Installiamo per prima cosa i pacchetti necessari alla compilazione del sync-server:

# apt-get install python-dev git-core python-virtualenv

Successivamente clonare il repository git di Mozilla contenente il sync-server, per fare questo ho deciso di lavorare in /opt:

# cd /opt
# git clone https://github.com/mozilla-services/syncserver
# cd syncserver
# make build

Il comando make build creerà un virtualenv Python in cui verranno successivamente installate tutte le dipendenze richieste dal server.
Terminata la compilazione verrà creata una cartella local/bin in cui è presente il binario pserve, utile a fini di debug poichè permette di lanciare il sync-server sfruttando un web-server built-in.
Per verificare il corretto funzionamento del sync-server sarà sufficiente dare il seguente comando:

make test

se tutto funziona correttamente verrà restituito a schermo un OK.

Configurazione

La configurazione del sync-server avviene tramite il file syncserver.ini, di seguito un esempio di tale file:

[server:main]
use = egg:Paste#http
host = 0.0.0.0
port = 5000

[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 = url_of_server

# This defines the database in which to store all server data.
#sqluri = 

# 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 = CHANGE_ME!!!
# 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://localhost:5000

Per prima cosa andremo a modificare il parametro public_url il quale andrà settato su un URL visibile dalla tua rete. In questa prima parte della guida, a scopo di test, supporremo di eseguire il server in locale in una rete di computer con indirizzo del tipo 192.168.1.x.
Apriamo quindi il file con il nostro editor preferito:

# vim /opt/syncserver/syncserver.ini

e modifichiamo la seguente riga inserendo l' url (quindi l' indirizzo IP) del pc che farà da Sync Server:

[syncserver]
public_url = http://192.168.1.50:5000

Abbiamo specificato la porta 5000 perchè di default il web-server built-in è attivo su tale porta. Ovviamente se vogliamo eseguire il server su una differente porta basterà specificarlo all' avvio del server modificando di conseguenza la porta nel parametro public_url.

Di default il sync-server utilizza un database in-memory per lo storage dei dati, questo significa che al riavvio del dispositivo tutti i dati memorizzati verranno cancellati. Per questo motivo il sync-server prevede lo storage dei dati tramite database MySql o SQLite accettando qualunque URI database di SQLAlchemy. Per questa parte non specificheremo alcun tipo di database.

Lanciare il server

A questo punto possiamo eseguire il server ed effettuare dei test per verificarne il funzionamento

# local/bin/pserve syncserver.ini

se otteniamo

Starting server in PID 29951.
serving on 0.0.0.0:5000 view at http://127.0.0.1:5000

Un simile messaggio significa che il server è funzionante ed in ascolto sulla porta 5000 del proprio computer.

Configurare Firefox/Iceweasel

Come accennato in precedenza per poter dire a Firefox/Iceweasel di connettersi al proprio sync-server è necessario modificare la voce services.sync.tokenServerURI in about:config cambiando l' url del server di sincronizzazione con l' indirizzo del server nella propria subnet. Nel nostro caso quindi sarà necessario cambiare l'url nel seguente modo:

services.sync.tokenServerURI: http://192.168.1.50:5000/token/1.0/sync/1.5

Per verificare il funzionamento del server sarà sufficiente andare all' indirizzo http://192.168.1.50:5000/ e vedere se compare la scritta it works!
A questo punto sarà sufficiente creare un account di sincronizzazione andando su Preferences e successivamente sul tab Sync. Se già si dispone di un account di sincronizzazione sarà sufficiente effettuare il login, altrimenti creeremo un nuovo account e successivamente effettuiamo il login. Eseguiamo il login con lo stesso account su un altra installazione di Firefox/Iceweasel, modificando anche in questo caso il parametro services.sync.tokenServerURI e controlliamo se effettivamente avviene la sincronizzazione degli oggetti selezionati nella tab Sync delle preferenze di Firefox/Iceweasel


Sync server dietro ad Apache2

Il web-server built-in del sync-server è utile per effettuare test sul sistema oppure se utilizzato in situazioni molto ristrette, ad esempio sincronizzando solo i computer di una rete locale.
Se vogliamo utilizzare il sync-server accedendoci dall' esterno oppure condividendolo tra più utenti è consigliato far girare il server di sincronizzazione sotto ad un instanza di un web-server come Apache2. I motivi possono essere molti, uno dei più importanti è il poter utilizzare il protocollo SSL per rendere sicure le connessioni tra client e server, un altro motivo è la possibilità di sostenere più facilmente un numero elevato di connessioni.