Firefox Sync ist eine Browsersynchronisierungsfunktion, mit der Sie Ihre Daten und Einstellungen (wie Lesezeichen, Verlauf, Kennwörter, geöffnete Registerkarten und installierte Add-Ons) auf allen Ihren Geräten teilen können. Mozilla bietet auch eine "Synchronisationsserver" -Anwendung zur Verwendung mit Firefox Sync für Benutzer und Unternehmen, die ihre eigenen Synchronisationsdaten hosten möchten. Dieser Artikel zeigt Ihnen, wie Sie Mozilla Sync Server einrichten.
Voraussetzungen
- Eine neu bereitgestellte Vultr Debian 8-, Debian 9- oder Ubuntu 16.04-Serverinstanz.
- Ein Sudo-Benutzer .
Installieren Sie die erforderlichen Pakete
Aktualisieren Sie das System:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
Um Sync Server zu erstellen und auszuführen, müssen Sie die folgenden Pakete installieren:
python-dev
git
build-essential (C ++ - Compiler, GCC-Compiler, make und andere erforderliche Tools).
sqlite3(Wenn Sie stattdessen eine MySQL-Datenbank verwenden möchten SQLite, können Sie das sqlite3Paket durch mariadb-serveroder ersetzen mysql-server.)
nginx(Webserver. Es liegt an Ihnen, welchen Webserver Sie verwenden möchten apache2oder nginx).
Installieren Sie die Pakete:
sudo apt-get install -y git git-core python-dev python-virtualenv build-essential sqlite3 nginx
Server erstellen
Wir klonen das Git-Repository des Synchronisationsservers, indem wir den folgenden Befehl eingeben und dann den Ordner eingeben:
git clone https://github.com/mozilla-services/syncserver
cd syncserver
Führen Sie den Befehl build aus, der die Abhängigkeiten herunterlädt und den Code kompiliert.
make build
Serverkonfiguration synchronisieren
Die Konfiguration des Synchronisationsservers ist sehr einfach. In der Konfigurationsdatei ( ./syncserver.ini) müssen nur wenige Parameter geändert werden .
Öffnen Sie die Konfigurationsdatei mit Ihrem bevorzugten Texteditor (zum Beispiel 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
Die Adresse Ihres Servers muss über den Parameter angegeben werden public_url:
public_url = http://fsync.example.com
Hinweis : Der Standardwert public_url"http: // localhost: 5000 /" funktioniert zu Testzwecken auf Ihrem lokalen Computer.
In der sqluriOption werden wir den Speicherort auskommentieren und angeben, oder URIder Server kann die Datenbank verbinden und die Informationen speichern:
sqluri = sqlite:////path/to/database/file.db
Wenn Sie einen anderen DB-Typ verwenden möchten:
sqluri = pymysql://username:[email protected]/sync
Für den secretParameter " " müssen wir einen geheimen Schlüssel für Authentifizierungstoken generieren:
head -c 20 /dev/urandom | sha1sum
Kommentieren Sie die Zeile des geheimen Parameters aus und kopieren Sie die zurückgegebene Zeichenfolge in den geheimen Parameter:
secret = db8a203aed5fe3e4594d4b75990acb76242efd35
Hinweis : Wenn Sie in diesen Parameter nichts eingeben, generiert der Server einen, der sich jedoch bei jedem Neustart des Servers unterscheidet.
allow\_new\_usersKommentieren Sie den Parameter " " aus und stellen Sie ihn so ein true, dass unser Konto zum ersten Mal eine Verbindung zu unserem Server herstellen kann:
allow_new_users = true
Wir werden dann den audiencesParameter " " ändern und das Gleiche wie den public_uriParameter " " setzen, ohne zu vergessen, die Zeile zu kommentieren:
audiences = http://fsync.example.com
Fügen Sie zum Schluss einfach die folgende Zeile am Ende Ihrer Datei hinzu:
forwarded_allow_ips = *
Diese Zeile hilft Ihnen, Fehlermeldungen und Autorisierungsprobleme zu vermeiden.
Sync Server starten
Um den Synchronisationsserver zu starten, können Sie entweder den folgenden Befehl starten:
./path/to/syncserver/local/bin/gunicorn --threads 4 --paste /path/to/syncserver/syncserver.ini &
... oder dieses:
make serve &
Mit der ersten Option können Sie den Speicherort der Konfigurationsdatei auswählen. und auch, um das Argument zu setzen --threads 4, das es ermöglicht, dem Synchronisationsserver mehr Leistung zuzuweisen.
Um den Server bei jedem Start Ihrer Instanz zu starten, können Sie der crontab die folgende Zeile hinzufügen, indem Sie den folgenden crontab -eBefehl eingeben :
@reboot ./path/to/syncserver/local/bin/gunicorn --paste /path/to/syncserver/syncserver.ini &
Webserverkonfiguration
Sie können verschiedene Webserver verwenden, die mit dem WSGIProtokoll kompatibel sind . Zum Beispiel:
Nginx mit uWSGI.
Apache kombiniert mit mod_wsgi.
Nginx
Für Nginx müssen Sie den integrierten Proxy von Nginx wie folgt verwenden:
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
Nginx-Benutzer können nur den WSGI-Socket verwenden.
Installation uWSGIüber Pip:
pip install uwsgi
Installation uWSGIüber das Herunterladen eines Quell-Tarballs:
wget https://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd <dir>
make
Hinweis : Nach dem Build befindet sich uwsgiim aktuellen Verzeichnis eine Binärdatei.
Starten Sie es nach der Installation mit den folgenden Optionen:
uwsgi --plugins python27 --manage-script-name \
--mount /<location>=/path/to/syncserver/syncserver.wsgi \
--socket /path/to/uwsgi.sock
Verwenden Sie dann die folgende Nginx-Konfiguration:
location /<location>/ {
include uwsgi_params;
uwsgi_pass unix:/path/to/uwsgi.sock;
}
Apache
Installieren mod_wsgi:
apt-get install libapache2-mod-wsgi
Verwenden Sie dann den folgenden 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>
Sobald der Server installiert und konfiguriert wurde, sollten Sie den Desktop-Firefox-Client so konfigurieren, dass er mit Ihrem neuen Synchronisierungsserver kommuniziert. Bevor Sie beginnen, müssen Sie sich abmelden, wenn Sie bereits mit Firefox Sync Servern verbunden sind. Andernfalls funktioniert die Verbindung zum neuen Server möglicherweise nicht.
Öffnen Sie zunächst eine neue Registerkarte und geben Sie die folgende Adresse ein:
about:config
Geben Sie in der Suchleiste identity.sync.tokenserver.uriden Wert ein und ändern Sie ihn in die URL Ihres Servers mit dem Pfad token/1.0/sync/1.5:
http://sync.example.com/token/1.0/sync/1.5