Endlich die Bookmarks auf allen Firefox Browser haben, die man benutzt. Das ist seit Firefox 4 möglich.

Bis anhin hat mich immer davon abgehalten, dass meine Daten auf einem fremden Server liegen und ich nicht weiss, was damit passiert (auch wenn sie verschlüsselt sind). Irgendwie bin ich vor wenigen Wochen über die Mozilla Seite „Run your own Sync Server“ gestolpert, dass dieses Problem löst.

Mittlerweile habe ich den Sync Server auf einer Debian Squeeze Box installiert und er funktioniert. Gemacht habe ich das so:

Die nötigen Pakete installieren:

$ apt-get install python-dev mercurial sqlite3 python-virtualenv apache2-mpm-prefork libapache2-mod-wsgi make

Benutzer ffsync erstellen:

$ adduser --group --system --home /usr/local/firefox-sync-server --disabled-password ffsync

Den Apache User zu der Gruppe ffsync hinzufügen:

$ adduser www-data ffsync

Den User wechseln:

$ su - ffsync

Die Source Files herunterladen:

$ hg clone https://hg.mozilla.org/services/server-full

Die Ordner data und tmp erstellen

$ mkdir data tmp

Berechtigungen ändern

$ chmod 770 data tmp

Den Sync Server kompilieren

$ cd server-full

$ make build

Nun müssen noch einige Config Files angepasst werden. Die Pfade zeigen zumeist auf /tmp, was etwas ungeignet ist, um Benutzerdaten zu speichern.

$ vi sync.wsgi
[..]

os.environ[‚PYTHON_EGG_CACHE‘] = ‚/usr/local/firefox-sync-server/tmp/python-eggs‘

[..]

$ vi development.ini

[..]

[handler_syncserver_errors]
class = handlers.RotatingFileHandler
args = (‚/usr/local/firefox-sync-server/tmp/sync-error.log‘,)
[..]

$ vi etc/sync.conf

[..]

[storage]
backend = syncstorage.storage.sql.SQLStorage
sqluri = sqlite:////usr/local/firefox-sync-server/data/usersettings.db
[..]

[auth]
backend = services.auth.sql.SQLAuth
sqluri = sqlite:////usr/local/firefox-sync-server/data/usersettings.db

[..]

fallback_node = http://sync.mytestdomain.com/
[..]

Mit exit verlassen wir die User Shell und sind wieder root. Wir ändern die Login Shell von ffsync auf /bin/false.

$ usermod -s /bin/false ffsync

Das wsgi Modul aktivieren, falls das noch nicht automatisch passiert sein sollte:

$ a2enmod wsgi

Und einen neuen Apache Virtual Host erstellen:

$ vi /etc/apache2/sites-available/firefox-sync

<VirtualHost *:80>
ServerName sync.mytestdomain.com
ServerAdmin webmaster@mytestdomain.com

DocumentRoot /usr/local/firefox-sync-server/server-full

CustomLog ${APACHE_LOG_DIR}/firefox-sync-server_access.log combined
ErrorLog ${APACHE_LOG_DIR}/firefox-sync-server_error.log

<Directory /usr/local/firefox-sync-server/server-full>
Order deny,allow
Allow from all
</Directory>

WSGIProcessGroup ffsync
WSGIDaemonProcess ffsync user=ffsync group=ffsync processes=2 threads=25
WSGIPassAuthorization On
WSGIScriptAlias / /usr/local/firefox-sync-server/server-full/sync.wsgi
</VirtualHost>

Den Virtual Host aktivieren:

$ cd /etc/apache2/sites-enabled

$ ln -s ../sites-available/firefox-sync .

Apache neu starten:

$ apachectl configtest && /etc/init.d/apache restart

Und nun kann man im Firefox über Tools > Sync Now seinen Account einrichten.

Was ich dann noch machen werde, ist den Dienst nur verschlüsselt (HTTPS) anzubieten. Das dürfte keine Hexerei mehr sein.

« »