Cloudron: A platform for self-hosting web apps
cloudron.io
cloudron.io
Sandstorm is more interesting in many ways, but it's oddly high friction to get going with it. I installed it, got its config page, and was excited to get it running, but then I discovered that you can't just have normal password auth. You must authenticate using a third party service like Google or via one of their 'enterprise' options like LDAP, etc. This seems really really strange for a 'decentralization' oriented project, and I just didn't move forward with it because... huh? I just wanted to log into the thing and use it.
From your example, we do not have any 3rd party services integrated and it does not even fit into our idea, but instead have single sign-on for all apps bound to your own Cloudron user management. In fact your own Cloudron is for example an LDAP and OAuth provider on its own for the installed apps.
Regarding your high friction to get going, we only now started to support self-hosting outside of our managed version, so there are still rough edges as well, but that is what we are focusing on next. This is also one of the reasons, we only currently support AWS (even though other providers are in the works), the setup to get to your Cloudron should be easy, afterall that is one of the main goals to make self-hosting easy. If you have more feedback in that area, that would be great.
There are two reasons we don't like plain username/passwords:
- They are notoriously insecure. If you're running a server with passwords you usually want dedicated staff to deal with account hijackings, which self-hosted servers obviously won't have.
- They are not global identities, i.e. someone else's Sandstorm server cannot authenticate the same identity. So if you transfer an app to a different Sandstorm server (something we aim to make easy), all the identities would have to be replaced with new ones local to the new server, which will probably confuse the app.
With that said, we have been thinking about other ways to solve these problems and we might introduce a plain old username/password option in the future.
I gave up pretty fast on the e-mail option since I had to set up a mail server and it was painful... we use Google for e-mail and it could not use that, and setting up anything else is a many-step time sink.
I did not want sandcats.io but to use this on a private (ZeroTier) intranet. Even for your enterprise offering, which we might be willing to pay for, you still don't have a clear and simple way to auth. For enterprise I have to set up LDAP or other complicated nasty things.
My personal rule for UX:
Each step that must be performed to set something up cuts the adoption rate in half. So if you have an audience of 1000 and 4 steps, 63 people will end up trying your product.
That's not hard science, just a rule of thumb I use to impress upon myself and my team how important UX and zero-config is. It does have some basis in logic. Think of each step as a bit in an integer for 'cognitive load.' Each additional bit increases cognitive load exponentially, not linearly, since the total setup involves the specification by the user of N bits of information.
I do like your rule, regarding people "trying your product", but I don't know if it really applies to setting up a server, because setting up a server of your own is probably the worst way to try something you aren't sure you want to use.
I'd suggest that anyone looking to "try" Sandstorm should be looking at Sandstorm Oasis, which is managed hosting you can try for free. (Along with being an easy place to see "live demos" of any of the apps on it.) If you try it on Oasis, and decide it fits your needs, you're much more likely to implement the additional steps required to configure it how you want it on your own hosting.
I don't think I'd ever personally put in the effort to set up something self-hosted until I already had "tried it".
While there are definitely platforms that work with just a username and password, they are arguably drastically less safe in that scenario.
If you don't use Sandcats, which provides free dynamic DNS and wildcard SSL, Sandstorm is a bit more work to set up, but that is because it is almost certainly more secure. Sandstorm is designed to protect you from malicious or buggy apps, which require a lot of mitigation strategies that Cloudron doesn't look to offer. Some of these are why Sandstorm currently can't work with Let's Encrypt, for instance.
But Cloudron definitely has friendlier URLs, which seems to be a particularly strong desire for some people. A little DNS management could handle that for Sandstorm where desired, but they don't have that figured out yet.
Probably the biggest difference between the two is that Sandstorm doesn't put "apps" at the top level of organization, but puts "grains" (basically, files or instances) as the top organizational structure. This means individual documents run entirely separate instances of applications, which makes them more secure. It's difficult to provide say, etherpad.mysandstorm.com because each Etherpad document you have open is a completely separate Etherpad server!
You guys went open source! THAT'S AWESOME. But you didn't mention that until the bottom of the blog. :( You should highlight that news better!
Congrats and welcome to the open source world! :D
And things going open source usually does well on HN as a headline.