Shelf: web server

CC @sethladd 
I'd need to add a dependency to another package. Let's commit as-is and discuss in a follow-up.