Firefox Sync Server auf Debian installieren

Wenn man mit mehr als einem Rechner arbeitet oder noch Tablet benutzt bekommt man schnell das Problem das man die Bookmarks und Historie des Browsers auf allen Geräten gleich halten möchte. Es gibt zwar eine Reihe von Diensten im Internet die einem so etwas bieten aber mit der Ablage von solch persönlichen Daten an einen Dienstleister habe ich so meine Schwierigkeiten. Bisher habe ich dazu xmarks verwendet. Der öffentliche Service ist zwar so gut wie tot aber das Plugin erlaubte immer noch die Nutzung eines lokalen FTP Servers. Langfristig wollte ich davon also weg kommen. Firefox bietet seit Version 4 auch so etwas aber bisher dachte ich das auch dies nur mit dem externen Firefox Server geht. Wie ich jetzt rausgefunden habe kann man so einen Sync Server auch lokal betreiben. Mit diesen Schritten konnte ich das bewerkstelligen.

Die Dokumentation hierzu gibt da. Vorraussetzungen: Debian mit Mysql. Zuerst muste ich noch ein paar Pakete installieren.

apt-get install libapache2-mod-wsgi python-dev mercurial python-virtualenv php-json libmysqlclient-dev

Dann im Web Server Verzeichnis den Synchronisation-Server Code runterladen

cd /var/www/
mkdir ff-sync && cd ff-sync
hg clone https://hg.mozilla.org/services/server-full
cd server-full
make build

Damit ist man schon fertig um einen ersten Test mit einer "Development" umgebung zu starten

/var/www/ff-sync/server-full# bin/paster serve development.ini
Starting server in PID 5165.
serving on 0.0.0.0:5000 view at http://127.0.0.1:5000

Jetzt kann man im Firefox die Synchronisation einrichten

201112-ff-sync.pngIn dieser Konfiguration verwendet der Syncserver einen internen http Server. Der soll zwar für große Installation nicht produktiv genutzt werden aber für meine 2 Benutzer werde ich erstmal damit starten. Einzig die Datenbank Konfiguration habe ich geändert da in dieser einfach Konfiguration eine sqllite db im tmp Verzeichnis angelegt wird.

Um als Datenbank MySQL zu verwenden muß man zuerst folgenden Befehl starten

    bin/easy_install Mysql-Python

Die Datenbank anlegen. (Bitte Namen und Kennwörter an die eigenen Sicherheitsbedürfnisse anpassen)

mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17121
.......
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database sync;
Query OK, 1 row affected (0.01 sec)

mysql> CREATE USER 'sync'@'localhost' IDENTIFIED BY 'sync';
Query OK, 0 rows affected (0.06 sec)

mysql> grant all on sync.* to 'sync'@'localhost';
Query OK, 0 rows affected (0.00 sec)

Und noch dem Sync Server sagen wo die Datenbank liegt

edit etc/sync.ini

[storage]
backend = syncstorage.storage.sql.SQLStorage
sqluri = mysql://sync:sync@localhost/sync
standard_collections = false
use_quota = true
quota_size = 5120
pool_size = 100
pool_recycle = 3600
reset_on_return = true
display_config = true
create_tables = true

[auth]
backend = services.auth.sql.SQLAuth
sqluri = mysql://sync:sync@localhost/sync