Hacker News new | ask | show | jobs
by xnx 848 days ago
I love the minor movement toward self-hosted web apps. I wish they were easy enough to setup as installing an app on Android or iPhone.
5 comments

While not as easy as an appstore, the modern Docker ecosystem IMO has made self hosting web apps at home super cheap/easy.

Use your old PC, a Raspberry Pi, an EC2 instance, whatever you like, a single small Docker Compose file with Watchtower for auto-updating the container image when new one published etc. I've got self-hosted services that have ran untouched for years this way at home from a handful of lines of YML. Docker Compose will also take care of restarting the service on reboot/powercut if thats a concern.

Given the ubiquity of container images, you can run largely any web application this way and the container image likely already exists - this project also has a Dockerfile and would run fine this way too.

Why would you use Docker at all? Just run the application behind a reverse proxy. Docker doesn't get you anything except an extra management headache and an abstraction that happily punches holes in your firewall.
App A requires a version 2 of whatever which conflicts with version 3 of whatever required by app B, and uses same port as app C and doesn’t like the smell of app D. Meanwhile app Z has to be compiled from source with a specific version of python and only installs on Tuesdays, buts it’s Wednesday if mercury is retrograde
It may help to view it primarily as a packaging system.
I mean...the entire reason docker exists? So that I don't have to understand and manage everyone else's (sometimes insane) build and deploy processes?
Easier to upgrade, no extra system deps to mess up, security because you're shelled into a private environment, isolated storage, network routing.
Because "installing" an "app" becomes as easy as

    docker run coolapp:latest
That was the promise of Sandstorm. "Easy to install" is important but sandboxing and data protection _even of the data you give the app itself_ is just as important. I really hope it or something like it succeeds someday.

Edit: this app would probably make for a great Sandstorm app.

Cloudron and YunoHost are Sandstorm alternatives that seem to have more traction.
Hole in the market? Maybe a NAS-type system for self host? Something a bit stronger than a raspberry
I do think there's a niche hole in the market for a cloud host that's as easy to use as the major app stores. Fiddling with hardware and network routing is way too technical.
Does PikaPods do what you're talking about? I use it for Actual and for Paperless and it's awesome.
This is basically what HOOBS markets. They've really fallen to the movement of open source though.

I think there's still a world in which you can buy an rPi with software preinstalled and updaters packaged without much effort though.

If that could take off, you could easily have this type of service. However, I think it falls apart because you need to govern the app store and that is expensive and difficult.

Synology NASes are a popular choice.
But their CPU is potato. They still sell versions with 512 mb ram
There's Umbrel which sells a device like that, or YunoHost + your own device

Umbrel is just plug-and-play with an app store, haven't personally tried it but looks very cool.

They tried this with a device called Helm Personal Server. No, not the Kubernetes manager.
Not surprised it failed, $250-400 + $100/year and the only thing it could do was host email, calendar and file sharing?
Some kind of an app store concept on a VPS that le's you just plug in these self hosted projects, like installing an Android app, is really interesting. I think docker is the closest thing we have but I could be wrong, and it's much too technical for any average person.

I've been slowly moving everything to self hosted to reduce the pain if/when I'm ever randomly banned from Google or some other huge network and can't get it re-enabled.

The downside is that I'm now my own IT department and need to perpetually monitor these things.

I think a good question to ask is, what is gained here by being a web app? Couldn't this just be an Android or iPhone (or even desktop!) app?
Web app = Always on. No interruption from power outages or wifi problems. Higher bandwidth and more anonymous (if it's going to make requests).

Virtual android device in the cloud might be a great model for it since Android has good built-in security and process isolation.

> Web app = Always on. No interruption from power outages or wifi problems

Web apps don't magically produce their own compute, power and networking. They still need to be run on something.

(Web app does not automatically equal SaaS, especially in this case that is explicitly billed as self-hosted.)

Unless you're self-hosting on the same computer you're using, a web app is, by definition, software as a service. But then, either you're just... running a program, or your self-hosted application lives somewhere else that still requires power and network connectivity.

I promise, everyone, it is very legal and very cool to just write applications that run without TCP roundtrips. I promise.

"Unless you're self-hosting on the same computer you're using, a web app is, by definition, software as a service"

This sentence makes no sense to me. "Self-hosting" and "software as a service" are diametrically opposed things.

> Unless you're self-hosting on the same computer you're using, a web app is, by definition, software as a service.

This seems extremely arbitrary and seems to assume some implicit definitions that are not common, and in fact are the opposite of what I've heard used.

IME software as a service generally speaking means somebody else is doing all the hosting and you as an end user just point your browser to it or in some cases install a local app (and often you put in your credit card and pay a monthly subscription). Self-hosting means you do all that hosting yourself. I've never seen something marketed as SaaS that expected you to host the server-side yourself, but I'd be happy to hear of an example.

> I promise, everyone, it is very legal and very cool to just write applications that run without TCP roundtrips. I promise.

That's a hell of a strawman against an argument I see nobody making.

Exactly. I want the reliability of professional hosting, the ease of a phone app install, and the ownership/control of open source.
Web apps are absolutely not always on, and they are absolutely not more anonymous...
I think it's pretty obvious from the context that GP is talking about a self-hosted web app on a VPS or cloud provider. It's a lot more "always on" than your smartphone, and the anonymity is the same.
AWS uptime is better than any server I've run at home, and an AWS IP is less personally identifiable than my home IP.
I still can't use it if my power or internet are out though, even if the server still has both.

(Rephrased to be less mean.)

My little tangent here is about trying to combine the benefits of open source apps that are fully under the users control with the benefits of cloud hosting while trying to avoid the configuration and administration headache of a raw AWS/Azure/Hetzner/Heroku/Digital Ocean/etc. setup.
I think this comment is unnecessarily rude
You're right. Thanks for calling me out on it. I've toned down the snark.
I can access it from any of my devices (laptops, desktop, phone), and my family can use it too.
Well that question implies that there is some intrinsic reason not to build it as a web app. That may be the case for you if you prefer Kotlin or Swift or something, but it wouldn't be the case for me.
There is a quote that informs my thinking on this.

"The most amazing achievement of the computer software industry is the continuing cancellation of the steady and staggering gains made by the computer hardware industry" -Henry Petroski

Efficiency is very important to me. (And in the era of climate change, it should be important to everyone.) I consider web apps to be about the least efficient form of software yet discovered. We suddenly need two relatively beefy computers with multi-GHz multi-core processors and GB of RAM, one of which must be powered on 24/7, to do something that could have been done on the hardware of the mid-80s.