#389 new enhancement

Implement Web Portal feature.

Reported by: nejucomo Owned by:
Priority: minor Milestone: undecided
Component: code-frontend-web Version: 1.0.0
Keywords: portal ui Cc:
Launchpad Bug:

Description (last modified by zooko)

A really simple feature could make Tahoe into a public "web portal". A web portal is a website that presents a given Tahoe directory as it's root url path, for example, these two links would be equivalent:

http://example.website.com/foo/bar.html http://<my tahoe node>/uri/<web portal dir cap>/foo/bar.html

The portal appears like any other website to surfers (aside from headers and performance). The server can run on a system with a tiny disk, and the web site operator need not worry about site backups.

The security implications seem straightforward, given the design of Tahoe.

I haven't looked at the webish code, but I imagine this could be implemented by adding a single configuration setting for the portal dir cap, and then prefixing all URL requests with "/uri/$dircap" before passing the request to the handler.

Change History (6)

comment:1 Changed at 2008-04-23T02:10:32Z by warner

  • Description modified (diff)

(escaped the urls in the description to fix formatting)

comment:2 Changed at 2008-04-23T02:14:28Z by warner

Hm, so the way that S3 does this is to look for a HTTP/1.1 Hostname: header and manipulate the URL based upon that. In our case, we could have a config file with lines like:

example.website.com: DIRCAP
other.website.com: DIRCAP

and then the twisted.web resource could switch on the Hostname: header to decide what cap to start with.

Security wise, this would give unbounded read- (or write-, if DIRCAP is RW) access to everything below DIRCAP, which is pretty easy to explain and understand.

Intriguing..

comment:3 Changed at 2008-05-01T12:06:40Z by zooko

Couldn't this be implemented by using apache and a reverse proxy?

comment:4 Changed at 2008-06-01T20:57:45Z by warner

  • Milestone changed from eventually to undecided

comment:5 Changed at 2009-03-08T22:03:37Z by warner

  • Component changed from unknown to code-frontend-web
  • Owner nobody deleted

comment:6 Changed at 2013-09-14T17:37:02Z by zooko

  • Description modified (diff)

nejucomo wrote a reverse proxy config for nginx for this:

https://bitbucket.org/nejucomo/lafs-rpg/

I used it (after tweaking it a bit) for zooko.com:

https://zooko.com/

Note: See TracTickets for help on using tickets.