Ich habe nun schon so einiges ueber einen selbstgehosteten Sync-Service fuer Firefox geschrieben:
- Firefox Lesezeichen ueberall – Selfmade!
- Howto: Der eigene Weave Minimal Server / Firefox Sync
- Update des eigenen Firefox Sync Servers
Nachdem ich seit neustem Besitzer eines Google Nexus 4 bin und gerne Firefox Sync auch unter Android benutzen moechte, war ich gezwungen mein aktuelles Setup zu aktualisieren auf die Originalimplementierung von Mozilla. Vorher wurde mir auf meinem Handy immer von Firefox gesagt, dass diese Version von Sync nicht mehrere Geraete unterstuetzt.
Ich bin auf diese Anleitung gestossen und unter Debian sieht das ganze wie folgt aus:
Installation
Installation von Paketen:
$ aptitude install python-virtualenv sqlite3 mercurial |
Einrichten eines Benutzeraccounts:
$ adduser --system --home /opt/ffsync --shell /bin/false --group ffsync |
Erstellen der benoetigten Verzeichnisse:
$ su ffsync $ cd /opt/ffsync $ mkdir {data,tmp} $ chmod 775 tmp $ hg clone https://hg.mozilla.org/services/server-full $ cd server-full $ make build |
Konfiguration
Editieren und Anpassen der folgenden Konfigurationsdateien:
sync.wsgi
os.environ['PYTHON_EGG_CACHE'] = '/opt/ffsync/tmp/python-eggs' |
developement.ini
[handler_syncserver_errors] args = (‘/opt/ffsync/tmp/sync-error.log’,) |
etc/sync.conf
[storage] sqluri = sqlite:////opt/ffsync/data/sync.db [auth] sqluri = sqlite:////opt/ffsync/data/sync.db [nodes] fallback_node = http://sync.example.net/ |
Ich habe hier nun noch die Rechte fuer den Ordner gesetzt:
$ chown -R ffsync.www-data /opt/ffsync |
Apache
Zum Schluss noch Apache einrichten um darueber alles laufen zu lassen. Dafuer:
$ aptitude install libapache2-mod-wsgi |
Und einen entsprechenden vhost erstellen:
<VirtualHost *:80> ServerName sync.example.net ServerAdmin webmaster@example.net DocumentRoot /opt/ffsync/server-full CustomLog /var/log/apache2/ffsync_access.log combined ErrorLog /var/log/apache2/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 </VirtualHost> |
Nach einem Neustart von Apache konnte ich dann das Geraet trennen und anschliessend mich neu mit dem Server verbinden. Achtet auf den Slash am Ende der URL. Es wurde alles automatisch synchronisiert. Auch die Synchronisation mit Firefox auf meinem Android Handy klappte problemlos.
Zum Schluss habe ich noch die Funktion deaktiviert, mit der sich neue Benutzer selbststaendig anmelden koennen. Dafuer in der /opt/ffsync/server-full/etc/sync.conf noch in der auth Sektion die entsprechende Option einkomentieren
[auth] allow_new_users = false |
Danke nochmal an OpenShots an dieser Stelle fuer die Anleitung :-)
Hey, tolle Anleitung! Hätte noch zwei Fragen:
1) Welche Ports müssen für den Sync-Betrieb in der Firewall offen sein? (reicht 80?)
2) Gibt es eine Möglichkeit, Sync-User gleich Unix-Account (lokale User / LDAP / PAM) zu setzen?
Bei mir funktioniert es nicht:
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.1.6 -Iscrypt-1.1.6/lib -Iscrypt-1.1.6/lib/scryptenc -Iscrypt-1.1.6/lib/crypto -Iscrypt-1.1.6/lib/util -I/usr/include/python2.6 -c src/scrypt.c -o build/temp.linux-i686-2.6/src/scrypt.o -O2
src/scrypt.c:27:20: error: Python.h: Datei oder Verzeichnis nicht gefunden
src/scrypt.c:73: error: expected ‚=‘, ‚,‘, ‚;‘, ‚asm‘ or ‚__attribute__‘ before ‚init_scrypt‘
src/scrypt.c:74: error: expected ‚=‘, ‚,‘, ‚;‘, ‚asm‘ or ‚__attribute__‘ before ‚PyInit__scrypt‘
error: command ‚gcc‘ failed with exit status 1
ValueError: unknown url type: -U/scrypt/
[fail] [fail]
make: *** [build] Fehler 1
Moin,
mir ist grad aufgefallen, dass Du bei der Liste der zu installierenden Pakete oben noch das „python-dev“ vergessen hast. Ohne die klappt das Builden nicht wirklich :)
build-essential wird wegen gcc auch benötigt, hat bei mir leider nicht geklappt weshalb ich nach einer anderen Lösung gesucht habe.
Das ganze gibts auch einfach als php
https://github.com/balu-/FSyncMS
Anleitung dazu:
http://www.ohnekontur.de/2011/07/24/how-to-install-fsyncms-firefox-sync-eigener-server/