Compare commits
55 Commits
decisions-
...
google-dri
Author | SHA1 | Date | |
---|---|---|---|
daea06eae8 | |||
b1b597d6d6 | |||
38cc2c5ec8 | |||
6f6a3b2e5e | |||
c338187c51 | |||
d27d98d3e9
|
|||
c2a163776c | |||
d41de3cfd9 | |||
bd73042dd4 | |||
1e55036a21 | |||
fc59c56df8
|
|||
332e385657 | |||
991e2bb332 | |||
98dd76b300 | |||
ade028c8cb | |||
e1d76ff40e
|
|||
a78c94250b | |||
6b6853be22 | |||
5891093a60 | |||
897ba19972 | |||
ce6f92aa12 | |||
2db78105f7 | |||
f39ea6d07d | |||
6b5a47d86b | |||
e2a43e9ad1 | |||
ca4d5ddb80 | |||
3da62d7688 | |||
949ea30680 | |||
fe205e1ac1 | |||
d533b5988e | |||
cc2425e1cd | |||
2d86a3ed56 | |||
308213ed9b | |||
e91e38a785 | |||
1cb687fd25 | |||
05cfeaeae3 | |||
ad0f285fb1 | |||
ab8b9c717e | |||
34328a1dea | |||
1060130197
|
|||
6d389047cb
|
|||
266b936312 | |||
2fce0586d8 | |||
b4b5d32780 | |||
f9452dd2c5 | |||
75db99c4e1 | |||
9559396132 | |||
dcbdf635ac | |||
75b63c9771 | |||
27194cbae5 | |||
8d73dd3df5 | |||
a4aa3d669f | |||
9d0e1fee73 | |||
21b671d945 | |||
158fef9027 |
16
.drone.yml
16
.drone.yml
@ -19,9 +19,21 @@ steps:
|
|||||||
compose: docker-compose.prod.yml
|
compose: docker-compose.prod.yml
|
||||||
deploy_key:
|
deploy_key:
|
||||||
from_secret: drone_ssh_swarm.autonomic.zone
|
from_secret: drone_ssh_swarm.autonomic.zone
|
||||||
|
|
||||||
|
- name: notify rocket chat
|
||||||
|
image: plugins/slack
|
||||||
|
settings:
|
||||||
|
webhook:
|
||||||
|
from_secret: rc_builds_url
|
||||||
|
username: comradebritney
|
||||||
|
channel: "internal.builds"
|
||||||
|
template: "{{repo.owner}}/{{repo.name}} build failed: {{build.link}}"
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- failure
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- main
|
||||||
event:
|
event:
|
||||||
exclude:
|
exclude:
|
||||||
- pull_request
|
- pull_request
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM ruby:2.7.2-alpine
|
FROM ruby:2.7.3-alpine
|
||||||
|
|
||||||
EXPOSE 4000
|
EXPOSE 4000
|
||||||
|
|
||||||
|
2
Gemfile
2
Gemfile
@ -1,6 +1,6 @@
|
|||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
ruby "2.7.2"
|
ruby "2.7.3"
|
||||||
|
|
||||||
gemspec
|
gemspec
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ DEPENDENCIES
|
|||||||
jekyll-feed
|
jekyll-feed
|
||||||
|
|
||||||
RUBY VERSION
|
RUBY VERSION
|
||||||
ruby 2.7.2p137
|
ruby 2.7.3p183
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.1.4
|
2.1.4
|
||||||
|
@ -4,7 +4,9 @@ version: "3.8"
|
|||||||
services:
|
services:
|
||||||
jekyll:
|
jekyll:
|
||||||
image: decentral1se/autonomic.zone:latest
|
image: decentral1se/autonomic.zone:latest
|
||||||
command: bundle exec jekyll serve --host 0.0.0.0 --trace
|
command: |
|
||||||
|
bundle exec
|
||||||
|
jekyll serve --host 0.0.0.0 --trace
|
||||||
environment:
|
environment:
|
||||||
JEKYLL_ENV: production
|
JEKYLL_ENV: production
|
||||||
networks:
|
networks:
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
---
|
---
|
||||||
version: "3.7"
|
version: "3.8"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
jekyll:
|
jekyll:
|
||||||
image: "jekyll/jekyll:4"
|
image: decentral1se/autonomic.zone:latest
|
||||||
command: jekyll serve --watch --force_polling --trace
|
command: |
|
||||||
|
bundle exec
|
||||||
|
jekyll serve --watch --host 0.0.0.0 --force_polling --trace
|
||||||
volumes:
|
volumes:
|
||||||
- ".:/srv/jekyll"
|
- ".:/srv/jekyll"
|
||||||
ports:
|
ports:
|
||||||
|
@ -1 +1 @@
|
|||||||
docker-compose==1.28.0
|
docker-compose==1.29.1
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Contact us to discuss your project's needs and arrange a consultation:</br>
|
Contact us to discuss your project's needs and arrange a consultation:</br>
|
||||||
<b><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></b></br></br>
|
<b><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></b></br></br>
|
||||||
<b><a href="{{ '/assets/pgp/autonomic-key.asc' | relative_url }}">Download PGP key</a></b></br>
|
<b><a href="{{ '/assets/pgp/autonomic-key.asc' | relative_url }}">Download PGP key</a></b></br>
|
||||||
<a href= "https://git.autonomic.zone/autonomic-cooperative/autonomic.zone/src/branch/master/src/assets/pgp"> Verify fingerprint:</a><code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code>
|
<a href= "https://git.autonomic.zone/autonomic-cooperative/autonomic.zone/src/branch/main/src/assets/pgp"> Verify fingerprint:</a><code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code>
|
||||||
|
|
||||||
<ul class="icons" style="margin-bottom: 0; padding-top: 1em">
|
<ul class="icons" style="margin-bottom: 0; padding-top: 1em">
|
||||||
<li>
|
<li>
|
||||||
|
@ -22,7 +22,7 @@ Our decisions can be split intro three categories: **Small, Medium and Large**.
|
|||||||
|
|
||||||
## 2) Medium - Consensus pending objections
|
## 2) Medium - Consensus pending objections
|
||||||
- About admin and infrastructure.
|
- About admin and infrastructure.
|
||||||
- Don't have an effect on the direction or operation of the co-op.
|
- Doesn't have an effect on the direction or operation of the co-op.
|
||||||
- Give a deadline: unless anyone objects or asks for more time by then, it goes ahead.
|
- Give a deadline: unless anyone objects or asks for more time by then, it goes ahead.
|
||||||
- The deadline must reasonable (a week by default).
|
- The deadline must reasonable (a week by default).
|
||||||
- If any member of the co-op thinks it's a Large decision, achieve Maximum Consensus™ (see below).
|
- If any member of the co-op thinks it's a Large decision, achieve Maximum Consensus™ (see below).
|
||||||
|
25
src/_posts/2021-02-11-google-drive.md
Normal file
25
src/_posts/2021-02-11-google-drive.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Escaping the Google silo
|
||||||
|
description: Opening up your Google Drive and Docs files using open source software
|
||||||
|
image:
|
||||||
|
category: technology
|
||||||
|
date: 2021-02-11
|
||||||
|
---
|
||||||
|
|
||||||
|
At Autonomic we always promote using [libre software](https://en.wikipedia.org/wiki/Free_software) whereever possible but we understand that many clients have committed to using [propietary software](https://en.wikipedia.org/wiki/Proprietary_software) either due to legacy decision or because the non-libre solutions are simply more effective and mature.
|
||||||
|
|
||||||
|
The Google Workspace set of tools including Google Drive and Google Docs is one such solution. Once your organisation has deployed and is using these Google services, it's extremly difficult to migrate away. Google Docs files are not easy to extract from their propietary format and users are strongly encouragaged to only interact with the documents via the Google Workspace web apps.
|
||||||
|
|
||||||
|
This is problematic for organisations that want to approach their data storage with a stratergy that suits them, rather than the Google™️ mandated workflow.
|
||||||
|
There are also [so many criticims](https://en.wikipedia.org/wiki/Criticism_of_Google) that could be made of Google in so many areas (as a [worker's co-operative of privacy advocates](/our-founding-principles), we're of course very biased).
|
||||||
|
|
||||||
|
There is also the question of [Google outages](https://en.wikipedia.org/wiki/2020_Google_services_outages) which happened multiple times in 2020. Of course, service outages can and do happen at any scale but it is interesting to note that they are even fairly regular occurance at many of the largest technology companies. When it comes to critical services, offering reduncancy and decentralisation is very difficult to do at the monolithic scale of the tech ginats.
|
||||||
|
|
||||||
|
We have been working on a solution for a client to try and make it easier for organisatons to in the short term keep non-Google hosted copies of their data and in the long term, be in a better position to migrate away from Google Workspace all together. Luckily, there is an extensive [Drive](https://developers.google.com/drive/) and [Docs API](https://developers.google.com/docs/api/) which is well documentated and relativley stable.
|
||||||
|
|
||||||
|
Our system is designed to pull all of your data out of the Google [walled garden](https://en.wikipedia.org/wiki/Closed_platform) and directly into your control. We host a server for you which runs our code to extract all of your files from Google Drive and covert all of your Google Docs into open document formats (.odt .docx etc.). The files are then made available to your organisation as standard filesystem on your own [Nextcloud](https://nextcloud.com/) instance and then you can do what you want with them. You'll also be able to draw up a support contract with us that suits your needs for both maintaining the server and supporting your users.
|
||||||
|
|
||||||
|
We intend to release the source code for our system under a libre license as soon whens we feel it's ready but it still needs some cleaning up and documentation which takes time. When it's released, you'll be able to find on our [Gitea instance](https://git.autonomic.zone/autonomic-cooperative).
|
||||||
|
|
||||||
|
If you're interested in hosting this solution for your organsation, feel free to [get in touch](mailto:helo@autonomic.zone).
|
99
src/_posts/2021-02-16-co-op-cloud.md
Normal file
99
src/_posts/2021-02-16-co-op-cloud.md
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: The Co-operative Cloud
|
||||||
|
description: Libre software infrastructure without re-inventing the wheel
|
||||||
|
image: coop-cloud.png
|
||||||
|
category: coop, co-op, cloud, docker, swarm, libre-software, hosting,
|
||||||
|
date: 2021-03-01
|
||||||
|
---
|
||||||
|
|
||||||
|
Running [libre 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 "Co-op Cloud" project with the world. We want to make it easier for others to join the party, ditch corporate spyware, and make their tools [sustainable, transparent and private].
|
||||||
|
|
||||||
|
## Why a new tool?
|
||||||
|
|
||||||
|
We started out using [Cloudron], which provides a very simple-to-use web interface for deploying libre software apps like Nextcloud, Mediawiki, and Rocket.chat with only a few clicks.
|
||||||
|
|
||||||
|
Cloudron allowed us to radically reduce our initial and ongoing server costs. We didn't need to maintain a separate server for each service and clients apps could share computing resources whilst containerisation was still allowing us meeting their data privacy needs. Consequently, we've been able to take on many more "solidarity clients", people doing important work, but on a shoestring budget.
|
||||||
|
|
||||||
|
As time has gone on, though, we've had a few moments when we questioned our reliance on Cloudron, and whether it was a sustainable choice for us and for our clients. We came to realise:
|
||||||
|
|
||||||
|
- Core parts of the system officially [became proprietary] software. This rang alarm bells for us about its long-term future.
|
||||||
|
|
||||||
|
- The work to package the available apps is done [entirely by the Cloudron team itself] and doesn't re-use the existing rich ecosystem of libre software packaging work that's already being done. This seems like a big risk. If Cloudron UG, the company behind Cloudron, goes under, someone or some entity would need to take on that laborious, technically specific and non-transferable packaging work or we'd quickly be leaving ourselves and our clients running outdated and unmaintained software.
|
||||||
|
|
||||||
|
- Some aspects of Cloudron's architecture were causing problems. Requiring each app to be a single Docker image makes common application deployment configurations impossible (as far as we know, nobody has yet managed to get Mediawiki's visual editor working in Cloudron, for example).
|
||||||
|
|
||||||
|
- 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 manage their own users.
|
||||||
|
|
||||||
|
- Cloudron's central paradigm is focussed on "non-technical" users with the nice web front end for managing apps. However, we found our clients don't actually need to know what "domain name" or "storage volumes" are. That's why they pay us for support. They want it to "just work". Using an interface designed for non-technical users is not suitable for technical users and adds a lot of bloat.
|
||||||
|
|
||||||
|
- Cloudron is a bit of a [black box](https://en.wikipedia.org/wiki/Black_box). When something breaks, it breaks hard and requires technical users to respond and investigate and then fix the issues.
|
||||||
|
|
||||||
|
- Cloudron doesn't encourage collective and public collaboration on configuration files.
|
||||||
|
|
||||||
|
- We 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.
|
||||||
|
|
||||||
|
## A New Hope
|
||||||
|
|
||||||
|
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. We started calling the new project Co-op Cloud. Here are some of the principles we identified:
|
||||||
|
|
||||||
|
- Always be available under [copyleft licenses] to retain the shared work as part of the [commons](https://en.wikipedia.org/wiki/Commons). We shouldn't rely on creating [artificial scarcity](https://en.wikipedia.org/wiki/Artificial_scarcity) as a business model.
|
||||||
|
|
||||||
|
- Work with existing libre software communities who are already packaging and publishing their software (Nextcloud, Gitea, Mediawiki, Rocket.chat, the list goes on and on...). We want to be involved in their community spaces and build bridges between infrastructure, software development and end-users.
|
||||||
|
|
||||||
|
- Based on standardised technologies. Any new tools we write should only add a thin layer of usability on top of existing solutions.
|
||||||
|
|
||||||
|
- Place democratic governance at the core of the project. We want to collaborate as much as possible with other co-operatives to build up effective decision-making structures so we can all rely on this project far into the future.
|
||||||
|
|
||||||
|
- Focus on meeting the needs of small hosting providers with technical workers in order to provide a solid service for their clients.
|
||||||
|
|
||||||
|
- Encourage the creation of a configuration commons. Innovations based on Co-op Cloud can easily be shared and worked on collectively.
|
||||||
|
|
||||||
|
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 (including two "back to the drawing board" moments), we're ready to launch an [alpha version](https://en.wikipedia.org/wiki/Software_release_life_cycle) of Co-op Cloud to the public.
|
||||||
|
|
||||||
|
## Co-op Cloud public alpha
|
||||||
|
|
||||||
|
Co-op Cloud is a simple packaging format using existing [open standards] to build a catalogue of apps, and a command-line client to read the catalogue and deploy those apps.
|
||||||
|
|
||||||
|
If you'd like to learn more about Co-op 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 apps are available and so on.
|
||||||
|
|
||||||
|
We've already been deploying Co-op Cloud as part of "dual power" strategy. We use Co-op Cloud to run some of our own and our clients' infrastructure while continuing with Cloudron and other strategies for the time being. We're seeing promising stability and it's been a joy to work with.
|
||||||
|
|
||||||
|
## Enter the configuration commons
|
||||||
|
|
||||||
|
You can also dive straight in by installing [`abra`, Co-op Cloud's command-line tool].
|
||||||
|
|
||||||
|
You can use Co-op Cloud right now to deploy any of our [30+ apps] to your own physical server or virtual server. These include [Nextcloud](https://nextcloud.com/) (for file, calendar, contacts etc) [Rocket.chat](https://rocket.chat/) for instant messaging, [Keycloak](https://www.keycloak.org/) for Single Sign-On, [Statping](https://statping.com/) for service monitoring, and websites using [Wordpress](https://wordpress.org/), [Pelican](https://blog.getpelican.com/), [Jekyll](https://jekyllrb.com/), or static HTML. See the [app catalogue](https://docs.cloud.autonomic.zone/apps/) for more.
|
||||||
|
|
||||||
|
Apps deployed via Co-op Cloud have automatic SSL certificates, and many come with pre-configured e-mail, backups, or Single Sign-On options.
|
||||||
|
|
||||||
|
See the [getting started guide](https://docs.cloud.autonomic.zone/overview/) to get moving fast.
|
||||||
|
|
||||||
|
## Packaging for Co-op Cloud
|
||||||
|
|
||||||
|
Packaging new apps for Co-op Cloud 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 Co-op Cloud version of the Matomo web analytics platform in about 20 minutes]. This standardised architecture also means that nobody using Co-op Cloud is dependent on Autonomic for updates. When a new Wordpress update comes out, you can easily install it yourself or automatically without waiting for us to update some arcane custom Docker image.
|
||||||
|
|
||||||
|
## Next steps
|
||||||
|
|
||||||
|
At this point, we'd like to invite other worker co-operatives or democratic collectives to take a look at what we're working on and have a chat with us. We have a public matrix room at `#coopcloud:autonomic.zone`. We think a common platform for hosting libre 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 Co-op Cloud development, or if you'd like help trying out Co-op Cloud hosted services for yourself or your organisation, please [get in touch].
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [Documentation](https://cloud.autonomic.zone/)
|
||||||
|
- [Source code](https://git.autonomic.zone/coop-cloud)
|
||||||
|
- [Public Matrix chat](https://matrix.to/#/#coopcloud:autonomic.zone?via=autonomic.zone)
|
||||||
|
|
||||||
|
[libre 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`, co-op cloud's command-line tool]: https://git.autonomic.zone/coop-cloud/abra/
|
||||||
|
[30+ apps]: 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 co-op cloud version of the matomo web analytics platform in about 20 minutes]: https://docs.cloud.autonomic.zone/package/
|
BIN
src/assets/images/coop-cloud.png
Normal file
BIN
src/assets/images/coop-cloud.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
Reference in New Issue
Block a user