[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:53:34 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 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.
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, 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#comment:1>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list