From 72f5a7c11300a4322fac3e6f2557a75efeba1748 Mon Sep 17 00:00:00 2001
From: 3wc <3wc.git@doesthisthing.work>
Date: Sun, 27 Dec 2020 21:36:05 +0200
Subject: [PATCH] Add comparisons page

---
 docs/comparisons.md | 37 +++++++++++++++++++++++++++++++++++++
 docs/index.md       | 21 +++++++++++++++++++++
 2 files changed, 58 insertions(+)
 create mode 100644 docs/comparisons.md

diff --git a/docs/comparisons.md b/docs/comparisons.md
new file mode 100644
index 000000000..9520a4a7b
--- /dev/null
+++ b/docs/comparisons.md
@@ -0,0 +1,37 @@
+# "This is foolishness, what about ...?"
+
+ - Kubernetes
+     - πŸ‘ Helm charts are available for some key apps already
+     - πŸ‘Ž too big -- requires 3rd party tools to run a single-node instance
+ - Bitnami stacks
+ - Cloudron
+     - πŸ‘ Lovely web interface for app, domain & user management
+     - πŸ‘ Bigger library of apps
+     - πŸ‘ Built-in SSO using LDAP, which is compatible with more apps and often has a better user interface than OAuth
+     - πŸ‘ Most apps are actively maintained by the Cloudron team
+     - πŸ‘Ž Moving away from open source. Free version has a 1-app limit
+     - πŸ‘Ž Based on Docker images, not stacks, so multi-process apps (e.g. parsoid for Mediawiki) are a non-starter
+     - πŸ‘Ž Difficult to extend apps
+     - πŸ‘Ž Only supported on Ubuntu
+     - πŸ‘Ž Upstreams aren't involved
+ - Yunohost
+     - πŸ‘ Lovely web interface for app, domain & user management
+     - πŸ‘ Bigger library of apps
+     - πŸ‘ Awesome backup / deploy / restore continuous integration testing
+     - πŸ‘ Supports hosting apps in subdirectories as well as subdomains
+     - πŸ‘ Doesn't require a public-facing IP
+     - πŸ‘Ž Upstreams aren't involved
+     - πŸ‘Ž Not idempotent: uninstalling apps leaves growing cruft
+ - Ansible
+     - πŸ‘ Includes server creation and bootstrapping
+     - πŸ‘Ž Upstreams aren't publishing Ansible roles
+     - πŸ‘Ž Lots of manual work involved in things like app isolation, backups, updates
+ - `docker-compose`
+     - πŸ‘Ž Manual work required for process monitoring 
+     - πŸ‘Ž Secret storage not available yet
+     - πŸ‘Ž [Not recommended](https://github.com/BretFisher/ama/issues/8)
+ - Manually installing apps
+     - πŸ‘ Simple - just follow upstream instructions to install and update
+     - πŸ‘Ž Loads of manual work required for app isolation and backups
+     - πŸ‘Ž Array of sysadmin skills required to install apps
+     - πŸ‘Ž Hard to share configs into the commons
diff --git a/docs/index.md b/docs/index.md
index f28fd7595..b5faa4d78 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -31,5 +31,26 @@ CoCl is a **philosophy**.
  - then you install an **app** like wordpress or nextcloud, which is made up of multiple **services**...
  - .. and configure your app.
 
+## Technical description
+
+Software-wise, CoΓΆpCloud is:
+
+ - [`coop-cloud`](https://git.autonomic.zone/coop-cloud/), a collection of Docker "swarm mode" configurations for popular web apps
+ - [`abra`](https://git.autonomic.zone/autonomic-cooperative/abra), a simple tool for Docker swarm management
+ - a recommended default set of stacks:
+    - Traefik for SSL & routing
+    - `postfix-relay` for outgoing email
+
+## Principles / features:
+
+ - Security by default
+     - Secret storage using `docker secret` (["What makes it secure?"](https://github.com/BretFisher/ama/issues/86))
+     - Automatic SSL using Traefik & LetsEncrypt
+ - Zero-downtime deployments (for apps with healthchecks defined)
+ - Continuous integration testing using Drone and our [`stack-ssh-deploy`](https://git.autonomic.zone/coop-cloud/stack-ssh-deploy) plugin
+ - Low maintenance overhead:
+     - Automatic tracking of upstream Docker images using `renovate-bot`
+     - Avoiding custom Docker images as far as possible
+
 [traefik]: https://hub.docker.com/_/traefik?tab=tags
 [mariadb]: https://hub.docker.com/_/mariadb?tab=tags