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.comDocumentRoot /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.
« ActiveSync AutoDiscover (mit Z-Push und Courier IMAP) FileVault2 Keyboard Layout beim Login / FileVault2 knacken »
Klasse, endlich die ganzen Kleinigkeiten die in dem offiziellen Tutorial gefehlt haben. Danke!
Vielen Dank für das Tutorial. Ich betreibe meinen Sync auf einem Sheevaplug und habe noch eine Ergänzung zu Deiner Anleitung. Da auf dem Sheevaplug auch noch eine Webseite läuft und das ganze per DynDNS angebunden ist, habe ich den Syncserver in ein Verzeichnis verbannt. Deshalb entfällt bei mir die Passage:
Order deny,allow
Allow from all
und der Scriptaufruf ändert sich in:
WSGIScriptAlias / /usr/local/firefox-sync-server/server-full/sync.wsgi
z.B. WSGIScriptAlias /mozillasync /usr/local/firefox-sync-server/server-full/sync.wsgi
Ja, in der Tat, wirklich nützlich diese Anleitung. Vielen Dank.
Ein Hinweis: JedeR, der die Adresse Eures Servers kennt, kann ihn dann benutzen.
Um das zu verhindern, kann man entweder mit Allow from den Zugriff auf bestimmte IPs begrenzen.
Ist natürlich mit DSL und Notebooks blöd. Deswegen läuft bei mir der VirtualHost auf der IP meines OpenVPN-Tunnelendpunkts und akzeptiert nur Anfragen aus diesem Netz.
Ich sehe gerade, es geht auch einfacher: 🙂
http://docs.services.mozilla.com/howtos/run-sync.html
You can disable creation of new accounts by setting auth.allow_new_users to false in the config file:
[auth]
allow_new_users = false