The bmannconsulting.com website
1--- 2--- 3 4[[Co-op Cloud]] has done a great job of listing out their opinions of the pros / cons of other server / app management software. 5 6Copy / pasted from their [FAQ](https://docs.coopcloud.tech/intro/faq/) so I can easily reference. 7## [[Cloudron]] 8 9### Pros 10 11- 👍 Decent web interface for app, domain & user management. 12- 👍 Large library of apps. 13- 👍 Built-in SSO using LDAP, which is compatible with more apps and often has a better user interface than OAuth. 14- 👍 Apps are actively maintained by the Cloudron team. 15### Cons 16 17- 👎 Moving away from open source. The core is now proprietary software. 18- 👎 Libre tier has a single app limit. 19- 👎 Based on Docker images, not stacks, so multi-process apps (e.g. parsoid visual editor for Mediawiki) are a non-starter. 20- 👎 Difficult to extend apps. 21- 👎 Only supported on Ubuntu LTS. 22- 👎 Upstream libre software communities aren't involved in packaging. 23- 👎 Limited to vertical scaling. 24- 👎 Tension between needs of hosting provider and non-technical user. 25- 👎 LDAP introduces security problems - one vulnerable app can expose a user's password for all apps. 26- 👎 Bit of a black box 27 28_**@boris commentary:** do I wish that Cloudron were fully open source? Yes. But I also like that the team has a sustainable business where they keep all of these apps packaged and updated over time! They mention the SSO model here as LDAP, but in fact it's OIDC now._ 29 30## [[Yunohost]] 31 32### Pros 33 34- 👍 Lovely web interface for app, domain & user management. 35- 👍 Bigger library of apps. 36- 👍 Awesome backup / deploy / restore continuous integration testing. 37- 👍 Supports hosting apps in subdirectories as well as subdomains. 38- 👍 Doesn't require a public-facing IP. 39- 👍 Supports system-wide mutualisation of resources for apps (e.g. sharing databases by default) 40### Cons 41 42- 👎 Upstream libre software communities aren't involved in packaging. 43- 👎 Uninstalling apps leaves growing cruft. 44- 👎 Limited to vertical scaling. 45- 👎 Not intended for use by hosting providers. 46 47_**@boris commentary:** I took a look at Yunohost and found it scary from a security perspective. Packaging is a pile of bash scripts. More apps but they're mostly undermaintained_ 48## [[Caprover]] 49 50### Pros 51 52- 👍 Bigger library of apps. 53- 👍 Easy set-up using a DigitalOcean one-click app. 54- 👍 Works without a domain name or a public IP, in non-HTTPS mode (good for homeservers). 55- 👍 Deploy any app with a `docker-compose.yml` file as a "One Click App" via the web interface. 56- 👍 Multi-node (multi-server) set-up works by default. 57### Cons 58 59- 👎 Single-file app definition format, difficult to tweak using entrypoint scripts. 60- 👎 Nginx instead of Traefik for load-balancing. 61- 👎 Command-line client requires NodeJS / `npm`. 62- 👎 [Requires 512MB RAM for a single app](https://github.com/caprover/caprover/issues/28). 63- 👎 [Backup/restore is "experimental"](https://caprover.com/docs/backup-and-restore.html), and doesn't currently help with backing up Docker volumes. 64- 👎 Exposes its bespoke management interface to the internet via HTTPS by default. 65 66## [[Ansible]] 67 68### Pros 69 70- 👍 Includes server creation and bootstrapping. 71### Cons 72 73- 👎 Upstream libre software communities aren't publishing Ansible roles. 74- 👎 Lots of manual work involved in things like app isolation, backups, updates. 75 76## [[Kubernetes]] 77 78### Pros 79 80- 👍 Helm charts are available for some key apps already. 81- 👍 Scale all the things. 82### Cons 83 84- 👎 Too big -- requires 3rd party tools to run a single-node instance. 85- 👎 Not suitable for a small to mid size hosting provider. 86 87## [[Docker-compose]] 88 89### Pros 90 91- 👍 Quick to set up and familiar for many developers. 92### Cons 93 94- 👎 Manual work required for process monitoring. 95- 👎 Secret storage not available yet. 96- 👎 [Swarm is the new best practice](https://github.com/BretFisher/ama/issues/8#issuecomment-367575011). 97 98--- 99 100I'll skip the the "doing it manually" old school version of server + app maintenance.