Installa Firefox Sync Server su CentOS 6

Firefox Sync è una funzione di sincronizzazione del browser che ti consente di condividere dati e preferenze (come segnalibri, cronologia, password, schede aperte e componenti aggiuntivi installati) su tutti i tuoi dispositivi. Mozilla offre anche un'applicazione "server di sincronizzazione" da utilizzare con Firefox Sync per utenti e aziende che preferiscono ospitare i propri dati di sincronizzazione. Questo articolo mostra come configurare Mozilla Sync Server.

Prerequisiti

  • Un Vultr CentOS 6 appena distribuito
  • Un utente sudo .

Installa i pacchetti necessari

Aggiorna il sistema:

sudo yum check-update

Per compilare ed eseguire Sync Server, è necessario installare questi pacchetti:

  • Mecurial
  • sqlite3
  • git
  • Python 2.6.6
  • Python 2.6.6 virtualenv
  • Python 2.6.6 SetupTools
  • Python 2.6.6 Developer Tools

Installa l'ultima versione di Mercurial:

sudo yum install mercurial

Installa gli strumenti e le librerie di sviluppo richiesti:

yum groupinstall 'Development Tools' 'Development Libraries'
yum install tk-devel libjpeg-devel mysql-devel python-devel httpd-devel zlib-devel bzip2-devel

Installa SQLite3:

sudo yum install sqlite

Installa e crea Python 2.6.6:

cd $home
sudo wget http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz
sudo tar xzvf Python-2.6.6.tgz
cd $home/Python-2.6.6
sudo ./configure --prefix=/opt/python2.6 --enable-thread --enable-shared --enable-unicode=ucs4
sudo make
sudo make install

Costruire il server

Cloneremo il repository Git del server di sincronizzazione e quindi inseriremo la cartella:

git clone https://github.com/mozilla-services/syncserver
cd syncserver

Esegui il comando build, che scaricherà le dipendenze e compilerà il codice:

make build

Avviare il server di sincronizzazione e verificare che funzioni correttamente:

bin/paster serve development.ini

Vedrai qualcosa del genere:

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

Configurazione del server di sincronizzazione

La configurazione del server di sincronizzazione è molto semplice, ci sono solo alcuni parametri da modificare nel file di configurazione ( ./syncserver.ini).

Apri il file di configurazione con il tuo editor di testo preferito (ad esempio nano ./syncserver.ini).

[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 = http://localhost:5000/

# This defines the database in which to store all server data.
#sqluri = sqlite:////tmp/syncserver.db

# 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 = false

[browserid]
# 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.
#backend = tokenserver.verifiers.LocalVerifier
#audiences = https://localhost:5000

# By default, syncserver will accept identity assertions issues by
# any server. You can restrict this by setting the below to a list
# of allowed issuer domains.
#allowed_issuers = www.mysite.com myfriendsdomain.org

L'indirizzo del server deve essere specificato tramite il parametro public_url:

public_url = http://fsync.example.com

Nota : il valore predefinito di public_url, http://localhost:5000/funzionerà a scopo di test sul computer locale.

Rimuoveremo il commento sqluridall'opzione e inseriremo la posizione, o URI, che consentirà al server di connettersi al database e archiviare le sue informazioni:

sqluri = sqlite:////path/to/database/file.db

Se si desidera utilizzare un altro tipo di DB:

sqluri = pymysql://username:password@db.example.com/sync

Per il secretparametro, dovremo generare una chiave segreta per i token di autenticazione:

head -c 20 /dev/urandom | sha1sum

Rimuovere il commento dalla riga del parametro segreto e quindi copiare / incollare la stringa restituita nel parametro segreto:

secret = db8a203aed5fe3e4594d4b75990acb76242efd35

Nota : se non si inserisce nulla in questo parametro, il server ne genererà uno ma sarà diverso ogni volta che si riavvia il server.

Rimuovi il commento dal allow\_new\_usersparametro e impostalo in modo da trueconsentire al nostro account di connettersi al nostro server per la prima volta:

allow_new_users = true

Quindi decommenteremo il audiencesparametro e metteremo la stessa cosa del public_uriparametro:

audiences = http://fsync.example.com

Infine, aggiungi la seguente riga alla fine del tuo file:

forwarded_allow_ips = *

Questa riga ti aiuterà a evitare messaggi di errore e problemi di autorizzazione.

Avvio del server di sincronizzazione

Per avviare il server di sincronizzazione, è possibile utilizzare uno dei seguenti comandi:

./path/to/syncserver/local/bin/gunicorn --threads 4 --paste /path/to/syncserver/syncserver.ini &

Ciò consente di scegliere la posizione del file di configurazione; oltre a mettere l'argomento --threads 4, che consente di assegnare più potenza al server di sincronizzazione.

Per avviare il server ogni volta che viene avviata l'istanza, è possibile aggiungere la seguente riga al crontab digitando il crontab -ecomando:

@reboot ./path/to/syncserver/local/bin/gunicorn --paste /path/to/syncserver/syncserver.ini &

Configurazione del server Web

È possibile utilizzare diversi server Web compatibili con il WSGIprotocollo. Per esempio:

  • Nginx con uWSGI.
  • Apache combinato con mod_wsgi.

nginx

Per Nginx, devi utilizzare il proxy integrato di Nginx come mostrato di seguito:

server {
        listen  80;
        server_name fsync.example.com;

        location / {
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_redirect off;
                proxy_read_timeout 120;
                proxy_connect_timeout 10;
                proxy_pass http://127.0.0.1:5000/;
        }
}

Nginx + uWSGI

È possibile per gli utenti Nginx utilizzare solo il socket WSGI.

Installa uWSGItramite Pip:

pip install uwsgi

Installa uWSGIscaricando un tarball sorgente:

wget https://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd <dir>
make

Nota : dopo la compilazione, avrai un file uwsgibinario nella directory corrente.

Una volta installato, avviarlo con le seguenti opzioni:

uwsgi --plugins python27 --manage-script-name \
--mount /<location>=/path/to/syncserver/syncserver.wsgi \
--socket /path/to/uwsgi.sock

Quindi utilizzare la seguente configurazione Nginx:

location /<location>/ {
include uwsgi_params;
uwsgi_pass unix:/path/to/uwsgi.sock;
}

Apache

Installa mod_wsgi:

apt-get install libapache2-mod-wsgi

Quindi utilizzare il seguente vhost:

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

Configura il client (Firefox)

Una volta che il server è stato installato e configurato, è possibile configurare il client desktop Firefox per comunicare con il nuovo Sync Server. Prima di iniziare, se sei già connesso a Firefox Sync Server, devi disconnetterti. In caso contrario, la connessione al nuovo server potrebbe non funzionare.

Innanzitutto, apri una nuova scheda e inserisci il seguente indirizzo:

about:config

Nella barra di ricerca, inserisci identity.sync.tokenserver.urie modifica il suo valore nell'URL del tuo server con un percorso di token/1.0/sync/1.5:

http://sync.example.com/token/1.0/sync/1.5

Lascia un commento

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.