The author talked about this a few months ago on Tim Ferriss' podcast[0]. One of my favorite episodes.
I'm passionate[1] about the concept but articles like this are a reminder to me that we need to make self hosting an order of magnitude simpler and accessible to more people. It shouldn't need to involve any CLI, DNS, TLS certs, port forwarding/NAT traversal, IP addresses, etc etc.
Self hosting shouldn't be any more difficult or less secure than installing an app on your phone. The flow should be 1) install the "self hosting app" on an old laptop or phone. 2) Go through a quick OAuth2 flow to connect your app to a tunnel that enables inbound traffic. 3) Use the self hosting app to install other apps like Jellyfin, Calendar, Nextcloud, etc. Everything should be sandboxed (containers work pretty well on Linux and Windows 10/11 via WSL2) and secure by default. Automatic backups (ideally an OAuth2 flow to your friends' self hosted installations) and auto app updates are table stakes.
There's no technical reason this can't all be done, but lots of technical challenges, and it's unclear whether anyone will pay for tunnels. I'm currently trying to figure out how to do reliable auto backups without filesystem snapshots.
Lets do this. There's literally no reason not to. It could even be a small standalone appliance that you plug in. It could be no bigger than Mac charging brick, and could even function as one.
We have to divorce society from these abusive corporate cloud relationships. It made sense 20 years ago. It is actively poisonous today.
We can easily make a turnkey opt-in peer to peer cloud using today's consumer grade open hardware and software, much of it default off the shelf.
I think the problem is there's very little overlap between people who are interested in this stuff, and people who are interested in what typical consumers want.
People are really focused on privacy, and even opt-in integration with nonprivate hardware and services doesn't happen much.
Convenience features gtt completely ignored, and worst of all, a huge amount of P2P stuff has no mobile support.
Furthermore a lot of it involves a self hosted single point of failure. For me that's a complete deal breaker, it's not acceptable that a service could go down because something happened to a home server while I was away.
And then on top of that, most p2p projects for about 10 years were completely impractical blockchain things that either cost money or huge amounts of bandwidth and compute.
Self hosted, with decentralized identity not tied to a domain name, with automatic backup and redundancy to a selectable cloud provider via an open source protocol, with a very high quality mobile app, and smartwatch support, etc, would be amazing.
But there's not much interest, and it basically can't be done in a UNIXy way, since a lot of the value the clouds provide is in the tight integration of everything, with voice assistants and calendars and a million little things that are individually maybe not even worth setting up manually.
I think the problem is there's very little overlap between people who are interested in this stuff, and people who are interested in what typical consumers want.
People are really focused on privacy, and even opt-in integration with nonprivate hardware and services doesn't happen much.
Convenience features gtt completely ignored, and worst of all, a huge amount of P2P stuff has no mobile support.
Furthermore a lot of it involves a self hosted single point of failure. For me that's a complete deal breaker, it's not acceptable that a service could go down because something happened to a home server while I was away.
And then on top of that, most p2p projects for about 10 years were completely impractical blockchain things that either cost money or huge amounts of bandwidth and compute.
Self hosted, with decentralized identity not tied to a domain name, with automatic backup and redundancy to a selectable cloud provider via an open source protocol, with a very high quality mobile app, and smartwatch support, etc, would be amazing.
But it seems like people these days aren't interested in feature rich commercial style zero maintenance apps, so I'll probably keep mostly ignoring the entire concept of self hosting until that changes.
I’ve been using Caprover (https://github.com/caprover/caprover - think stripped-down Heroku on any given Docker box) for a few years, and it’s hardly consumer-focused, but has accomplished a good portion of what would ultimately be required for such a product. It’s always that last bit where the effort/risk/cost/[insert prohibitive factor here] becomes precipitously steeper and challenging. I think it’s a fairly natural thing, but also it’s got a lot to do with being not only more difficult, but also you’re then faced with tackling it under the full weight of every technical decision you’ve made up until that point, which can severely limit the plausible approaches.
I’d be keen to work on a project to marry a PaaS like Caprover with networking using ZeroTier or Tailscale, packaged in such a way that it could be easily deployed onto most reasonably equipped platforms, or delivered as a service.
Don’t most home internet packages specifically forbid running home servers? They don’t seem to enforce it anecdotally, but annoying that they could technically shut you down at any moment with no notice unless you buy a business plan. I’m in the US and I’ve only had access to two different ISPs though and only ever one at a time, so no way to shop around.
One advantage of tunneling is your ISP doesn't know what the traffic is. Also I expect ISP competition to slowly improve. More people are getting access to fiber all the time.
Sandstorm is awesome but requires significant modifications to apps in order to work within the system. Also, it doesn't solve the complexity problem. You still need a programmer or sysadmin to set it up and manage security.
Sorry, it appears I introduced this bug here, when I didn't realize that the space after the <br> element was actually important in mobile screen widths.
I remember having a conversation with my daughter about this. We were discussing social media and photos on social media.
I told her that in the best case scenario, the future will be homes with a redundant hosting server where everything lives. Families will host their own email, calendar, photos for sharing. And cloud will only be used for backup in case of a disaster, or for migrating.
If you rent an apartment, it will someday come with a hosting service as part of the home address. And features will vary based on the kind of apartment or flat you're renting or buying.
> Self hosting shouldn’t be any more difficult or less secure than installing an app on your phone.
Mac OS X provided self-hosting of calendars, contacts, DNS, email, and websites with the Server app [2] starting in 2011 but it was discontinued in 2018.
I agree. I think people have just been used to the current state of affairs in managing servers. There’s no reason why they can’t be like appliances or mobile OSes.
The problem is eventually this 'appliance' needs to connect to the public WWW and that is a problem for most residential connections because ISPs don't play nice with that sort of thing, at least in the U.S., and now you get into having to configure port forwarding and dynamic DNS and so on.
I'm passionate[1] about the concept but articles like this are a reminder to me that we need to make self hosting an order of magnitude simpler and accessible to more people. It shouldn't need to involve any CLI, DNS, TLS certs, port forwarding/NAT traversal, IP addresses, etc etc.
Self hosting shouldn't be any more difficult or less secure than installing an app on your phone. The flow should be 1) install the "self hosting app" on an old laptop or phone. 2) Go through a quick OAuth2 flow to connect your app to a tunnel that enables inbound traffic. 3) Use the self hosting app to install other apps like Jellyfin, Calendar, Nextcloud, etc. Everything should be sandboxed (containers work pretty well on Linux and Windows 10/11 via WSL2) and secure by default. Automatic backups (ideally an OAuth2 flow to your friends' self hosted installations) and auto app updates are table stakes.
There's no technical reason this can't all be done, but lots of technical challenges, and it's unclear whether anyone will pay for tunnels. I'm currently trying to figure out how to do reliable auto backups without filesystem snapshots.
[0]: https://youtu.be/0BaDQCjqUHU?si=0wDf-2RH-u9vdm3g&t=1380
[1]: https://github.com/anderspitman/awesome-tunneling