Debian MozillaSync
Allgemein
Mozilla Firefox Sync ist seit Version 4 von Firefox fester Bestandteil des Browser's. Für Firefox Versionen <4 kann das Firefox Sync Addon (https://addons.mozilla.org/de/firefox/addon/10868/) verwendet werden. Auf dem Server wird der hier vorgestellte Firefox Syncserver (ehemals Weave) verwendet, um die Bookmarks, History, Passwörter und geöffnete Tabs zwischen verschiendenne Installationen zu synchronisieren.
Das Anlegen eines neuen Accounts, Änderung des Passwortes usw. wird komplett vom Client bzw. Sync-Plugin erledigt. Nach der Serverinstallation ist keinerlei Eingriff diesbezüglich am Server erforderlich.
Voraussetzung für Synchronisation via Internet:
- Webserver
- OpenSSL mit Wildcard Zertifkat
Installation
apt-get install python-dev git-core python-virtualenv make cd /opt/ git clone https://github.com/mozilla-services/syncserver cd syncserver make build make test mkdir db
Konfiguration
Sync-Server
Das Konfigurationfile des Syncservers befinden sich im Ordner /opt/syncserver/.
cd /opt/syncserver/
Festlegen des SQLite Datenbankfiles zum Speichern der Syncdaten und eines Schlüssels für die Verschlüsselung der Datenbank:
Schlüssel:
head -c 20 /dev/urandom | sha1sum
die Ausgabe sieht z.B. folgendermaßen aus:
8c76e8b050abd0fffb0a986146282fe328be2e92 -
D.h. SYNC_SECRET=8c76e8b050abd0fffb0a986146282fe328be2e92
Konfigfile anpassen:
vi syncserver.ini
Folgende Änderungen durchführen:
[syncserver] sqluri = sqlite:////opt/syncserver/db/syncserver.db secret = SYNC_SECRET
Optional: Syncserver aus dem Internet erreichbar
Mit obigen Einstellungen ist der Syncserver im lokalen Netzwerk unter der Adresse http://IP_des_SERVER:5000 erreichbar. Mittels Apache Reverse Proxy ist es möglich, den Syncserver auch aus dem Internet erreichbar zu machen und die Daten SSL verschlüsselt zu übertragen.
vi /etc/apache2/sites-enabled/ffsync_https.conf
Folgende Zeilen einfügen:
- Apache 2.2:
<VirtualHost *:443> ServerName ffsync.domain.org ProxyRequests Off <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass / http://IP_des_SERVER:5000/ <Location /> ProxyPassReverse / </Location> SSLEngine on SSLProxyEngine On SSLCertificateFile /etc/ssl/CA/certs/wildcard.pem </VirtualHost>
- Apache 2.4:
<VirtualHost *:443> ServerName ffsync.domain.org ProxyRequests Off <Proxy *> Require all granted </Proxy> ProxyPass / http://IP_des_SERVER:5000/ <Location /> ProxyPassReverse / </Location> SSLEngine on SSLProxyEngine On SSLCertificateFile /etc/ssl/CA/certs/wildcard.pem </VirtualHost>
Apache2 neu starten:
/etc/init.d/apache2 restart
Startskript
vi /etc/init.d/ffsync
Folgende Zeilen einfügen:
#! /bin/sh ### BEGIN INIT INFO # Provides: mozillasync # Required-Start: $remote_fs $network $syslog # Required-Stop: $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Mozillasync startscript. ### END INIT INFO DIR=/opt/syncserver DAEMON="$DIR/local/bin/gunicorn" OPTIONS="--paste $DIR/syncserver.ini" PID=`pidof "$DIR/local/bin/python2"` case "$1" in start) if [ -z $PID ]; then echo "Starting Firefox-Sync" $DAEMON $OPTIONS > /dev/null & else echo "Firefox-Sync already running" fi ;; stop) if [ -z $PID ]; then echo "Firefox-Sync not running" else echo "Stopping Firefox-Sync" kill -9 $PID fi restart) $0 stop sleep 1 $0 start ;; esac
Skript ausführbar machen:
chmod +x /etc/init.d/ffsync
Autostart des Syncserver beim Systemstart:
update-rc.d ffsync defaults
Syncserver starten
/etc/init.d/ffsync start
Client Konfiguration
Für die Synchronisation ist ein Mozialla-Account erforderlich.