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 00000000..9520a4a7 --- /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 f28fd759..b5faa4d7 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