Revisions to CoopCloud blog post

This commit is contained in:
3wc 2021-02-23 12:44:35 +02:00 committed by Luke Murphy
parent e91e38a785
commit 308213ed9b
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
1 changed files with 44 additions and 52 deletions

View File

@ -7,75 +7,67 @@ category: coop, cloud, docker, swarm, free-software
date: 2021-02-16
---
At Autonomic, we've been using [Cloudron] to quickly and easily deploy free
software applications (Wordpress, Nextloud, Mediawiki, etc.) for our clients.
If you haven't heard of Cloudron, here is the short summary of what it does: it
provides infrastructure hosters like Autonomic with a simple to use web
interface for deploying hundreds of free software applications in a few clicks
of the mouse.
Running [free software] apps and infrastructure for ourselves and our clients is central to what we do at Autonomic. Now, after a year of work, we're stoked to share our "Cooperative Cloud" system with the world, to make it easier for others to join the party, ditch corporate spyware, and make their tools [sustainable, transparent and private].
Using a system like Cloudron has expanded our capacity to support more "on a
shoestring" grassroots organising because it reduces our initial starting
costs. This is the work that we feel is important to support even when there is
little funding to pay for that work.
## Why a new tool?
However, as time has gone on, we've had a few moments when we questioned our
reliance on Cloudron.
We started out using [Cloudron], which provides a very simple-to-use web interface for deploying hundreds of free software apps like Nextcloud, Mediawiki, and Rocket.chat with a few clicks.
- Parts the system officially [became proprietary] which was worrying but also
somewhat understandable from a funding perspective.
Cloudron allowed us to radically reduce our initial and ongoing costs for services -- because we don't need to maintain a separate server for each service, or even manage app updates ourselves. So, we've been able to take on a lot more "solidarity clients": people doing important work, but on a shoestring, grassroots budget.
- The work to package the available applications is done [entirely by
the Cloudron team itself] and doesn't re-use the existing rich ecosystem of
free software packaging work already going on. This seems unsustainable.
As time has gone on, though, we've had a few moments when we questioned our reliance on Cloudron, and whether it was sustainable for us and for our clients:
- A growing fear of centralising a significant part of our offering on a
single business which may make decisions that could have a large impact on
our ability to provide services.
- Parts of the system officially [became proprietary] -- this was somewhat understandable given Cloudron's licensing model, but rang alarm bells for us about its long-term future.
As a result of these concerns, we tried to map out a few core principles of a
project which might work a lot like Cloudron but give us more guarantees that
we can depend on. We've started to call that the Cooperative Cloud.
- We realised that the work to package the available applications is done [entirely by the Cloudron team itself] and doesn't re-use the existing rich ecosystem of free software packaging work already going on. This seems like a big risk: if Cloudron goes under, someone would need to take on that huge, specific, and non-transferable packaging work, or we'd quickly be leaving ourselves and our clients running on outdated software.
- The Coop Cloud should always be available under [copyleft licenses] to retain
the shared work as public property. This doesn't mean we can't pursue
commercial work but we can't rely on creating false scarcity to earn money.
- Some aspects of Cloudron's architecture are getting in the way: requiring each app to be a single Docker image makes certain deployments hard-to-impossible (as far as we know, nobody has yet managed to get Mediawiki's visual editor working in Cloudron, for example), and not being able to delegate user management to specific groups has made it hard for us to use Cloudron's Single Sign On system with groups who are growing more users quickly.
- The Coop Cloud doesn't re-invent the wheel. We aim is to work with existing
free software communities who are already packaging and publishing their
software (Nextcloud, Gitea, Mediawiki, Rocket.chat, the list goes on...). We
want to be involved in their community spaces and build bridges between
infrastructure, software development and end-users.
We also have a general fear of centralising so much of our core business on a commercial entity, which could change its prices at any time and have a massive effect on our ability to operate.
- The Coop Cloud has democratic governance at the core of the project. We
want to work as much as possible with other cooperatives to build up good
decision making structures so we can all depend on this project.
## A New Hope
With those ideas in mind, we started to build something in the time we could
spare. We worked on a simple packaging format using existing [open standards]
to build the application catalogue. We wrote a command-line client which could
read the catalogue and deploy those applications.
So, around the end of 2019, we tried to map out a few core principles of a system which might work a lot like Cloudron, but give us more guarantees that we can depend on, which we've started calling the Cooperative Cloud (or "Coop Cloud" for short):
We can safely say the cooperative cloud project is currently alpha quality
software but it shows promise and signs of stability. We've already been
testing a sort of "dual power" strategy with some existing clients and we've
been seeing good results. We're happy to say that we're already partially
running operations on the Cooperative Cloud.
- Coop Cloud should always be available under [copyleft licenses] to retain the shared work as public property. This doesn't mean we can't pursue commercial work, but we can't rely on creating false scarcity to earn money.
If you want to learn more about the project, please read our documentation
where we explain the decisions we've made so far in more depth. What
technologies we're using, how we fit into the existing ecosystem, ways to
contribute, what applications are available and so on.
- Coop Cloud doesn't re-invent the wheel. We aim to work with existing free software communities who are already packaging and publishing their software. (Nextcloud, Gitea, Mediawiki, Rocket.chat, the list goes on...). We want to be involved in their community spaces and build bridges between infrastructure, software development and end-users.
> [cloud.autonomic.zone](https://cloud.autonomic.zone/)
- Coop Cloud has democratic governance at the core of the project. We want to collaborate as much as possible with other cooperatives to build up good decision-making structures, so we can all rely on this project into the future.
At this point, we'd like to invite other cooperatives to take a look at what
we're working on and come and have a chat with us. We think a common platform
for hosting free software infrastructure could make a big difference in terms
of what we're able to offer as a movement.
In our spare time (partly funded by income from working for our wonderful clients 😀) we've been putting the pieces together, and, after a year of work -- and two technical dead-ends -- we're ready to launch an alpha version of Cooperative Cloud to the public.
## Coop Cloud alpha
Coop Cloud is a simple packaging format using existing [open standards] to build a catalogue of applications, and a command-line client to read the catalogue and deploy those applications:
[screencast]
If you'd like to learn more about Coop Cloud, please read [our documentation] -- where we explain the decisions we've made so far in more depth. What technologies we're using, how we fit into the existing ecosystem, ways to contribute, what applications are available and so on.
You can also dive straight in by installing [`abra`, CoopCloud's command-line tool].
You can use Coop Cloud right now to deploy any of our [30+ applications] to your own Virtual Private Server, including Nextcloud for file-, calendar- and contact-sharing, Rocket.chat for instant messaging, Keycloak for Single Sign-On, Statping for service monitoring, and websites using Wordpress, Pelican, Jekyll, or static HTML.
We've already been testing a sort of "dual power" strategy, using CoopCloud to run some of our own and our clients' infrastructure while continuing with Cloudron for the rest, and we're seeing promising stability.
Apps deployed via CoopCloud have automatic SSL certificates, and many come with pre-configured e-mail, backups, or Single Sign-On options.
Packaging new applications for CoopCloud is straightforward in most cases: you can re-use an application's own Docker image (or even `docker-compose.yml` file) with minimal changes -- we managed to [make a CoopCloud version of the Matomo web analytics platform in about 20 minutes]. This architecture also means that nobody using CoopCloud is dependent on us for updates: when a new Wordpress update comes out, you can easily install it yourself, without waiting for us to update some arcane custom Docker image.
At this point, we'd like to invite other cooperatives to take a look at what we're working on and come and have a chat with us. We think a common platform for hosting free software infrastructure could make a big difference in terms of what we're able to offer as a movement.
If you're interested in getting involved with CoopCloud development, or if you'd like help trying out CoopCloud-hosted services for yourself or your organisation, please [get in touch]!
[free software]: http://wikieducator.org/Libre
[sustainable, transparent and private]: /#core-values
[cloudron]: https://cloudron.io/
[became proprietary]: https://forum.cloudron.io/topic/2862/why-not-make-cloudron-fully-open-source-again
[entirely by the cloudron team itself]: https://git.cloudron.io/cloudron
[our documentation]: https://docs.cloud.autonomic.zone
[`abra`, CoopCloud's command-line tool]: https://git.autonomic.zone/coop-cloud/abra/
[30+ applications]: https://git.autonomic.zone/coop-cloud/
[get in touch]: mailto:helo@autonomic.zone
[copyleft licenses]: https://www.gnu.org/licenses/copyleft.en.html
[open standards]: https://compose-spec.io/
[make a CoopCloud version of the Matomo web analytics platform in about 20 minutes]: https://docs.cloud.autonomic.zone/package/