Weave Minimal Server für Firefox Sync

Aus

Vorwort

Im Folgenden wird die Installation eines Weave Minimal Servers auf der Synology Diskstation beschrieben. Der Weave Minimal Server ermöglicht die Nutzung des Firefox Sync Mechanismus mit einem "Eigenen Server", so dass der Ort der Datenablage für die zu synchronisierenden Datenelemente (ja nach Konfiguration: Lesezeichen, Passworte, Einstellungen, Chronik und Tabs) die eigene Diskstation ist.

Voraussetzungen

  • Apache Server (vorzugsweise) mit SSL-Unterstützung
  • PHP mit sqlite-, mbstring- und json- Unterstützung (beides mindestens ab Firmware DSM 3.0 - 1337 gegeben, eventuell auch schon ältere Stände - nicht geprüft!)
  • Weave Minimal Server Software - Download (Link im vorletzten Absatz“here“): http://tobyelliott.wordpress.com/2009/09/11/weave-minimal-server/
  • Zugang zur Diskstation mit SSH / Telnet (z.B. Putty) als root-user

Server einrichten

  • das heruntergeladene Archiv "weave_minimal.tgz" entpacken. (z.B. mit Midnight Commander auf der DS oder Total Commander auf Windows-PC)
  • das entpackte Verzeichnis in ein Verzeichnis ausserhalb des Web-Space kopieren welches im "open_basedir" bekannt gemacht ist.

HINWEIS: Das hier in früheren Beschreibungen angegebene Verzeichnis /usr/syno/synoman/ wird bei einem Firmware-Update überschrieben, /usr/local/ bleibt hingegen erhalten.

im hier verwendeten Beispiel sollte es dann so aussehen:

> pwd
/usr/local/php/weaveminiserver
> ll
total 372
drwxr-xr-x  2 root   root     4096 Oct 20 17:29 .
drwxr-xr-x 11 root   root     4096 Oct 13 13:32 ..
-rwxr-xr-x  1 root   root      656 Oct 12 18:31 README
-rwxr-xr-x  1 root   root     2694 Oct 12 18:31 create_user
-rwxr-xr-x  1 root   root    13800 Oct 12 18:31 index.php
-rwxr-xr-x  1 root   root     6558 Oct 12 18:31 weave_basic_object.php
-rwxr-xr-x  1 root   root    18386 Oct 12 18:31 weave_storage.php
>
  • für das neu erstellte Verzeichnis Schreibrechte setzen
> chmod 777 /usr/local/php/weaveminiserver
  • die User-Apache-Konfiguration (/usr/syno/apache/conf/httpd.conf-user) im Modul Aliase um den Eintrag "Alias /weave /[Pfad zum Weave-Verzeichnis]/index.php" erweitern.
> vi /usr/syno/apache/conf/httpd.conf-user
.
.
<IfModule alias_module>
 #
 # Redirect: Allows you to tell clients about documents that used to
 # exist in your server's namespace, but do not anymore. The client
.
. 
 # need to provide a <Directory> section to allow access to
 # the filesystem path.

Alias /weave /usr/local/php/weaveminiserver/index.php
.
.
  • Restart des User-Apache
> /usr/syno/etc.defaults/rc.d/S97apache-user.sh restart
/usr/syno/etc.defaults/rc.d/S97apache-user.sh: user httpd stopped
Start User Apache Server .....
/usr/syno/etc.defaults/rc.d/S97apache-user.sh: user httpd started
>

alternativ:

> /usr/syno/etc.defaults/rc.d/S97apache-user.sh stop
/usr/syno/etc.defaults/rc.d/S97apache-user.sh: user httpd stopped
> /usr/syno/etc.defaults/rc.d/S97apache-user.sh start
Start User Apache Server .....
/usr/syno/etc.defaults/rc.d/S97apache-user.sh: user httpd started
>
  • anschließend im Firefox-Browser in der Adressleiste folgende URL aufrufen
https://<servername>/weave/1.0/blah/info/collection
  • Es erscheint eine Login-Maske. Als Benutzername: "blah" und das Passwort: "garbage" eingeben. Das Login läuft auf Fehler. Danach kann man die Login-Maske schliessen. Im Ergebnis sollte jetzt im Weave-Verzeichnis die Datei "weave_db" angelegt worden sein.
> ll
total 372
drwxrwxrwx  2 root   root     4096 Oct 20 17:29 .
drwxr-xr-x 11 root   root     4096 Oct 13 13:32 ..
-rwxr-xr-x  1 root   root      656 Oct 12 18:31 README
-rwxr-xr-x  1 root   root     2694 Oct 12 18:31 create_user
-rwxr-xr-x  1 root   root    13800 Oct 12 18:31 index.php
-rwxr-xr-x  1 root   root     6558 Oct 12 18:31 weave_basic_object.php
-rw-r--r--  1 nobody nobody 314368 Oct 20 17:29 weave_db
-rwxr-xr-x  1 root   root    18386 Oct 12 18:31 weave_storage.php
>
  • Nun ist noch mit Hilfe des PHP-Script "create_user" im Weave-Verzeichnis ein Synchronisations-User einzurichten. HINWEIS: für "username" nur kleine Alphazeichen verwenden. (siehe auch unter "Bekannte Probleme")
> pwd
/usr/local/php/weaveminiserver
> php create_user
(c)reate, (d)elete or change (p)assword: "c"
Please enter username: "user"
Please enter password: "password"
>

Die Installation des Weave-Minimal-Server ist damit abgeschlossen. Es muß noch der Firefox Sync Client konfiguriert werden.

Firefox Sync Client konfigurieren

  • im Firefox bis 3.x muß das AddOn Firefox Sync installiert werden, ab Firefox 4.x ist die Funktion standardmäßig integriert
  • im Firefox unter "Extras" den Menüpunkt "Sync einrichten" auswäheln
  • die Auswahl für das Einrichten eines vorhandenen Sync-Konto wählen (das Einrichten eines neuen Sync-Users wird offensichtlich durch den Weave-Minimal-Server nicht unterstützt)
  • "Eigenen Server" auwählen, sowie Server-URL (https://<servername>/weave/) und User / Passwort wie mit PHP-Script "create_user" angelegt eingeben (vgl. letzten Punkt unter "Server einrichten")
  • Anschließend wird eine Verbindung zum Weave-Sever aufgebaut und zur Eingabe des SyncKey aufgefordert. Bei dem ersten einzurichtenden Client kann ein möglichst langer kryptischer Key vergeben werden. Ab dem zweiten und allen weitern Clients ist dieser Key dann zu nutzen. (Es gibt auch ein Funktion zum generieren des SyncKey.)

Bekannte Probleme

  • Im "Benutzernamen" des Syncronisations-User dürfen keine Großbuchstaben oder Sonderzeichen enthalten sein. Ein solcher Benutzer kann zwar mit dem PHP-Script "create_user" angelegt werden, die Anmeldung durch den Client führt jedoch zu einem Login-Fehler.
  • Nach einem Firmware-Update der DS muß der Alias-Eintrag in der httpd.conf-user neu eingetragen und der Apache restartet werde -> Verbesserungshinweise sind herzlich willkommen!