[tahoe-lafs-trac-stream] [tahoe-lafs] #2144: Tahoe-LAFS as website hosting storage backend

tahoe-lafs trac at tahoe-lafs.org
Sat Dec 28 16:48:53 UTC 2013


#2144: Tahoe-LAFS as website hosting storage backend
---------------------------------------------+---------------------------
 Reporter:  amontero                         |          Owner:
     Type:  enhancement                      |         Status:  new
 Priority:  normal                           |      Milestone:  undecided
Component:  contrib                          |        Version:  1.10.0
 Keywords:  website webdav twisted research  |  Launchpad Bug:
---------------------------------------------+---------------------------
 While playing with Tahoe, I've done a bit of research out of curiosity
 about one possible usage scenario, that instead of keeping in my notes I
 think it is a UseCase of interest.

 I was thinking in a Tahoe-LAFS grid being the storage backend for a web
 app served by common httpd servers, such as nginx.
 Depending on your app requirements, you grid can range from a read-only
 cap webroot (that could be tamper-proof for free!) to more complex
 writtable grids, depending on your app.
 Your web server recieves a website GET and, instead of reading from a
 local filesystem directory, it reads from a dircap as the webroot. It
 could even execute scripts, creating a webroot not hackable if even the
 webserver is compromised. As far as the script cares, it's being run from
 a readonly filesystem.

 Tahoe-LAFS would be the perfect match for distributedly hosting static
 sites inside anonymity networks, like Tor.

 To accomplish this, I've done a bit of research and nginx looks like a
 good fit and well documented.
 The approaches I've found are:
 * lafs-rpg:
  * Can not do this *as of now*. Nejucomo provided helpful comments at
 https://bitbucket.org/nejucomo/lafs-rpg/issue/12/run-tahoe-hosted-scripts
  * However, it could be a good starting point, perhaps. Just adding some
 more nginx config wizardry could be the way, not sure.
 * FUSE under nginx
  * Available now.
  ** Performance?
  * Documented at http://uwsgi-
 docs.readthedocs.org/en/latest/tutorials/ReliableFuse.html
 * uWSGI
  * Docs for nginx: http://uwsgi-docs.readthedocs.org/en/latest/Nginx.html
  * The newest, sexiest and cloudfull kid on the block.
  * Also available under Apache: http://uwsgi-
 docs.readthedocs.org/en/latest/Apache.html
  * There is nothing done for nginx, but there are even plugins available
 for:
   * GlusterFS: http://uwsgi-docs.readthedocs.org/en/latest/GlusterFS.html
   * GridFS: http://uwsgi-docs.readthedocs.org/en/latest/GridFS.html
 * Twisted:
  * To my knowledge, Tahoe is built on this lib. No Python knowledge here.
 Perhaps it has nothing to do.
  * If possible, this would be the closest to the grid?
  * Just found mentioned at:
   * http://uwsgi-docs.readthedocs.org/en/latest/DynamicApps.html
   * http://uwsgi-docs.readthedocs.org/en/latest/WebServers.html#twisted

 Alongside: could not this help achieve WebDAV, just using nginx's out-of-
 the-box? #451

 Now it's just an idea, maybe it's doable and just needs a howto. Since I
 haven't found none, at least linking this issue in the UseCases page could
 bring interested parties on the same page.

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2144>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list