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.