[tahoe-lafs-trac-stream] [tahoe-lafs] #2144: Tahoe-LAFS as website hosting storage backend
tahoe-lafs
trac at tahoe-lafs.org
Sat Dec 28 17:48:26 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
Resolution: | Keywords: website webdav twisted research
Launchpad Bug: |
-----------------------------+---------------------------------------------
Description changed by amontero:
Old description:
> 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, 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.
New description:
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:
* 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. Opening Tahoe-LAFS usages to
webops community could be a huge boost.
--
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2144#comment:2>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list