#2144 new enhancement

Tahoe-LAFS as website hosting storage backend — at Version 2

Reported by: amontero Owned by:
Priority: normal Milestone: undecided
Component: contrib Version: 1.10.0
Keywords: website webdav twisted research Cc:
Launchpad Bug:

Description (last modified by amontero)

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 use case 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 at /var/www, it reads from a dircap as the webroot. It could even execute scripts, making for a webroot dir not hackable even if 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. Lots of other usages might fit for web app farms, where you push code by changing the webroot caps of the currently served code to your newly and securely deployed code DIR-IMM cap. You can make them write files in a completely separate bucket-storage grid in a S3 fashion. Whatever your crazy app needs.

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:

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. Opening Tahoe-LAFS usages to webops community could be a huge boost.

Change History (2)

comment:1 Changed at 2013-12-28T16:53:34Z by amontero

  • Description modified (diff)

comment:2 Changed at 2013-12-28T17:48:26Z by amontero

  • Description modified (diff)
Note: See TracTickets for help on using tickets.