I don't want fully self-hosted services, any more than I want fully online services. I want a sandboxed, personal subset of the service that I can add to a physical box I own or a virtual box I rent from a provider. I don't expect a company to give me everything to run on my own hardware, but I want a solution that can take the provider going under, being bought, etc. without tanking the service and having to worry about my stuff ending up auctioned off to the highest bidder.
The N2N project http://en.wikipedia.org/wiki/N2n is an interesting place to start. I started work of some code to do something like what I'm talking about, but that was before my day job ate my life. https://github.com/jwhitlark/unum
I guess the question is can we come up with a system that defines sort of a DMZ between a person and a service, something more than the current all or nothing model.
EDIT: Note that I'm not disparaging Dropbox, Github, etc. They've been quite good so far, and I'm happy to pay. I trust them, to a certain extent, it's just that I shouldn't have to trust them. Isn't there some way that we can meet in the middle?
From that point, I imagine a company having an open protocol for accessing my music/pictures/blog posts, and then selling the best client using this protocol.
Really, the key for me is less about absolute privacy, but more about the ability to extremely easily take my data and run.
In the real world, escrow (sort of) fills this need. Perhaps a hybrid Amazon/Heroku that also acted as an escrow agent? Enforcing that apps/services followed the data access rules and made sure that the service would keep running on that instance, even if the company went under? I'd pay extra (up front) for that.
And some earlier HN discussion here: http://news.ycombinator.com/item?id=3040047
It seems like a whole family of ideas have been evolving around the personal cloud. I've been thinking about it for a long time, but many of the necessary parts didn't exist until recently. Not sure if it's ready even now, but it's sure a space I'm watching closely.
- a self hosted dropbox
- a phone that does not send data to google or apple without my consent, and where I can be absolutely sure it does not
- a self hosted sync server for my phone (contacts and calendar)
- a very fast internet connection to my home (I self host almost everything...)
that's it. I am sure once I have those I will need more :)
For bandwidth, would you consider hosting stuff on a VPS with better upstream bandwidth, or is that not enough control for you?
1) In my area a static IP is extremely expensive and outside of my budget. This leaves Dynamic DNS.
2) From what I can tell, Dynamic DNS providers only map 1 domain to your account. I would like the ability point more than 1 domain to my personal server. Can I do this without paying through the nose?
You host a box via DynDNS and its canonical hostname is, say, "mystatichost.example.com".
You decide you want to run a www and an ftp on that domain: CNAME www.example.com and ftp.example.com to mystatichost.example.com. 'www.example.com' is your default host on that server.
You decide that you want several entirely different domains, say, example.net, example.edu, and example.org, all running from the same host. You'd again point CNAMES to 'mystatichost.example.com', and on your httpd config, create named virtual hosts for those domains. So long as the http request is for 'example.org' and not 'example.com', the surfer won't know the difference.
That's been a part of basic webservers (apache, nginx, etc.) for, oh, well over a decade.
Mail/MX can be handled similarly. Your domains' MX records point to 'mystatichost.example.com' as their mailserver. That's how every mail hosting provider in existance does this (say: googlemail.com for anyone using GMail hosted domains). There's absolutely no reason the end-user would know the difference.
Again: all very basic Internet plumbing basics.