|
|
(14 versioni intermedie di 2 utenti non mostrate) |
Riga 1: |
Riga 1: |
| {{Versioni compatibili|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 [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5 | Apache ]] ed useremo MySql come database per l' archiviazione (è possibile utilizzare anche SQLite).
| |
| <br />
| |
| 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 [https://docs.services.mozilla.com/howtos/run-sync.html#howto-run-sync11 seguente guida]
| |
| <br />
| |
| <br />
| |
| 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:
| |
| <pre>
| |
| # apt-get install python-dev git-core python-virtualenv
| |
| </pre>
| |
| Successivamente clonare il repository git di Mozilla contenente il sync-server, per fare questo ho deciso di lavorare in ''/opt'':
| |
| <pre>
| |
| # cd /opt
| |
| # git clone https://github.com/mozilla-services/syncserver
| |
| # cd syncserver
| |
| # make build
| |
| </pre>
| |
| Il comando <code>make build</code> creerà un virtualenv Python in cui verranno successivamente installate tutte le dipendenze richieste dal server.
| |
| <br />
| |
| 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.
| |
| <br />
| |
| Per verificare il corretto funzionamento del sync-server sarà sufficiente dare il seguente comando:
| |
| <pre>
| |
| make test
| |
| </pre>
| |
| 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:
| |
| <pre>
| |
| [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
| |
| </pre>
| |
|
| |
| 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'''.
| |
| <br />
| |
| Apriamo quindi il file con il nostro editor preferito:
| |
| <pre>
| |
| # vim /opt/syncserver/syncserver.ini
| |
| </pre>
| |
| e modifichiamo la seguente riga inserendo l' url (quindi l' indirizzo IP) del pc che farà da Sync Server:
| |
| <pre>
| |
| [syncserver]
| |
| public_url = http://192.168.1.50:5000
| |
| </pre>
| |
| 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''.
| |
| <br />
| |
| <br />
| |
| 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 [http://www.sqlalchemy.org/ 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
| |
| <pre>
| |
| # local/bin/pserve syncserver.ini
| |
| </pre>
| |
| se otteniamo
| |
| <pre>
| |
| Starting server in PID 29951.
| |
| serving on 0.0.0.0:5000 view at http://127.0.0.1:5000
| |
| </pre>
| |
| 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:
| |
| <pre>
| |
| services.sync.tokenServerURI: http://192.168.1.50:5000/token/1.0/sync/1.5
| |
| </pre>
| |
| 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!''
| |
| <br />
| |
| 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.
| |
| <br />
| |
| 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 [[Installare_un_ambiente_LAMP:_Linux,_Apache2,_SSL,_MySQL,_PHP5#Configurazione_di_SSL | SSL]] per rendere sicure le connessioni tra client e server, un altro motivo è la possibilità di sostenere più facilmente un numero elevato di connessioni.
| |
|
| |
| === Configurazione Apache2 ===
| |
|
| |
| Per prima cosa sarà necessario abilitare il modulo [[https://wsgi.readthedocs.org/en/latest/ | WSGI]] di Apache2:
| |
| <pre>
| |
| # a2enmod wsgi
| |
| </pre>
| |
| e quindi riavviare il server Apache2
| |
| <pre>
| |
| service apache2 restart
| |
| </pre>
| |