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.