Installa Firefox Sync Server su Debian 9 o Ubuntu 16.04

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

  • Una nuova istanza del server Vultr Debian 8, Debian 9 o Ubuntu 16.04.
  • Un utente sudo .

Installa i pacchetti necessari

Aggiorna il sistema:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

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

  • python-dev
  • git
  • build-essential (Compilatore C ++, compilatore GCC, make e altri strumenti richiesti).
  • sqlite3(se si desidera utilizzare un database MySQL anziché SQLite, è possibile sostituire il sqlite3pacchetto con mariadb-servero mysql-server).
  • nginx(server web. Sta a te scegliere da quale server web vuoi usare apache2o nginx).

Installa i pacchetti:

sudo apt-get install -y git git-core python-dev python-virtualenv build-essential sqlite3 nginx

Costruire il server

Cloneremo il repository Git del server di sincronizzazione digitando il comando seguente e quindi accederemo alla 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

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.

In sqluriopzione, Le rimuovere il commento e mettere la posizione o URIche permetterà al server di collegare il database e memorizzare le informazioni:

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

Se si desidera utilizzare un altro tipo di DB:

sqluri = pymysql://username:[email protected]/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.

Per il allow\_new\_usersparametro " ", decommentalo e impostalo in modo da trueconsentire al nostro account di connettersi al nostro server per la prima volta:

allow_new_users = true

Modificheremo quindi il audiencesparametro " " e inseriremo la stessa cosa del public_uriparametro " " senza dimenticare di rimuovere il commento dalla riga:

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 avviare il comando seguente:

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

... o questo:

make serve &

La prima opzione consente di scegliere la posizione del file di configurazione; e anche per 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, è necessario 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


Leave a Comment

Installa la condivisione NFS su Debian

Installa la condivisione NFS su Debian

NFS è un file system basato su rete che consente ai computer di accedere ai file attraverso una rete di computer. Questa guida spiega come esporre le cartelle su NF

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Come installare Couch CMS 2.0 su un VPS Debian 9 LAMP

Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare

Come installare Golang 1.8.3 su CentOS 7, Ubuntu 16.04 e Debian 9

Come installare Golang 1.8.3 su CentOS 7, Ubuntu 16.04 e Debian 9

Golang è un linguaggio di programmazione sviluppato da Google. Grazie alla sua versatilità, semplicità e affidabilità, Golang è diventato uno dei più popolari

Come installare Quassel su Debian 9

Come installare Quassel su Debian 9

IRC è popolare tra gli sviluppatori e gli utenti di software open source. Uno degli svantaggi di IRC è quando non sei in linea, potresti perdere Importan

Come usare Sudo su Debian, CentOS e FreeBSD

Come usare Sudo su Debian, CentOS e FreeBSD

Luso di un utente sudo per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. Luso di un sud

Configurare un Chroot su Debian

Configurare un Chroot su Debian

Questo articolo ti insegnerà come impostare una prigione chroot su Debian. Presumo che tu stia usando Debian 7.x. Se usi Debian 6 o 8, questo potrebbe funzionare, bu

Come installare PiVPN su Debian

Come installare PiVPN su Debian

Introduzione Un modo semplice per configurare un server VPN su Debian è con PiVPN. PiVPN è un programma di installazione e wrapper per OpenVPN. Crea semplici comandi per te t

Come costruire Brotli dalla fonte su Debian 9

Come costruire Brotli dalla fonte su Debian 9

Usi un sistema diverso? Brotli è un nuovo metodo di compressione con un rapporto di compressione migliore di Gzip. Il suo codice sorgente è ospitato pubblicamente su Github. Thi

Come installare Kanboard su Debian 9

Come installare Kanboard su Debian 9

Usi un sistema diverso? Introduzione Kanboard è un programma software di gestione dei progetti gratuito e open source progettato per facilitare e visualizzare

Come installare Neos CMS su Debian 9

Come installare Neos CMS su Debian 9

Usi un sistema diverso? Neos è una piattaforma di applicazioni di contenuto con un CMS e un framework applicativo al suo interno. Questa guida ti mostrerà come installare

Installa cactus su Debian Jessie

Installa cactus su Debian Jessie

Introduzione Cacti è uno strumento open source di monitoraggio e rappresentazione grafica interamente basato sui dati RRD. Attraverso Cacti puoi monitorare quasi ogni tipo di devic

Come installare Java 8 e DCEVM su Debian 8 (Jessie)

Come installare Java 8 e DCEVM su Debian 8 (Jessie)

Java è un linguaggio di programmazione / macchina virtuale indipendente dalla piattaforma. In questo tutorial, installeremo limplementazione OpenJDK di Java 8 su un Debian

Server HTTP Git con Nginx su Debian 8

Server HTTP Git con Nginx su Debian 8

Git è un sistema di controllo della versione (VCS) che consente il rilevamento delle modifiche al codice. In questo tutorial, vedremo come installare un server HTTP (S) Git, un

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Introduzione MyCLI è un client da riga di comando per MySQL e MariaDB che ti consente di completare automaticamente e ti aiuta con la sintassi dei tuoi comandi SQL. MyCL

Usare le viste MySQL su Debian 7

Usare le viste MySQL su Debian 7

Introduzione MySQL ha una grande funzionalità nota come viste. Le viste sono query memorizzate. Pensa a loro come alias per una query altrimenti lunga. In questa guida,

Creare una rete di server Minecraft con BungeeCord su Debian 8, Debian 9 o CentOS 7

Creare una rete di server Minecraft con BungeeCord su Debian 8, Debian 9 o CentOS 7

Cosa ti serve Un VPS Vultr con almeno 1 GB di RAM. Accesso SSH (con privilegi di root / amministrativi). Passaggio 1: installare prima BungeeCord

Come installare Matomo Analytics su Debian 9

Come installare Matomo Analytics su Debian 9

Usi un sistema diverso? Matomo (precedentemente Piwik) è una piattaforma di analisi open source, unalternativa aperta a Google Analytics. La fonte Matomo è ospitata o

Monitora lo stato del server Debian con Munin

Monitora lo stato del server Debian con Munin

Munin è uno strumento di monitoraggio per rilevare processi e risorse nella macchina e presenta le informazioni in grafici attraverso uninterfaccia web. Usa il seguito

Come installare ImpressPages CMS 5.0 su un VPS Debian 9 LAMP

Come installare ImpressPages CMS 5.0 su un VPS Debian 9 LAMP

Usi un sistema diverso? ImpressPages CMS 5.0 è un sistema di gestione dei contenuti (CMS) semplice ed efficace, gratuito e open source, intuitivo, basato su MVC

Come installare il forum NodeBB su Debian 9

Come installare il forum NodeBB su Debian 9

Usi un sistema diverso? NodeBB è un forum basato su Node.js. Utilizza socket Web per interazioni istantanee e notifiche in tempo reale. Codice sorgente NodeBB i

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.