Bookmarks sychronisieren mit Firefox Sync

Ein Rechner am Arbeitsplatz, einer am privaten Schreibtisch und dann noch ein Handy: die Geräte mit welchen man das Internet nutzen kann sind vielfältig und verteilt. Möchte man dann beim Surfen die gleiche Lesezeichensammlung auf allen Geräten nutzen ist guter Rat teuer.

Aus diesem Grund ist für Firefox 3.6 seit einiger Zeit der Dienst Firefox Sync (ehemals Weave) verfügbar. Damit ist es möglich Lesezeichen, Passwörter, Einstellungen, die Browser-History und auch geöffnete Tabs zwischen unterschiedlichen Rechnern zu sychronisieren. Die Technologie, die für Firefox in der Version 3.6 noch ein Plugin erfordert, soll in Firefox 4.0 direkt integriert sein. Die Daten werden dann entweder in einer Mozilla-Datenbank oder auch auf dem eigenen Server gespeichert. Hierfür existiert eine freie Implementierung mit PHP und Mysql als Datenbank. Dabei sind zwei Dienste zu installieren, zum einen ein Dienst zur Nutzerverwaltung und dann noch der eigentliche Synchronierungsdienst. Notwendige Dokumentation findet sich unter Weave-API.

Zur Installation des Servers auf einem Ubuntu-Server (LAMP Installation vorausgesetzt) installiert man Mercurial

aptitude install mercurial

legt das Wurzelverzeichnis für den Synchronisierungsdienst an

mkdir -p /srv/sync; cd /srv/sync

Kopiert die Quellen für den Dienst zur Nutzerverwaltung

hg clone http://hg.mozilla.org/services/reg-server/

und die Quellen für den eigentlichen Sync-Dienst

hg clone http://hg.mozilla.org/services/sync-server/

legt die Datenbanken und Nutzer für Mysql an

mysql -u root -p

mysql> CREATE DATABASE IF NOT EXISTS sync_user;
mysql> CREATE DATABASE IF NOT EXISTS sync_content;

mysql> GRANT ALL ON sync_user.* TO sync@localhost IDENTIFIED BY "pass";
mysql> GRANT ALL ON sync_content.* TO sync@localhost IDENTIFIED BY "pass";

mysql> use sync_user;

mysql> CREATE TABLE `users` (
  id int(11) NOT NULL PRIMARY KEY auto_increment,
  username varbinary(32) NOT NULL,
  password_hash varbinary(128) default NULL,
  email varbinary(64) default NULL,
  status tinyint(4) default '1',
  alert text,
  reset varchar(32),
  reset_expiration datetime
) ENGINE=InnoDB;

mysql> use sync_content;

mysql> CREATE TABLE `collections` (
  `userid` int(11) NOT NULL,
  `collectionid` smallint(6) NOT NULL,
  `name` varchar(32) NOT NULL,
  PRIMARY KEY  (`userid`,`collectionid`),
  KEY `nameindex` (`userid`,`name`)
) ENGINE=InnoDB;

mysql> CREATE TABLE `wbo` (
  `username` int(11) NOT NULL,
  `collection` smallint(6) NOT NULL default '0',
  `id` varbinary(64) NOT NULL default '',
  `parentid` varbinary(64) default NULL,
  `predecessorid` varbinary(64) default NULL,
  `sortindex` int(11) default NULL,
  `modified` bigint(20) default NULL,
  `payload` longtext,
  `payload_size` int(11) default NULL,
  `ttl` int(11) default '2100000000',
  PRIMARY KEY  (`username`,`collection`,`id`),
  KEY `modified` (`username`,`collection`,`modified`),
  KEY `size_index` (`username`,`payload_size`),
  KEY `ttl_idx` (`ttl`)
) ENGINE=InnoDB;

Anschließen muss man nur noch ein paar Konfigurationsdateien kopieren und editieren:

cd /srv/sync/reg-server/
cp weave_user_constants.php.dist weave_user_constants.php
# hier eintragen von Datenbank, Nutzer, Password und Salt für reg-server

cd /srv/sync/sync-server/
cp default_constants.php.dist default_constants.php
# hier eintragen von Datenbank, Nutzer, Password und Salt und extra nochmal für reg-server

Zum Abschluss ist ein Virtual Hosts (geschützt durch SSL) für den Webserver anzulegen. In dessen Konfigurationsteil werden dann die Quellen aktiviert (Neustart nicht vergessen):

Alias /user/1.0 /srv/sync/reg-server/1.0/index.php
Alias /user/1 /srv/sync/reg-server/1.0/index.php

Alias /1.1 /srv/sync/sync-server/1.1/index.php
Alias /1.0 /srv/sync/sync-server/1.1/index.php

Abschließend setzt man noch die Rechte für die Quellen

chown -R www-data:www-data /srv/sync/

und installiert im Firefox das Sync-Plugin. Die Konfiguration des Plugins gestaltet sich dann einfach und schließlich ist man in der Lage seine Bookmarks über unterschiedliche Geräte mit Firefox zu synchronisieren.

Keine ähnlichen Artikel gefunden.

6 Kommentare zu “Bookmarks sychronisieren mit Firefox Sync”


  • Wie heisst das Plugin an der Seite ? Das brauche ich!

  • Ich benutze unterschiedliche Plugins in der Seitenleiste. flickrRSS zeigt die Photos an, Twitter kommt als RSS-Feed über WordPress, Facebook und Xing sind einfache HTML-Schnipsel und auch der Rest ist mit Bordmitteln umgesetzt.

  • hallo,

    danke für die anleitung, aber beim anlegen eines users und der captcha überprüfung gibts einen fehler und von da aus gehts leider nicht weiter. kann man die überprüfung irgendwie ausschalten oder umgehen?

    mfg mario

  • edit, nachdem ich die rechte neu gemacht habe gehts zwar weiter, aber er schreib nix in die datenbank, vielleicht hat das ja auch jemand und weiß woran das liegt

  • Hallo,

    ich konnte die ganze Installation beider Dienste hindurch folgen. Jedoch scheitere ich daran:

    1)
    Einen neuen User anzulegen.

    2)
    Meinen Firefox zu konfigurieren.

    Die API hilft mir nicht wirklich weiter :(

    Wärst Du so nett diesen Prozess exemplarisch hier zu dokumentieren?

    Ich sage schonmal: Vielen Dank!

  • Recaptcha benutze ich nicht. Das Anlegen eines neuen Nutzers lief bei mir relativ einfach, ich habe direkt die Funktion des Sync-Plugins zur Anmeldung im Browser nutzen können. Dazu muss die entsprechende Adresse (im Beispiel der vollständige Domain-Name, aber mit leerem Pfad) des eigenen Virtual-Hosts bei der Registrierung verwendet werden (Nicht der Firefox-Server). Hier sollte unterhalb des Eingabefeldes keine Fehlermeldung angezeigt werden, da der Server direkt bei der Eingabe geprüft wird. Anschließend war nur Mail-Adresse und Password einzugeben.

    Gegenüber der Konfiguration für die Registrierung die ich verwende habe ich folgendes verändert:
    < if (!defined('WEAVE_MYSQL_AUTH_DB')) { define('WEAVE_MYSQL_AUTH_DB', 'weave'); }
    < if (!defined('WEAVE_MYSQL_AUTH_USER')) { define('WEAVE_MYSQL_AUTH_USER', 'weave'); }
    < if (!defined('WEAVE_MYSQL_AUTH_PASS')) { define('WEAVE_MYSQL_AUTH_PASS', 'weave'); }
    ---
    > if (!defined(‘WEAVE_MYSQL_AUTH_DB’)) { define(‘WEAVE_MYSQL_AUTH_DB’, ‘db_fuer_sync_users’); }
    > if (!defined(‘WEAVE_MYSQL_AUTH_USER’)) { define(‘WEAVE_MYSQL_AUTH_USER’, ‘username’); }
    > if (!defined(‘WEAVE_MYSQL_AUTH_PASS’)) { define(‘WEAVE_MYSQL_AUTH_PASS’, ‘pass’); }
    76c76
    < #if (!defined('WEAVE_SHA_SALT')) { define('WEAVE_SHA_SALT', 'salt goes here'); }
    ---
    > if (!defined(‘WEAVE_SHA_SALT’)) { define(‘WEAVE_SHA_SALT’, ‘das_ist_der_salt’); }
    87c87
    < #if (!defined('WEAVE_REGISTER_USE_CAPTCHA')) { define('WEAVE_REGISTER_USE_CAPTCHA', 0); }
    ---
    > if (!defined(‘WEAVE_REGISTER_USE_CAPTCHA’)) { define(‘WEAVE_REGISTER_USE_CAPTCHA’, 0); }

Kommentar schreiben