docs.coopcloud.tech/docs/faq.md

6.0 KiB

title
Frequently asked questions

What is the Co-op Cloud?

Co-op Cloud aims to make hosting free software applications simple for small providers. It uses the latest container technologies and innovations and configurations are shared into the commons for the benefit of all.

The project is intended for small service providers such as tech co-operatives who are looking to standardise around an open, transparent and scalable infrastructure.

Who is behind the project?

The project was started by workers at Autonomic which is a workers co-operative providing technologies and infrastructure to empower users to make a positive impact on the world.

We use Co-op Cloud in production amongst other systems.

Why Co-op Cloud?

👍

  • 👍 Thin "ease of use" layer on top of already standardised tooling
  • 👍 Extremely modular
  • 👍 Collective commons based configuration via public git repos
  • 👍 Focussed on hosting providers
  • 👍 Uses upstream packages
  • 👍 Now and always free software
  • 👍 Command line focussed
  • 👍 Horizontal and vertical scaling

👎

  • 👎 Still a very young project
  • 👎 Limited availability of well tested apps
  • 👎 Requires command line knowledge to use
  • 👎 Currently x86 only

Why Docker Compose?

Why Docker Swarm?

Why start another project?

One of our core principles is to not re-invent the wheel. However, fitting needs into existing projects doesn't always work out. Some of the developers on this project were also once developers on the other existing projects.

What about $alternative?

We have various technical critiques of other similar projects which are already up-and-running in the ecosystem as they don't necessarily meet our needs as a small tech co-op. However, the Cooperative Cloud isn't meant to be a replacement for these others projects. Here is a short overview of the pros/cons we see and how that relates to our goals here.

Cloudron

👍

  • 👍 Decent web interface for application, domain & user management.
  • 👍 Large library of applications.
  • 👍 Built-in SSO using LDAP, which is compatible with more applications and often has a better user interface than OAuth.
  • 👍 Applications are actively maintained by the Cloudron team.

👎

  • 👎 Moving away from open source. The core is now proprietary software.
  • 👎 Free tier has a single application limit.
  • 👎 Based on Docker images, not stacks, so multi-process applications (e.g. parsoid visual editor for Mediawiki) are a non-starter.
  • 👎 Difficult to extend applications.
  • 👎 Only supported on Ubuntu LTS.
  • 👎 Upstreams free software communities aren't involved in packaging.
  • 👎 Limited to vertical scaling.
  • 👎 Tension between needs of hosting provider and non-technical user.
  • 👎 Bit of a black box.

YunoHost

👍

  • 👍 Lovely web interface for application, domain & user management.
  • 👍 Bigger library of applications.
  • 👍 Awesome backup / deploy / restore continuous integration testing.
  • 👍 Supports hosting applications in subdirectories as well as subdomains.
  • 👍 Doesn't require a public-facing IP.

👎

  • 👎 Upstream free software communities aren't involved in packaging.
  • 👎 Uninstalling applications leaves growing cruft.
  • 👎 Limited to vertical scaling.
  • 👎 Not intended for use by hosting providers.

Ansible

👍

  • 👍 Includes server creation and bootstrapping.

👎

  • 👎 Upstream free software communities aren't publishing Ansible roles.
  • 👎 Lots of manual work involved in things like application isolation, backups, updates.

Kubernetes

👍

  • 👍 Helm charts are available for some key applications already.
  • 👍 Scale all the things.

👎

  • 👎 Too big -- requires 3rd party tools to run a single-node instance.
  • 👎 Not suitable for a small to mid size hosting provider.

Docker-compose

👎

Doing it Manually (Old School)

👍

  • 👍 Simple - just follow upstream instructions to install and update.

👎

  • 👎 Loads of manual work required for application isolation and backups.
  • 👎 Array of sysadmin skills required to install and maintain applications.
  • 👎 Hard to share configurations into the commons.
  • 👎 No idea who has done what change when.

Which technologies are used?

The core technologies of co-op cloud are free software tools that enjoy wide adoption across developer and system administration communities.

Who packages your applications?

One of your main aims is to re-use existing good work that free software projects have already done.

Why do you use containers?

We use containers because so many free software communities choose to use them. The upstream projects are already writing and using Docker files and Docker-compose definitions for their development and production environments. We can directly re-use their packaging and contribute back upstream by helping maintain their in-repository files. We meet them where the ecosystem is at and we do not create yet another new packaging format or duplicate effort.

Co-op cloud re-uses upstream free software project container based workflows through well known CI/CD automation tools and issue trackers. Coop cloud proposes the idea of more direct coordination between distribution methods (app packagers) and production methods (developers and system administrators).

Why do you use Docker compose?

TODO.

Why do you use Docker Swarm?

TODO.

What licensing model do you use?

The Cooperative Cloud is and will always be available under copyleft licenses.