mecker. mecker. mecker.

weave-minimal Update

18.02.2012, 22:41

Ich habe heute wieder etwas an meinem server-full-Fork weave-minimal gebastelt und habe es geschafft, die Re­gis­trie­rung direkt im Firefox zu er­mög­li­chen. Der al­ter­na­ti­ve Weg über die CLI mit er­wei­ter­tem Nut­zer­na­men-Spektrum existiert natürlich weiterhin. Än­de­rungs­ka­ta­log:

  • direkte Re­gis­trie­rung im FF
  • ru­di­men­tä­rer /misc/1.0/captcha_html-Support (d.h. ohne reellen Nutzen)
  • mehr standard-konform
  • offene Re­gis­trie­rung per Default, einfach ENABLE_REGISTER auf False setzen

Spielwiese

Unter https://posativ.org/weave/ läuft ein Sync-Server mit einer offenen Re­gis­trie­run­g; wer mir also vertraut (Passwort wird gesalzen als truncated sha1-Hash ge­spei­chert) oder einfach nur Testen will, ob mein Server was taugt – benötigt allerdings CAcert-Vertrauen, ist hier gerne willkommen.

Linkschleuder #14

20.01.2012, 10:43
  • Cryp­to­gra­phic Key Length Re­com­men­da­ti­on – im Seminar auf­ge­schnapp­t; empfohlene Schlüs­sel­län­gen einiger Behörden.
  • wea­ve­cli­ent-chromium-continued – nicht getestet, aber wäre cool, wenn das funk­tio­niert.
  • puppet – au­to­ma­ti­sier­tes Einrichten eines *nix-Systems mit einer Ruby-DSL.

    „Puppet, an automated ad­mi­nis­tra­ti­ve engine for your *nix systems, performs ad­mi­nis­tra­ti­ve tasks (such as adding users, installing packages, and updating server con­fi­gu­ra­ti­ons) based on a cen­tra­li­zed spe­ci­fi­ca­ti­on.“
  • start-stop-daemon – ein Debian/Ubuntu-Tool, um das Schreiben von eigenen Dämonen deutlich zu erleichten (Beispiel).
  • Watch – A tiny C program used to pe­ri­o­di­cal­ly execute a command. (via The Changelog)
  • dcrypt.itDLC Ent­schlüs­se­lung mit ein paar mehr Input-Methoden als mein Angebot.
  • Polipo – a small and fast caching web proxy. Sowas wie squid, aber eher für Single-User/Home-Betrieb gedacht. Werd’ ich mir mal näher anschauen.
  • ettercap – eine Suite für Man-in-the-Middle Angriffe im LAN.

The first time I tried to get a custom Firefox Sync server running, I used server-full and even though I know python (the server is written in python), the con­fig­u­ra­tion was highly difficult. There’s no click & install. You have to choose between Redis, MySQL, PostgreSQL and Sqlite3. For most people, sqlite3 is quite fine. Sqlite and sync-server config files have summed up almost 80 LoC. And you still don’t know how to au­then­ti­cate unless you have already a LDAP server running.

There are some al­ter­na­tives: ffpyweave, django sync server and formerly weave-minimal too, written in PHP but not supported anymore. But I’ve forked the official server-full (well I completely rewrote) to a more easier in­stal­la­tion without multiple backends but completely relying on a simple sqlite database.

Re­quire­ments

  • a web server with proxy or FastCGI/WSGI support
  • python runtime (>= 2.5)
  • shell access

In­stal­la­tion

$ easy_install -U werkzeug
 
$ wget https://github.com/posativ/weave-minimal/tarball/master -O weave-minimal.tar.gz
$ tar xfz weave-minimal.tar.gz
$ cd posativ-weave-minimal

Usage

Currently, Firefox does not you create a user account on your own server. I filed a bug weit­er­lesen.

Vor gut zwei Wochen habe ich fest­ge­stellt, dass es irgendwie unmöglich ist, einen eigenen Server für Firefox Sync zu nehmen. Aber so unmöglich ist es dann gar nicht. Wenn man weiß, wie behindert das Setup ist, dann ist das kin­der­leicht.

Was nicht geht: ein neues Konto auf dem eigenen Server anlegen. Warum? Weil Mozilla diese Service-URL auth.services.mozilla.com fest in den Firefox kodiert hat. Die API, um sich zu re­gis­trie­ren, hängt aber an obiger URL + /user, genauer gesagt PUT /user/1.0/mein_username. Da sich die URL für den Re­gis­trie­rungs­ser­ver (der Server ist in zwei Teil­pro­jek­te unterteilt, server-reg und server-full) nicht einmal in der about:config einstellen lässt, wird dieser Workaround genutzt. Wir wissen ja, 89 people have this problem. I have this problem, too!

Workaround in Firefox

Anstatt sich ein neues Nut­zer­kon­to zu klicken, wählt man statt­des­sen aus, dass man bereits ein Konto hat. Dafür wird allerdings wirklich ein Konto benötigt, was zu einem unschönen Weg in die Kom­man­do­zei­le führt (oder ins Web­in­ter­face, sofern der Server derartiges anbietet). Nachdem man sich auf seinem Server einen Nutzer re­gis­triert hat, geht’s weiter. Anstatt das Gerät mit dem drei-stelligen Code zu aktivieren wei­ter­le­sen.

So habe ich heute Firefox Weave Sync ken­nen­ge­lernt. Ich dacht mir, hey ich hab’ ‘nen Server, oh und hey, der Sync-Server ist in Python ge­schrie­ben, das wird bestimmt kin­der­leicht!1 Aber die Community Policy, die Mozilla da seit geraumer Zeit fährt, macht jegliche Offenheit des Source Codes sinnlos, weil es einfach nicht für den kleinen Mann do­ku­men­tiert ist. Das ist so miserabel do­ku­men­tiert, dass ich ohne Studieren des Source Codes nicht weiß, ob der server-full überhaupt dafür konzipiert ist, ge­schlos­sen für einen, oder maximal auch zwei Nutzer zu laufen. Denn ganz sicher werde ich für einen Single-User-Betrieb keine LDAP-Au­then­ti­fi­zie­rung aufsetzen.

Früher™ gab es ja mal diesen diesem Minimal Server. Der scheint aufgrund von API-Änderungen nicht mehr ganz zu funk­tio­nie­ren bzw. ist sowieso deprecated (ist ja logisch, warum sowas kleines wei­ter­füh­ren, wenn man mit LDAP gleich die ganze Welt verwalten kann). Von einem Server in PHP hab’ auch ich gehört. Ein (älteres) single-file CGI-Skript in python gibt’s ebenfalls. Ob das funk­tio­niert, weiß ich nicht. Einen Django-Klon gibt’s auch, das ist aber die erste genannte Variante mit denselben Zielen, Millionen von Nutzern zu verwalten, nur mit Django. Nicht wei­ter­le­sen.

written by posativImpressum

by-nc-sa