Sync-Server 1.1 (alt) für Firefox einrichten

Update: Diese Anleitung bezieht sich auf den „alten“ Sync-Server (v1.1). D.h. jenen welcher schon seit Jahren benutzt werden kann und in neuen Firefox-Versionen (seit 29?) als „alt“ markiert ist. Eine Anleitung zum neuen Sync-Server (v1.5) folgt hoffentlich bald.

Diese Anleitung folgt im Prinzip Schritt für Schritt der Anleitung von Mozilla selbst (Quelle: http://docs.services.mozilla.com/howtos/run-sync.html). Der Inhalt ist jedoch auf das für meine Installation wesentliche reduziert.

Installation

Zuerst stellen wir sicher, dass die notwendigen Pakete installiert sind bzw. installieren diese:

sudo aptitude install python-dev mercurial sqlite3 python-virtualenv libapache2-mod-wsgi

Anschließend legen wir einen neuen User an, unter welchem der Sync-Service laufen darf.

sudo adduser ffsync

Danach erstellen wir Verzeichnisse für die SQLite-Datenbank welche wir benutzen möchten (in /var) sowie ein Installationsverzeichnis für den Sync-Service (in /opt),

sudo mkdir /var/ffsync
sudo mkdir /opt/ffsync

In /opt können wir nun den Service installieren. D.h. zuerst Klonen des Quellcodes mittels Mercurial und anschließend kompilieren des selben.

cd /opt/ffsync
sudo hg clone https://hg.mozilla.org/services/server-full
cd server-full
sudo make build

Danach stellen wir noch sicher, dass die angelegten Verzeichnisse dem Sync-User gehören.

sudo chown ffsync:www-data -R /var/ffsync /opt/ffsync
Konfiguration

Nun können wir den Sync-Service konfigurieren. Dazu editieren wir die Datei /opt/ffsync/server-full/etc/sync.conf und stellen dort folgende Konfigurationen sicher:

[storage]
sqluri = sqlite:////var/ffsync/sync.db
[auth]
sqluri = sqlite:////var/ffsync/sync.db
[nodes]
fallback_node = https://sync.domain.tld/

Betrieb über Apache-Webserver

Der Service kann selbständig betrieben werden. Da ich aber bereits über einen Apache-Webserver verfüge, soll das Service über den Apache geroutet werden.

Dazu erstellen wir einen neuen Virtuellen Host in Apache:

cd /etc/apache2/sites-available
sudo vim ffsync-ssl

mit folgendem Inhalt:

<VirtualHost *:443>

ServerName sync.domain.tld
ServerAdmin webmaster@example.net
DocumentRoot /opt/ffsync/server-full

CustomLog {%APACHE}/ffsync_access.log combined
ErrorLog {%APACHE}/ffsync_error.log

Order deny,allow
Allow from all

WSGIProcessGroup ffsync
WSGIDaemonProcess ffsync user=ffsync group=ffsync processes=2 threads=25
WSGIPassAuthorization On
WSGIScriptAlias / /opt/ffsync/server-full/sync.wsgi

 SSL-Teile wie in anderen VHosts

</VirtualHost>

Anschließend starten wir noch den Apache neu und Firefox kann synchronisieren.

sudo service apache2 reload

Erweiterte Konfiguration und Sicherheit

Der Service steht in dieser Konfiguration für Neuregistrierungen offen. Zu Beginn ist das ja gewünscht damit wir unsere User anlegen können. Nach der Anlage meiner privaten User jedoch, sollte eine weitere Registrierung unterbunden werden.

Dazu editieren wir erneut die Datei /opt/ffsync/server-full/etc/sync.conf und fügen folgenden Abschnitt hinzu:

[auth]
allow_new_users = false

Danach ist der Service für Fremde geschlossen.