Ask HN: What's the best way in 2018 to distribute a self-host web application?
If I was to launch a SAAS product with a self-host option, what would be the best way to distribute it to customers?
Examples of things I'm concerned about are ease of installation, ease of deploying updates, ease of scaling for customers...
10 comments
[ 4.6 ms ] story [ 26.3 ms ] threadother option is some cheep VPS hosting (~50$/y) but later you maybe need to migrate everything.
http://koken.me/
Updates are handled similarly -- the software alerts the admin to an available update within the admin console, and you can choose when to download and apply the patch.
I really like to build self contained binary in Go.
All the code compile to a single binary file without any external dependencies. I put all my static files (html, css, js, imgs) inside this binary file using "bindata". If I really need a database, I'll use sqlite as a default (this could be configured to something else).
For updates, if you do not compress the binary file (upx), you can make a binary patch with "bsdiff"/"bspatch" (http://www.daemonology.net/bsdiff/). There is a Go library to do it dynamically https://github.com/kr/binarydist. So your app could be 50Mb, but updating it would be as simple as downloading a 400Kb patch and applying it (software can do it).
For schema migration, I like https://github.com/rubenv/sql-migrate which can be used as a library. Therefore, the migration can be part of the binary patch in an update.
So in the end, you only distribute a native executable file for whatever platform your customer is using.
https://news.ycombinator.com/item?id=16250959
https://news.ycombinator.com/item?id=14781420
The short answer is that no, there is no simple way to get users to self-host your software. Perhaps developers prefer it that way? It certainly helps keep the SaaS model going.
Remember that what a developer deems 'simple' matches no known definition of the word amongst ordinary users.