Firefox Sync er en nettlesersynkroniseringsfunksjon som lar deg dele data og preferanser (som bokmerker, historikk, passord, åpne faner og installerte tillegg) på alle enhetene dine. Mozilla tilbyr også en "synkroniseringsserver"-applikasjon for bruk med Firefox Sync for brukere og bedrifter som foretrekker å være vert for sine egne synkroniseringsdata. Denne artikkelen viser deg hvordan du setter opp Mozilla Sync Server.
Forutsetninger
- En nylig distribuert Vultr Debian 8, Debian 9 eller Ubuntu 16.04 serverforekomst.
- En sudo-bruker .
Installer de nødvendige pakkene
Oppdater systemet:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
For å bygge og kjøre Sync Server, må du installere disse pakkene:
python-dev
git
build-essential (C++ kompilator, GCC kompilator, merke og andre nødvendige verktøy).
sqlite3(hvis du vil bruke en MySQL-database i stedet for SQLite, kan du erstatte sqlite3pakken med mariadb-servereller mysql-server).
nginx(webserver. Det er opp til deg å velge hvilken webserver du vil bruke fra apache2eller nginx).
Installer pakkene:
sudo apt-get install -y git git-core python-dev python-virtualenv build-essential sqlite3 nginx
Bygge serveren
Vi vil klone Git-depotet til synkroniseringsserveren ved å skrive inn følgende kommando og deretter gå inn i mappen:
git clone https://github.com/mozilla-services/syncserver
cd syncserver
Kjør build-kommandoen som vil laste ned avhengighetene og kompilere koden.
make build
Sync Server-konfigurasjon
Konfigurasjonen av synkroniseringsserveren er veldig enkel, det er bare noen få parametere å endre i konfigurasjonsfilen ( ./syncserver.ini).
Åpne konfigurasjonsfilen med din favoritt tekstredigerer (for eksempel 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
Adressen til serveren din må spesifiseres via parameteren public_url:
public_url = http://fsync.example.com
Merk : standardverdien public_url"http://localhost:5000/" vil fungere for testformål på din lokale maskin.
I sqlurialternativet vil vi avkommentere og sette plasseringen eller URIsom vil tillate serveren å koble til databasen og lagre informasjonen:
sqluri = sqlite:////path/to/database/file.db
Hvis du vil bruke en annen type DB:
sqluri = pymysql://username:password@db.example.com/sync
For secretparameteren " " må vi generere en hemmelig nøkkel for autentiseringstokener:
head -c 20 /dev/urandom | sha1sum
Fjern kommentaren til linjen til den hemmelige parameteren og kopier/lim inn den returnerte strengen i den hemmelige parameteren:
secret = db8a203aed5fe3e4594d4b75990acb76242efd35
Merk : Hvis du ikke legger inn noe i denne parameteren, vil serveren generere en, men den vil være forskjellig hver gang serveren startes på nytt.
For allow\_new\_usersparameteren " ", fjern kommentaren og still den slik trueat kontoen vår kan kobles til serveren vår for første gang:
allow_new_users = true
Vi vil da modifisere audiencesparameteren " " og sette inn det samme som public_uriparameteren " " uten å glemme å fjerne kommentaren til linjen:
audiences = http://fsync.example.com
Til slutt legger du bare til følgende linje på slutten av filen din:
forwarded_allow_ips = *
Denne linjen hjelper deg med å unngå feilmeldinger og autorisasjonsproblemer.
Starter Sync Server
For å starte synkroniseringsserveren kan du enten starte følgende kommando:
./path/to/syncserver/local/bin/gunicorn --threads 4 --paste /path/to/syncserver/syncserver.ini &
... eller denne:
make serve &
Det første alternativet lar deg velge plasseringen av konfigurasjonsfilen; og også for å sette argumentet --threads 4, som gjør det mulig å tildele mer kraft til synkroniseringsserveren.
For å starte serveren hver gang forekomsten starter, kan du legge til følgende linje i crontab ved å skrive crontab -ekommandoen:
@reboot ./path/to/syncserver/local/bin/gunicorn --paste /path/to/syncserver/syncserver.ini &
Nettserverkonfigurasjon
Du kan bruke forskjellige webservere som er kompatible med WSGIprotokollen. For eksempel:
Nginx med uWSGI.
Apache kombinert med mod_wsgi.
Nginx
For Nginx må du bruke Nginx sin innebygde proxy som vist nedenfor:
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
Det er mulig for Nginx-brukere å kun bruke WSGI-kontakten.
Installer uWSGIvia Pip:
pip install uwsgi
Installer uWSGIved å laste ned en kilde tarball:
wget https://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd <dir>
make
Merk : Etter byggingen vil du ha en uwsgibinær i gjeldende katalog.
Når den er installert, start den med følgende alternativer:
uwsgi --plugins python27 --manage-script-name \
--mount /<location>=/path/to/syncserver/syncserver.wsgi \
--socket /path/to/uwsgi.sock
Bruk deretter følgende Nginx-konfigurasjon:
location /<location>/ {
include uwsgi_params;
uwsgi_pass unix:/path/to/uwsgi.sock;
}
Apache
Installer mod_wsgi:
apt-get install libapache2-mod-wsgi
Bruk deretter følgende 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>
Når serveren er installert og konfigurert, bør du konfigurere stasjonær Firefox-klient til å snakke med din nye Sync Server. Før du begynner, hvis du allerede er koblet til Firefox Sync-servere, må du logge ut. Ellers kan det hende at tilkoblingen til den nye serveren ikke fungerer.
Først åpner du en ny fane og skriver inn følgende adresse:
about:config
I søkefeltet skriver du inn identity.sync.tokenserver.uriog endre verdien til URL-en til serveren din med en bane på token/1.0/sync/1.5:
http://sync.example.com/token/1.0/sync/1.5