Compare commits

...

82 Commits

Author SHA1 Message Date
3wc fc3e2918c9 Add some margin under code blocks
continuous-integration/drone/push Build is passing Details
2024-03-30 18:13:27 -03:00
3wc 86023ee113 Whoops, make video embed work
continuous-integration/drone/push Build is passing Details
2024-03-30 13:43:16 -03:00
3wc e775d5cc77 Formatting, typos
continuous-integration/drone/push Build is passing Details
2024-03-30 13:34:35 -03:00
3wc 161dfd53ad Add Selfhosted Infrastructure Any% post
continuous-integration/drone/push Build is passing Details
2024-03-30 13:20:00 -03:00
decentral1se 76035f8f4d
feat: verify masto
continuous-integration/drone/push Build is passing Details
2024-03-27 07:50:58 +01:00
decentral1se b67f55facd
feat: RSS link
continuous-integration/drone/push Build is passing Details
Closes coop-cloud/organising#460
2024-03-27 07:30:34 +01:00
basebuilder e85a2ed84e add trailing /> to tags in <head>
continuous-integration/drone/push Build is passing Details
2024-02-18 16:32:02 +01:00
basebuilder 6bef2696fb add <link> tag exposing RSS feed
continuous-integration/drone/push Build is passing Details
2024-02-18 12:50:28 +01:00
basebuilder d066d9143f remove hugo go.mod file 2024-02-18 12:49:20 +01:00
basebuilder 00a32cf563 make into Hugo module
continuous-integration/drone/push Build is failing Details
2024-01-26 16:25:15 +01:00
basebuilder 630045649a Merge pull request 'add Recipes link to topbar' (!48) from basebuilder/coopcloud.tech:homepage-recipes into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #48
2024-01-24 20:16:27 +00:00
basebuilder 39363fb625 add Recipes link to topbar 2024-01-24 21:11:46 +01:00
wykwit b9632f54d1 Merge pull request 'Update links on the project homepage' (!47) from links into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #47
2024-01-06 17:00:52 +00:00
Wiktor W. 672f63e3b4 Remove dead Twitter link from the footer 2024-01-06 14:28:18 +01:00
Wiktor W. e3cc0e5c8f Add git link to the top menu 2024-01-06 14:27:07 +01:00
decentral1se ab526d3626 Merge pull request 'chore(deps): update dependency node-sass to v9 (main)' (#46) from renovate/main-node-sass-9.x into main
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is failing Details
Reviewed-on: #46
2023-05-28 14:22:48 +00:00
Comrade Renovate Bot a9844bba1f chore(deps): update dependency node-sass to v9 2023-05-22 07:08:31 +00:00
decentral1se 77e31bfbc3
Merge branch 'fedi-boots'
continuous-integration/drone/push Build is passing Details
2023-04-24 23:08:52 +02:00
decentral1se bc15488129
feat: fedi bootstrap post 2023-04-24 23:08:31 +02:00
decentral1se 458399ca21
Merge remote-tracking branch 'origin/renovate/main-rimraf-5.x'
continuous-integration/drone/push Build is passing Details
2023-04-24 10:16:40 +02:00
decentral1se 8266f909f2
Merge remote-tracking branch 'origin/renovate/main-node-sass-8.x' 2023-04-24 10:15:54 +02:00
decentral1se c9c279d363 Merge branch 'main' into renovate/main-autoprefixer-10.x 2023-04-24 08:15:22 +00:00
decentral1se 9f7037eebd Merge branch 'main' into renovate/main-node-sass-8.x 2023-04-24 08:15:21 +00:00
decentral1se 7764c12a64 Merge branch 'main' into renovate/main-rimraf-5.x 2023-04-24 08:15:12 +00:00
decentral1se dc416fb45c
fix: date & url
continuous-integration/drone/push Build is passing Details
2023-04-14 15:24:10 +02:00
decentral1se 6bc33660be
feat: april 2023 funding report
continuous-integration/drone/push Build is passing Details
2023-04-14 15:04:10 +02:00
Comrade Renovate Bot 793d25f098 chore(deps): update dependency rimraf to v5 2023-04-10 07:04:31 +00:00
3wc 8e70056696 Add local-it logo for SSO
continuous-integration/drone/push Build is passing Details
2023-04-04 07:54:01 -04:00
Comrade Renovate Bot b522c93e7f chore(deps): update dependency node-sass to v8 2023-01-23 08:04:09 +00:00
Comrade Renovate Bot d0c5ec8cfc chore(deps): update dependency autoprefixer to v10 2023-01-23 08:03:59 +00:00
decentral1se 6626fe36a3 Merge pull request 'chore(deps): update dependency clean-css-cli to v5 (main)' (#39) from renovate/main-clean-css-cli-5.x into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #39
2023-01-20 09:14:42 +00:00
decentral1se c8310794d9 Merge pull request 'chore(deps): update dependency rimraf to v4 (main)' (#42) from renovate/main-rimraf-4.x into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #42
2023-01-20 09:14:11 +00:00
Comrade Renovate Bot f8d2344d89 chore(deps): update dependency rimraf to v4 2023-01-20 08:10:23 +00:00
Comrade Renovate Bot 18f9cdbe00 chore(deps): update dependency clean-css-cli to v5 2023-01-20 08:07:57 +00:00
decentral1se f41cd2c54f Merge pull request 'Configure Renovate' (#37) from renovate/configure into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #37
2023-01-19 10:54:09 +00:00
Comrade Renovate Bot c86681aaea Add renovate.json 2023-01-19 08:06:15 +00:00
decentral1se abeee83144
docs: fix sentence
continuous-integration/drone/push Build is passing Details
2023-01-17 04:24:15 +01:00
decentral1se c57cadf766
wording, typos
continuous-integration/drone/push Build is passing Details
2023-01-04 17:10:47 +01:00
decentral1se f8625f4ef4
typo
continuous-integration/drone/push Build is passing Details
2023-01-04 17:08:07 +01:00
decentral1se f9e401a092
trav feedback
continuous-integration/drone/push Build is passing Details
2023-01-04 09:24:18 +01:00
3wc 4e6981a14d Minor tweaks to nüblogpost 2023-01-03 12:17:52 -08:00
decentral1se e497aa0820
first draft 2023-01-03 16:05:35 +01:00
decentral1se f8e81d912e
add another group
continuous-integration/drone/push Build is passing Details
2022-06-28 16:59:36 +02:00
decentral1se 2e5e7082b9 Merge pull request 'alpha -> beta' (#35) from beta-release into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #35
2022-06-03 10:47:34 +00:00
decentral1se cb9026bd76
beta release post 2022-06-03 11:27:34 +02:00
Aadil Ayub 18b54193c7 simplify client logo markup
continuous-integration/drone/push Build is passing Details
2022-06-02 18:54:40 +05:00
Aadil Ayub 51ce171de1 add ECF Logo + clean up styles
continuous-integration/drone/push Build is passing Details
2022-06-02 18:45:12 +05:00
decentral1se da06fa2aed
warning, coming another time
continuous-integration/drone/push Build is passing Details
2022-06-02 11:25:31 +02:00
decentral1se 2ad0ae2847
fix link
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is running Details
Closes #31
2022-05-31 10:26:23 +02:00
decentral1se 75ec56a1de
do it right
continuous-integration/drone/push Build is passing Details
2022-05-09 12:20:03 +02:00
decentral1se 18297d7bcd
fix broken urls
continuous-integration/drone/push Build is passing Details
2022-05-09 12:12:11 +02:00
femmefaytale bf578d29e7 Merge pull request 'redesign-spring22' (#28) from redesign-spring22 into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #28
2022-05-05 13:43:58 +00:00
femmefaytale 25c7b0a5ad fix merge conflicts with merging in main branch 2022-04-30 17:06:09 +01:00
femmefaytale f128430566 sexy shadows for the case studies thumbnails 2022-04-29 15:58:09 +01:00
femmefaytale 87034b965a ignore .vscode (sorry) 2022-04-29 14:45:43 +01:00
femmefaytale e172696ec1 case studies styling and dividers 2022-04-29 14:44:11 +01:00
femmefaytale e9e07cab49 shuffle case studies 2022-04-29 13:48:45 +01:00
3wc 23452990fe Smol tweaks to federation blog
continuous-integration/drone/push Build is passing Details
2022-04-15 14:53:51 +02:00
decentral1se df2bd95212
typo
continuous-integration/drone/push Build is passing Details
2022-04-15 01:32:14 +02:00
decentral1se 5eab40971c
more wording
continuous-integration/drone/push Build is passing Details
2022-04-15 01:28:16 +02:00
decentral1se 87bbd8ea46
less final
continuous-integration/drone/push Build is passing Details
2022-04-15 01:23:37 +02:00
decentral1se c3b3b972b2
wording 2022-04-15 01:23:07 +02:00
decentral1se c71152ff24
remove that 2022-04-15 01:20:38 +02:00
decentral1se c1c09c1d48
capitalise
continuous-integration/drone/push Build is passing Details
2022-04-14 18:03:41 +02:00
decentral1se 594b3d910c Merge pull request 'fedi proposal post' (#33) from fedi-proposal into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #33
2022-04-14 15:37:45 +00:00
decentral1se 91d22e0de1
fedi proposal post 2022-04-14 17:36:19 +02:00
knoflook a8395cded6
make FAQ shorter
continuous-integration/drone/push Build is passing Details
2022-04-14 15:56:50 +02:00
femmefaytale 34b1fe1af8 exapnd/compress button styling changes 2022-04-14 13:34:49 +01:00
femmefaytale 16d154322a make case studies expandable 2022-04-14 13:24:57 +01:00
femmefaytale 6fa924dd14 add lumbung logo 2022-04-14 12:03:33 +01:00
femmefaytale 32c7f27cdf add logos and json data to load them 2022-04-11 17:53:44 +01:00
femmefaytale 91645f49f9 add case studies to the index page 2022-04-11 16:20:16 +01:00
decentral1se 9146d7d1d4
fix; woops, year change
continuous-integration/drone/push Build is passing Details
2022-04-11 02:23:53 +02:00
decentral1se 26922bef93
wording
continuous-integration/drone/push Build is passing Details
2022-04-05 12:53:16 +02:00
decentral1se 97b7732f6e
unbreak front matter, fix dates
continuous-integration/drone/push Build is passing Details
2022-04-05 12:49:21 +02:00
3wc 3e3d07177b Add this 'month' post
continuous-integration/drone/push Build is failing Details
2022-04-05 10:43:06 +00:00
decentral1se 95781c01bb
chore: GPL this sucka [ci skip] 2022-04-05 12:30:41 +02:00
3wordchant fea49c6257 Merge pull request 'add partner/co-founder list to main' (#29) from client-logos into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #29
2022-03-24 13:32:42 +00:00
femmefaytale 0a49121267 move text to hero section, replace text in FAQ 2022-03-21 13:47:27 +00:00
femmefaytale cf677b5d99 add mid blue colour and add gradient footer
continuous-integration/drone/pr Build is failing Details
2022-03-18 15:41:25 +00:00
femmefaytale 86514afe9c swap benefits and faq sections 2022-03-18 15:19:04 +00:00
femmefaytale 59a0e3833f remove learn more section 2022-03-18 15:13:07 +00:00
48 changed files with 973 additions and 66 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/public/
/resources/_gen
*.lock
.vscode

15
LICENSE Normal file
View File

@ -0,0 +1,15 @@
Co-op Cloud website
Copyright (C) 2022 Co-op Cloud <helo@coopcloud.tech>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

View File

@ -4,19 +4,27 @@ title = "The Co-op Cloud"
theme = "coopcloud.tech"
enableemoji = true
[menu]
[[menu.main]]
name = "Git"
url = "https://git.coopcloud.tech"
weight = 1
[[menu.main]]
name = "Docs"
url = "https://docs.coopcloud.tech"
weight = 1
weight = 2
[[menu.main]]
name = "Recipes"
url = "https://recipes.coopcloud.tech"
weight = 3
[[menu.main]]
name = "Blog"
url = "/blog/"
weight = 2
weight = 4
[params]
[params.links]
docs = "https://docs.coopcloud.tech/"
docsfaq = "https://docs.coopcloud.tech/faq/"
docsfaq = "https://docs.coopcloud.tech/intro/faq/"
getinvolved = "https://docs.coopcloud.tech/get-involved/"
autonomicSite = "https://autonomic.zone"
@ -33,8 +41,11 @@ enableemoji = true
name = "Mastodon"
link = "https://social.coop/@coopcloud"
[[params.links.footer]]
name = "Twitter"
link = "https://twitter.com/coop_cloud"
name = "RSS"
link = "https://coopcloud.tech/blog/index.xml"
[Permalinks]
code = "/:filename/"
[markup.goldmark.renderer]
unsafe = true

View File

@ -0,0 +1,60 @@
---
title: "April 2023 funding report"
date: 2023-04-13T11:32:59+02:00
draft: false
image: "/img/comp-squat.jpg"
imageCredit: "Image from the Outdoor Computing Club collection by Fletcher Bach (are.na/fletcher-bach)."
description: "April 2023 funding report"
---
Were coming to the end of another funded chunk of work, heres what happened 🤟
<!--more-->
## What happened?
At the start of 2023, we announced [our next major round of funding](https://coopcloud.tech/blog/new-year-status-update/), this time from a private donor. We would like to thank them, and the [individual contributors on our OpenCollective](https://opencollective.com/coop-cloud#section-contributors), once again, for financially supporting our work and enabling us to push the project forward 💗
## Tooling updates
Theres a new `abra` available and if you havent upgraded, [please go ahead](https://docs.coopcloud.tech/abra/upgrade/)! Theres a [migration guide](https://docs.coopcloud.tech/abra/upgrade/#06x-beta-07x-beta) available and the full changelog is [here](https://git.coopcloud.tech/coop-cloud/abra/releases/tag/0.7.0-beta).
The idea behind the `0.7.x` series of `abra` was to fix several critical bugs and also re-factor - and, in some cases, remove - some of the more unreliable parts of the tool. Some of the main improvements are:
* `abra` has a more stable interaction model with SSH. Weve seen a dramatic decrease in obscure SSH related errors and hope that will be a thing of the past 😌
* Weve got the beginnings of machine-readable output! Try running ([with `jq` installed](https://stedolan.github.io/jq/download/)) `abra app ls -m | jq '.[].apps[].appName`. This has enabled such wonders as [`abra.php`](https://social.coop/@coopcloud/110125297575197185)!
* `abra` now continues to work during outages of `git.coopcloud.tech` - removing one dependency on a central point of failure, on the path to eventually [further decentralising the recipe catalogue infrastructure](https://git.coopcloud.tech/coop-cloud/organising/issues/139).
Lastly, were also happy to share news of `kadabra`, a server-side companion tool which is available for general alpha-testing (here be dragons!) which has been developed by `@Moritz`, a member of [Local-IT](https://local-it.org). Thank you `@Moritz` and Local-IT!
`kadabra` is about helping perform automatic upgrades of apps in your Co-op Cloud deployment. `abra` now attaches some extra metadata to the deployed app, and `kadabra` can read that and make a decision about whether or not to perform an automated upgrade. Its all new, and we welcome brave alpha-testers to check it out!
## The Federation bootstrap meeting
> Update: read more about our progress on [this post](/blog/federation-bootstrapped/)
Were delighted to announce that we have finally bootstrapped the federation 🎉 The process is far from over, but the wheels are now officially turning: we had 13 in attendance at the founding meeting, representing 7 collectives.
One of the main goals of the session was to come to agreement on what decision-making protocol to use. Thankfully, this was a success, and we now have a way to collectively make decisions together using consent and consensus. This means that Autonomic has completed the process of decentering itself as a main decision maker of the project and from now, will submit decisions to a vote like any other member of the federation.
We will be publishing all public federation minutes, decisions, plans, etc. [here](https://docs.coopcloud.tech/federation/).
## Finances
We have reached our goals for this current chunk of funded work and we still have funds remaining! This is money which was budgeted to support future administration and pay members for participating in the meetings (yet to be invoiced for). We will be transferring this money to the [Co-op Cloud Open Collective](https://opencollective.com/coop-cloud) once we finish up some remaining finance admin. In this way, we can also start to make collective finances more transparent.
## Whats next?
On the technical side of things, we will continue to identify critical bug fixes and improvements in `abra` and publish new versions. We hope to bring `kadabra` to a stable release soon and expand the collectives who are running the software.
For the federation, there will be more discussions and meetings coming up soon. We aim to continue thinking through how to organise our internal processes, for example, membership guidelines, financial sustainability and prioritisation of development efforts.
## Get Radical with us
We'd love to see more folks [get involved](https://docs.coopcloud.tech/get-involved/) :tada:
If you're thinking about setting up a technology co-op, you have a software stack sitting around waiting for you to pick up now; we have the technology! It's built by tech co-ops for tech co-ops. If you're curious but don't know where to start, [get in touch](https://docs.coopcloud.tech/intro/contact/) anyway!
We have [these amazing flyers](/pdf/flyercoopcloud.pdf) now (massive thanks to `@analuisa`)! Print, distribute, share, spread the word 🎺

View File

@ -0,0 +1,215 @@
---
title: "The Co-op Cloud Public Beta"
date: 2022-05-30T11:32:59+02:00
draft: false
image: "/img/beta.gif"
imageCredit: "'Graceful machines' by Faith Holland from the Internet Gardening collection by Trav Fryer (are.na/trav-fryer)."
description: "The Co-op Cloud Public Beta"
---
We're delighted to announce that the public beta of Co-op Cloud is here at last! There has never been a better time to get involved in Co-op Cloud because the software kinda actually maybe works now :laughing: Read on to see what we've been up to for the last 2 years...
<!--more-->
## Alpha :point_right: Beta
Before we dive in, if you're new to the project, [you'll probably want to start with our project launch post on `autonomic.zone`](https://autonomic.zone/blog/co-op-cloud/), and if you're still curious, follow along on [our (sometimes) monthly blog posts](https://coopcloud.tech/blog/) to get the full context.
So, what does "alpha" and "beta" quality software even mean?
Alpha meant that the project could fundamentally change at any time! Things were still super experimental and we were trying to find out how to make things work. Beta means things won't fundamentally change! We're pretty confident that we have a stable base now, the moving parts of the project fit well together and things are relatively easy to maintain as we bring in new changes.
Despite the experimental nature of the project so far, we've seen a lot of people picking up Co-op Cloud, setting up deployments and getting rad with us. Folks are reporting back that it is helping them get their work done, and fits their needs. It makes daily work convenient, and is relatively easy to learn.
To everyone who took the risk of getting involved in the alpha and even pre-alpha stages of this project: you are amazing and we couldn't have done it without you :heart:
## The beta bikemap in review
At the start of all this, we laid our goals out in a document we called [the beta bikemap](https://pad.autonomic.zone/s/C3uuqfSCk) (because roads are usually for cars, and bikes > cars). While we believe we did not yet fully address 3 of the goals ([Continuous integration testing for apps](https://pad.autonomic.zone/s/C3uuqfSCk#Continuous-integration-testing-for-apps), [Payments and billing](https://pad.autonomic.zone/s/C3uuqfSCk#Payments-and-billing), [Pen Testing/security](https://pad.autonomic.zone/s/C3uuqfSCk#Pen-Testingsecurity)), we think we did a good job with the 12 others!
In retrospect, it was quite an ambitious plan. Here is the breakdown of the bikemap and an overview of what we achieved on each point.
### [Command-line tool sustainability](https://pad.autonomic.zone/s/C3uuqfSCk#Command-line-tool-sustainability)
In the early days, we started off with a [Bash implementation of `abra`](https://git.coopcloud.tech/coop-cloud/abra-bash), our command-line tool for administrating Co-op Cloud deployments. One of our more galaxy brain ideas was to re-implement this Bash script in a programming language which would help us work with data structures, formats and 3rd party APIs in a more manageable way.
We've since implemented [`abra` in the Go programming language](https://git.coopcloud.tech/coop-cloud/abra)! There were some serious doubts along the way about whether we were just getting lost in a [second system syndrome](https://en.wikipedia.org/wiki/Second-system_effect) (yes, our Bash implementation was "small, elegant, and successful" :smile:) but we managed! Here's to 16,766 lines of Go code :beers:.
Some of the improvements include:
- `abra` is now distributed as a statically compiled single binary which is simple to install and start using. The binary works for several popular platforms, and we've seen a reduction in reports for installation problems.
- The Go implementation has feature parity with the Bash implementation but also gained new special powers! For example, the scripts interface, cloud server/DNS integration and recipe catalogue generation.
- Improvements to the `abra` test-suite-of-sorts, release automation & management, and fairly [comprehensive documentation](https://docs.coopcloud.tech/abra/).
- `abra` no longer relies on having Docker installed on your local work machine. We've managed to make it a fully compatible Docker daemon client which can interact via the remote HTTP API. This makes us more resilient, reducing our reliance on corporate tools for our community needs.
### [Versioning and deploy stability](https://pad.autonomic.zone/s/C3uuqfSCk#Versioning-and-deploy-stability)
A core goal for Co-op Cloud is stability. We want things to run smoothly when we maintain and upgrade our deployments. We've been working hard on this one and have managed to come up with several moving parts which we think help make Co-op Cloud deployments more reliable.
- Recipes can be versioned & published with `abra` to our [recipe catalogue](https://recipes.coopcloud.tech/). Each recipe uses a [variation](https://docs.coopcloud.tech/maintainers/handbook/#how-are-recipes-are-versioned) of [semantic versioning](https://semver.org/) which helps maintainers communicate what kind of changes are coming in the new version.
- We've [documented](https://docs.coopcloud.tech/maintainers/) ways to work with and maintain recipes so that anyone can join in and help.
- We've implemented commands in `abra` so that operators can easily control the deployment state of their apps (e.g. `deploy`/`upgrade`/`rollback`). We've set up a system for [release notes](https://docs.coopcloud.tech/maintainers/handbook/#how-do-i-write-version-release-notes) so that operators can leave helpful notes for other operators when doing deployments. These notes are shown at deploy-time, so operators will be warned and hopefully avoid any heartbreak.
- `abra` is able to parse all recipe repositories in order to generate [a JSON recipe catalogue listing](https://recipes.coopcloud.tech/recipes.json). This catalogue is then consumed by `abra` in order to reason about deployment state and determine available versions.
### [Backup and restore](https://pad.autonomic.zone/s/C3uuqfSCk#Backup-and-restore)
Standardising the way backup/restore is done was always seen as a boon for time-saving and re-use. Being able to back up and restore app data is often seen as one of the main ways a regular deployment turns into a "production deployment".
We struggled to arrive at a single "works for everyone" solution. Instead, we aimed for a general solution which is flexible and also open to other approaches. We've heard from several groups who do backups very differently, so we had to have something that was customisable.
We developed two approaches to doing backup/restore. One using `abra` (e.g. `abra app backup` / `abra app restore`) and another using a [run-time bot](https://git.coopcloud.tech/coop-cloud/backup-bot-two). [We documented](https://docs.coopcloud.tech/maintainers/handbook/#how-do-i-configure-backuprestore) both of these methods and have seen several operators making use of them.
The core of our approach was to use [Docker object labels](https://docs.docker.com/config/labels-custom-metadata/) to mark backup/restore commands inside the recipe configuration. This suits our approach of maintaining the entire production state of the deployment inside the recipe. Tools like `abra` and `backup-bot-two` can then read these labels at run-time and do backup/restore work.
### [Co-op Cloud “The Organisation”](https://pad.autonomic.zone/s/C3uuqfSCk#Co-op-Cloud-%E2%80%9CThe-Organisation%E2%80%9D)
Co-op Cloud isn't just about digital infrastructure and libre software. We also wanted to develop sustainable and democratic governance around our digital configuration commons.
We've been regularly astounded (to the point of questioning reality) by the amount of wonderful folks who have turned up and started organising in & around Co-op Cloud.
To formalise Co-op Cloud as a shared resource, we've proposed to form a [federation](https://coopcloud.tech/blog/federation-proposal/) of participating members that will democratically manage the project. The proposal is still out for review and feedback and we're working on concretising our next steps with groups who are engaging with it.
Beyond this, we'd like to give a huge shout-out to the folks who are using Co-op Cloud & those who are maintaining recipes, operating deployments and generally enthusiastic about the project.
Lists are always incomplete but we'll try anyway! Here is the cast of Co-op Cloud Comrades so far:
(PS. sorry if we forgot you! Please let us know and we'll add you in :fingers_crossed:)
- [Local-IT](https://local-it.org) (operators, maintainers)
- [Threndol Tutoring](https://threndoltutoring.com/) (end-users)
- [ruangrupa & `lumbung.space`](https://lumbung.space/about/) (end-users)
- [Servers Co-op](https://servers.coop/) (operators & end-users)
- [Vermont Real Estate Co-operative](https://vrec.coop/) (end-users)
- [United Tech & Allied Workers](https://utaw.tech/) (operators & end-users)
- [Industrial Workers of the World](https://iww.org.uk/) (end-users)
- [Autonomic Co-operative](https://autonomic.zone/) (operators, maintainers)
- [Neuronic Games](https://www.neuronicgames.com/) (end-users)
- [Fashion Revolution](https://www.fashionrevolution.org/) (end-users)
- [Biobulkbende](https://biobulkbende.org/) (operators & maintainers)
- [Third Sector Accountancy](https://www.thirdsectoraccountancy.coop/) (end-users)
- [Anarchy Rules](https://anarchyrules.info/) (end-users)
- [Doop Coop](https://doop.coop) (design work & feedback)
- [bath.social](https://about.bath.social/) (operators & maintainers)
- [Bonfire](https://bonfirenetworks.org/) (operators & maintainers)
- [Tante Wandel](https://wandelgut.de/projekte/einkaufskooperative-tante-wandel/) (end-users)
- [WASHNote](https://washnote.org) (operators)
- [Solisoft](https://solisoft.top/) (operators & maintainers)
- [Forum voor Anarchisme](https://www.forumvooranarchisme.nl/en/home) (operators)
- [Workers.coop](https://workers.coop) (end-users)
### [Compensating contributors](https://pad.autonomic.zone/s/C3uuqfSCk#Compensating-contributors)
We didn't want to be another project which asks people to do free work them. Instead, we set up an [Open Collective](https://opencollective.com/coop-cloud), [wrote clear documentation](https://docs.coopcloud.tech/get-involved/#compensation) and simply paid people for their contributions!
We're proud to report that we paid out around 2,000 euros worth of funding for work done by external contributors. It was a pleasure to open up space for people to actually get paid for their free software work and to re-distribute the available funding to other individuals, groups and projects.
We think more libre software projects should be thinking about how to use money for building collective power. In the (slightly edited) words of [LURK](https://lurk.org/):
> Big tech and an abusive misunderstanding of free and open source software practices have led us to believe that software production, server maintenance and on-line services should be free as in gratis. However there is no such things as a free lunch and software does not exist in a vacuum. If we want sustainable alternatives, these alternatives and the humans behind them, need to be supported.
### [Wider libre apps selection](https://pad.autonomic.zone/s/C3uuqfSCk#Wider-libre-apps-selection)
We wanted to expand the choice of libre software apps that operators could deploy so that different needs could be met. Certainly, we've seen that a lot of experimentation and testing needs to happen in order to understand if a libre software is a good pick.
We now currently have 90+ libre software apps packaged under our [`git.coopcloud.tech/coop-cloud/...`](https://git.coopcloud.tech/coop-cloud) repository listing. Most of those appear also under the [recipe catalogue listing](https://recipes.coopcloud.tech/) or will begin to appear once maintainers bring them into the catalogue.
Also, we wanted to make it easy to package new apps for Co-op Cloud. We expanded the [recipe documentation](https://docs.coopcloud.tech/maintainers/) in order to make it clear how to work with recipes in Co-op Cloud. We've since seen several new folks jump in and start packaging libre software without much help or guidance from us.
### [Documentation](https://pad.autonomic.zone/s/C3uuqfSCk#Documentation)
[`docs.coopcloud.tech`](https://docs.coopcloud.tech/) has been heavily revamped and redesigned from the ground up!
We expanded the idea of "roles" in the project, such as "operators" and "maintainers" and made sure to document all the recipe packaging tips, tricks & hacks.
Writing solid documentation has been our focus and will continue to be.
### [UI / UX testing](https://pad.autonomic.zone/s/C3uuqfSCk#UI--UX-testing)
We have been doing extensive interface design and end-user experience testing since the pre-alpha stages of the project. This is mainly due to the ["dog fooding"](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) approach we've been taking.
We have been using `abra` extensively in our own deployments and projects for the entire period. We've encouraged other collectives to join us in this process and raise issues when they run into problems.
The results can be seen in [263 closed reports](https://git.coopcloud.tech/coop-cloud/organising/issues?q=&type=all&sort=&state=closed&labels=&milestone=0&assignee=0) on our shared issue tracker.
### [Portability testing (software/hardware)](https://pad.autonomic.zone/s/C3uuqfSCk#Portability-testing-softwarehardware)
We wanted Co-op Cloud deployments to run on new and old hardware and of course be compatible with current cloud providers.
`abra` can be cross-compiled to support several mainstream platforms: GNU/Linux, ARM (several versions) and MacOS. All versions can be seen on our [`abra` release page](https://git.coopcloud.tech/coop-cloud/abra/releases).
We set up release automation for automagic cross-platform builds and also see space for supporting new platforms as the needs arise.
### [Cloud provisioning portability](https://pad.autonomic.zone/s/C3uuqfSCk#Cloud-provisioning-portability-Hetzner-DO-Linode-etc)
A fact of life today is that a lot of democratic tech collectives are in a position of only being able to use corporate cloud server providers. This is due to a lot of reasons (and we're also working on [changing that](https://servers.coop/)) but we didn't want to ignore this and not have some form of support for it.
`abra` now supports the creation of servers through integrations with [Servers.coop](https://servers.coop) and [Hetzner](https://www.hetzner.com/) via the `abra server new` command interface. We support one co-op provider and one corporate provider.
Also, it's possible to work with cloud-based DNS providers via `abra` via the `abra record` command interface. Creating, editing and removing DNS records via [Gandi](https://www.gandi.net/en-GB) is currently supported.
We are happy to have these implementations to show what is possible.
### [Design and aesthetics](https://pad.autonomic.zone/s/C3uuqfSCk#Cloud-provisioning-portability-Hetzner-DO-Linode-etc)
We established branding and aesthetics through conversation about our values and how we want the project to be represented.
This design brief was then implemented across all our public sites such as [`coopcloud.tech`](https://coopcloud.tech), [`docs.coopcloud.tech`](https://docs.coopcloud.tech) & [`recipes.coopcloud.tech`](https://recipes.coopcloud.tech).
### [Public communications](https://pad.autonomic.zone/s/C3uuqfSCk#Public-communications)
Beyond organising the project internally, we also wanted to communicate clearly to two groups: a general public and democratic tech collectives.
We wanted to build up an online community infrastructure, so that we could invite people to join the discussion and stay informed.
We've managed to run our public communication through several mediums:
- We set up a [Mastodon](https://joinmastodon.org/) account over on [social.coop/@coopcloud](https://social.coop/@coopcloud).
- We created a [Matrix space](https://docs.coopcloud.tech/intro/contact/#matrix) on [`matrix.autonomic.zone`](https://matrix.autonomic.zone/_matrix/static/) for real-time chat
- We ran a (mostly) monthly blog post update on [`coopcloud.tech`](https://coopcloud.tech/blog/) to give a more general status update.
## Beta :point_right: :question:
As the public beta is now in effect, we are generally interested in the following focuses:
- Making time to welcome new folks into the project.
- Working with collectives to concretise how our federation might work in practice. [Our proposal](https://coopcloud.tech/blog/federation-proposal/) is still open for feedback and constructive critique. We want to try to make small steps in co-operation to realise this federation as a well functioning governance body.
- Stabilising how we maintain recipes between several collectives.
- Fixing bugs & delivering new features in [`abra`](https://docs.coopcloud.tech/abra/).
- Getting the documentation and website translated.
- Looking for new public funding.
## Public Money, Public Power
We'd like to say a **HUGE** thanks to the [ECF](https://culturalfoundation.eu/) who [funded this work towards the public beta](https://culturalfoundation.eu/stories/cosround4-autonomic-co-operative). We couldn't have gotten this far without their support and understanding during this process.
We feel it is important to emphasise that funding democratic technology collectives with public money delivers democratic outcomes!
All our work is copyleft licensed and made open and available as a digital configuration commons for others to re-use and build upon. ["Code paid by the people should be available to the people!"](https://publiccode.eu/)
Furthermore, our governance and organising models are open & for voluntary participation, following the spirit of [the co-operative principles](https://www.ica.coop/en/cooperatives/cooperative-identity). So we also focus on building our social and political commons.
As members of [Autonomic](https://autonomic.zone/), the idea of Co-op Cloud was rooted in our practical needs. We needed a democratically organised digital infrastructure project we could rely on. However, more than that, the project was also conceived as a way to put into practice our anti-capitalist politics. We still see Co-op Cloud as a way other collectives can organise to dismantle "Big Tech" today.
## Get Radical with us
We'd love to see more folks [get involved](https://docs.coopcloud.tech/get-involved/) :tada:
If you're thinking about setting up a technology co-op, you have a software stack sitting around waiting for you to pick up now. We have the technology. It's built by tech co-ops for tech co-ops. If you're curious but don't know where to start, [get in touch](https://docs.coopcloud.tech/intro/contact/) anyway!
We even have [these amazing flyers](/pdf/flyercoopcloud.pdf) now (massive thanks to `@analuisa`)! Print, distribute, share, spread the word :trumpet:
:v:

View File

@ -0,0 +1,44 @@
---
title: "The Federation is bootstrapped"
date: 2023-04-17T11:32:59+02:00
draft: false
image: "/img/solifedi.jpg"
imageCredit: "Solidarity by Roger Peet (instagram.com/toosphexy)"
description: "The democratic wheels are turning."
---
The democratic wheels are turning. We've successfully had the Federation Boostrap ™ meeting and things are up and running! Here's what we now know.
<!--more-->
### Public documentation
As of [Resolution 005](https://docs.coopcloud.tech/federation/resolutions/passed/005/), we now have public documentation for the federation.
Grab a beverage and dive in on [`docs.coopcloud.tech/federation`](https://docs.coopcloud.tech/federation).
### Decision making
In the [bootstrap meeting](https://docs.coopcloud.tech/federation/minutes/2022-03-03/), we decided on a decision making protocol in [Resolution 001](https://docs.coopcloud.tech/federation/resolutions/passed/001/). This has since been put to great use and we're seeing resolutions coming in and getting voted on. All resolutions that are passed are documented over [here](https://docs.coopcloud.tech/federation/resolutions/).
### Membership & dues
The federation currently has [9 members](https://docs.coopcloud.tech/federation/membership/) 🤓 As per [Resolution 002](https://docs.coopcloud.tech/federation/resolutions/passed/002/), all members present at the [bootstrap meeting](https://docs.coopcloud.tech/federation/minutes/2022-03-03/) are now members. Thanks everyone for turning up and joining in!
We've done some Open Collective adminstration and It is now possible to pay membership dues 🤑 Please submit an expense on behalf of your collective against the "Federation membership dues" tier. You can do that by clicking [here](https://opencollective.com/coop-cloud/contribute/federation-membership-dues-55111/checkout).
Membership is open if you're interested in joining! See [this FAQ question](https://docs.coopcloud.tech/federation/faq/#how-do-i-join-the-federation) for more information on how to get started. If you're hosting, developing or using free software which has some relation to Co-op Cloud, we'd encourage you to join the federation!
### Finances
Autonomic has published documentation about how the federation finances work [here](https://docs.coopcloud.tech/federation/finance/). If anything is unclear, please let us know!
As of today, the Open Collective balance represents the total sum of money available to the federation. This is currently **6,507.14 GBP** 🎉 This money is made up the ongoing Open Collective "Infrastructure Sustainability" tier donations and the remainder of [our previous round of funding](/blog/april-2023-funding-report/) (budget for this funding available to review [here](/blog/new-year-status-update/)). Thanks again for the support folks 😍
In [Resolution 003](https://docs.coopcloud.tech/federation/resolutions/passed/003/), we decided on budgets for paid work and an hourly rate. If you're a member of the federation, please submit budget proposals to get paid for your work!
### Meeting schedule
There is a poll currently flying around in the members only federation channel on Matrix. Please take a look and fill in your times! We will aim to discuss a fixed meeting schedule (which takes all members timezones into account) going forward, so we can avoid the organisational churn of online polls.
-- decentral1se on behalf of Autonomic

View File

@ -0,0 +1,62 @@
---
title: "The Federation Proposal"
date: 2022-04-10T11:32:59+02:00
draft: false
image: "/img/wow.jpg"
imageCredit: "'Nam June Paik, TV Garden' from the Internet Gardening collection by Trav Fryer (are.na/trav-fryer)."
description: "The Federation Proposal"
---
We've been working on a proposal for an organisational form for Co-op Cloud. It takes the shape of a federation: democratically managed & financially sustainable. We're looking for your feedback, comments & constructive criticism! Read on, & please do get in touch if you're interested in what a federation of co-operative hosters can be!
<!--more-->
## Where we're at now
Before we get into the proposal, some context on where we're at now. Some "metrics" then :nerd_face: We have...
- Packaged 90+ libre software [recipes](https://docs.coopcloud.tech/glossary/#recipe). All sorts of libre apps can be deployed today with our command line client `abra`.
- Stabilised our command line client [`abra`](https://docs.coopcloud.tech/abra/) (the `v0.4` release series is out this month). We've seen a diverse group of people picking the tool up and deploying a bunch of software such as [bath.social](https://bath.social), [bonfirenetworks.org](https://bonfirenetworks.org/), [utaw.tech](https://utaw.tech), [wiki.cafe](https://wiki.cafe), [biobulkbende.org](https://biobulkbende.org) & [servers.coop](https://servers.coop) :exploding_head:
- Established an [Open Collective](https://opencollective.com/coop-cloud) account which has been used to [compensate contributors](https://docs.coopcloud.tech/get-involved/#compensation) and begin with [building up a monthly income](https://opencollective.com/coop-cloud/transactions?type=CREDIT) which will sustain the project beyond grant funding.
- Facilitated space for an online community of friendly & helpful individuals to come together on our [matrix rooms](https://docs.coopcloud.tech/intro/contact/). Folks on the fediverse are fairly keen [on the project](https://social.coop/@coopcloud) and the ideas of the project have been well received on [ssb](https://scuttlebutt.nz).
- Released our new [documentation](https://docs.coopcloud.tech) which will soon be followed by a website & recipe catalogue re-design.
- Nearly come to the end of our [ECF funding](https://culturalfoundation.eu/stories/cosround4_autonomiccooperative) timeline which means The Beta Launch :tm: is nearly upon us.
It's been an amazing time, seeing more folks get involved & building up our new web of trust :tada:
## Where we want to be
We are now stabilising the technology and moving into a phase of education and organising work. We want to explain what we're doing & what we want to achieve. One major TODO that we would like to squash in the next months is the organisational model of Co-op Cloud. This is critical to ensuring the project will become sustainable.
So far, the project has been developed & maintained primarily by us, [Autonomic Co-op](https://autonomic.zone). We've taken an approach of de-centering ourselves from the project so as to create more room for others to participate. We've done this by creating separate branding, design, infrastructure and so on via [coopcloud.tech](https://coopcloud.tech). With this federation proposal, our final move out of the center will be underway.
The idea of the proposal is to formalise One Simple Idea: if you participate in this project, you should have decision-making power.
## The proposal
As part of the [beta bikemap goals](https://pad.autonomic.zone/s/C3uuqfSCk) we had always wanted to work out concretely the idea of what we originally called ["The Organisation"](https://pad.autonomic.zone/s/C3uuqfSCk#Co-op-Cloud-%E2%80%9CThe-Organisation%E2%80%9D). Here is what we wrote at the beginning of the ECF funding period:
> One of the core goals of Co-op Cloud is to have the project run and managed by a diverse group of tech co-ops and collectives who are invested into building, maintaining and extending this digital configuraton commons. In order to open the project up we need to work on shared governance guidelines, codes of conduct, building community trust and working towards economic sustainability.
We believe this document is the next step towards achieving this goal.
> [The Co-op Cloud Federation Proposal](https://pad.autonomic.zone/s/MLafJE2jC)
A warm beverage & a comfy chair is recommended for your review session -- it is indeed a Long Read :book:
## Process & timeline
In terms of feedback, we want to emphasise that we don't have to figure it all out right now. What is more important is that we lay the foundations for democratically working it out as we go. Any red flags, major concerns & blockers to participation would be great to discover at this early stage. All feeback & constructive criticism is welcome!
We are happy to hear from folks on any of the communication channels that we have. Please see our [contact docs](https://docs.coopcloud.tech/intro/contact/) for more. We will gather all feedback, discussions & follow up with people by the end of April 2022, and we are aiming to publish the proposal as final by mid May 2022 (**UPDATE**: based on feedback, we've removed this deadline as we work out more details with groups who are engaging with this. More to come Soon :tm:).
Thank you for your time!
## Acknowledgements
We would like to warmly thank the Good People of [CoopCycle](https://coopcycle.org/en/) who helped us along this path.

View File

@ -0,0 +1,40 @@
---
title: "New year status update"
date: 2023-01-02T11:32:59+02:00
draft: false
image: "/img/compute-space.png"
imageCredit: "Image from the Outdoor Computing Club collection by Fletcher Bach (are.na/fletcher-bach)."
description: "New year status update"
---
Happy new year all! Here's our status update and some good news 😽
<!--more-->
## New funding secured
We're delighted to report that we have secured more funding! The proposal we wrote can be read here [in full](https://docz.autonomic.zone/share/359c2b0d-9a3d-477c-84cc-73448be05142). In short, we'll be focusing on 1) finalising the Co-op Cloud federation (see [our original blog post about it for more](/blog/federation-proposal/)) 2) fixing critical bugs in `abra`. The support has come via a donor who wishes to remain anonymous. We would like to thank them for getting in touch with us and for supporting our work and this community 💕
## New community hackers & organisers, w e l c o m e 🌻
We've seen a lot of activity in the Matrix channels in the last months. It's been great to have a steady stream of new people step into the project. We've received wonderfully constructive feedback! We're happy to welcome members of [Arso](https://arso.xyz) and [Agaric](https://agaric.coop) into the project and see them testing out Co-op Cloud.
We're now a grand total of [8 `abra` hackers](https://git.coopcloud.tech/coop-cloud/abra/src/branch/main/AUTHORS.md)! It's reassuring to know that folks who want to dive in and hack on `abra` can do so without too much trouble. `abra` is now `0.6.0-beta`, see [the docs](https://docs.coopcloud.tech/abra/upgrade/) for how to upgrade.
## FOSDEM 2023 talk confirmed
`@decentral1se` will be at [FOSDEM 2023](https://fosdem.org/2023) doing [a talk](https://fosdem.org/2023/schedule/event/sovcloud_the_co_operative_cloud/) in the Sovereign Cloud devroom. Maybe see you there if you're around for some Co-op Cloud Beverages & Chats 🍺 Here's the abstract for the talk:
> Co-op Cloud is a software stack that aims to make hosting libre software applications simple for small service providers such as tech co-ops who are looking to standardise around an open, transparent and scalable infrastructure. It uses the latest container technologies and configurations are shared into the commons for the benefit of all.
>
> The project launched public beta in May 2022 and has seen a lot of interest from hosters, hackers and end-users. We are currently in the process of forming our organisational model which help us make decisions collectively and work towards financial stability.
>
> In this presentation, I'll give a status update on the Co-op Cloud ecosystem and where we're going. The thinking and principles of the project closely overlap with the ideas of the Sovereign Cloud and the intersection of the needs of end-users and infrastructure providers.
## Get Radical with us
We'd love to see more folks [get involved](https://docs.coopcloud.tech/get-involved/) :tada:
If you're thinking about setting up a technology co-op, you have a software stack sitting around waiting for you to pick up now; we have the technology! It's built by tech co-ops for tech co-ops. If you're curious but don't know where to start, [get in touch](https://docs.coopcloud.tech/intro/contact/) anyway!
We have [these amazing flyers](/pdf/flyercoopcloud.pdf) now (massive thanks to `@analuisa`)! Print, distribute, share, spread the word :trumpet:

View File

@ -0,0 +1,187 @@
---
title: "Selfhosted Infrastructure Any%"
date: 2024-03-30T16:00:00+00:00
draft: false
image: "/img/speedrun.jpg"
---
A Co-op Cloud speedrun attempt livestream! Brought to you by by libre software.
<!--more-->
It'd been so long since [the last Co-op Cloud demo video](https://asciinema.org/a/405836) that, since then, our core command-line tool `abra` had been completely rewritten (from Bash to Golang), and the entire Co-op Cloud project moved from an in-house Autonomic production to a participatory, democratic [Co-op Cloud federation](https://docs.coopcloud.tech/federation/). Definitely time for an update!
So, Co-op Cloud nerd `@3wc` picked up the fine tradition of [speedrunning](https://en.wikipedia.org/wiki/Speedrunning) for a "Selfhosted Infrastructure Any%" livestream attempting to beat their personal best time of 46m17s to deploy chat (Matrix / Fluffychat), microblogging (Hometown), and file-/calendar-sharing (Nextcloud) behind single sign-on (Keycloak).
<iframe title="Selfhosted Infrastructure Any%" width="560" height="315" src="https://tv.undersco.re/videos/embed/0044ff41-bf84-4b53-a6e0-4f7d7ce38622" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups"></iframe>
Before we dive into the write-up, mega-thanks to audience member `@yala` for putting together an excellent write-up during the stream, including some insightful questions. And, of course, to everyone who came along, and everyone who helped signal-boost the announcement beforehand!
# Concept
The integrated set-up of Keycloak/Matrix/Hometown/Nextcloud is a running start for a small-to-medium group looking for alternatives to corporate spyware. It comprises solid alternatives to Dropbox/Google Drive, Twitter, and Slack/Discord/Whatsapp. And, the entire stack can be hosted on a cheap server (or even an old laptop or desktop computer), and the services can be accessed using reasonably slick mobile and desktop apps.
Single sign-on means that in some ways, this set-up is even more usable, even for non-technical users, than the corporate equivalents. And, highlighting where Co-op Cloud can help, getting this combination of tools running manually without Co-op Cloud (that is, following the separate set-up instructions for each platform) is a non-trivial technical challenge.
The choice of apps is primarily geared towards working groups of 3-200 people, and the focus is on internal coördination platforms rather than publication.
## Preparation
To try and simulate an experience of setting up these apps for the first time, and as a nod to the purist conditions popular with videogame speedruns, the demo starts with a blank Debian Docker image (`docker run debian`) and a blank Debian 12 server. (All commands below are run inside that container, unless specified otherwise).
To avoid needing to screenshare DNS and server configuration, there are DNS records for `speedrun.coopcloud.tech` and `*.speedrun.coopcloud.tech` set up, and a pre-generated SSH key has permission to log into the server as root.
## Howto / script
### 1 Local setup
```bash
apt update && apt install vim curl wget openssh-client -y
export EDITOR=vim
```
(The recommended installation instructions for `abra` require both `curl` and `wget` for some reason. An issue has been opened to figure that out: [`#591`](https://git.coopcloud.tech/coop-cloud/organising/issues/591))
The next step is to copy-paste this from the [`abra` installation instructions](https://docs.coopcloud.tech/operators/tutorial/#install-abra):
```bash
curl https://install.abra.coopcloud.tech | bash
```
> An audience member commented that `curl X | bash` is not amazing security, and indeed downloading [the latest `abra` release binary](https://git.coopcloud.tech/coop-cloud/abra/releases) manually, and comparing the file checksums, would be more secure patches to [`docs.coopcloud.tech`](https://git.coopcloud.tech/coop-cloud/docs.coopcloud.tech/) extremely welcome! See more on [`#593`](https://git.coopcloud.tech/coop-cloud/organising/issues/593).
Then, running `abra autocomplete bash` shows the necessary commands to set us up some autocompletion for `abra` commands.
### 2. Server set-up
The next step, on the virtual server, is to run the ["Server set-up" section](https://docs.coopcloud.tech/operators/tutorial/#server-setup) of the Co-op Cloud docs:
```bash
ssh speedrun.coopcloud.tech
# docker install convenience script
wget -O- https://get.docker.com | bash
# setup swarm
docker swarm init
docker network create -d overlay proxy
```
(Skipping adding the current user to the `docker` group, because `root` already has permission to access the Docker daemon)
> As above, `wget ... | bash` is a bit wacky, this is the Docker-recommended installation method but there are others patches welcome!
Lastly, back on the local machine, `abra app server add speedrun.coopcloud.tech`
### 3. Traefik
```bash
abra app new traefik
abra app config traefik.speedrun.coopcloud.tech
abra app deploy traefik.speedrun.coopcloud.tech -c -n
```
(`-c` to skip waiting for the container to come up, and `-n` to skip the confirmation prompt)
![screenshot of Traefik dashboard](/img/speedrun-traefik.webp)
### 4. Keycloak
```bash
abra app new keycloak --secrets
abra app config keycloak.speedrun.coopcloud.tech
abra app deploy keycloak.speedrun.coopcloud.tech -c -n
```
Then the Keycloak interface is available at `https://keycloak.speedrun.coopcloud.tech`, necessary to set up the OpenID Connect "clients" for single sign-on for the other apps.
![screenshot of Keycloak login page](/img/speedrun-keycloak.webp)
### 5. Matrix
```bash
abra app new matrix-synapse
```
Meanwhile, by this point Keycloak is alive, and ready to create a new "client". Doing so requires specifying a "client ID", and generates a new "client secret", both of which get added:
```bash
abra app config matrix-synapse.speedrun.coopcloud.tech --secrets
# fill in SSO details
abra app secret insert matrix-synapse.speedrun.coopcloud.tech keycloak_client_secret v1 (value)
abra app deploy matrix-synapse.speedrun.coopcloud.tech -n -c
```
![screenshot of a terminal showing the above abra commands](/img/speedrun-matrix.webp)
### 6. Fluffychat
```bash
abra app new fluffychat
abra app config fluffychat.speedrun.coopcloud.tech -n -c
```
![screenshot of fluffychat login page](/img/speedrun-fluffychat.webp)
### 7. Hometown
```bash
abra app new hometown
```
Again, a new Keycloak "client" is needed, giving us a client secret and client ID.
Additionally (at least, for now), it's necessary to do some slightly cursed hacking on the server:
```bash
docker run -it git.coopcloud.tech/coop-cloud-chaos-patchs/hometown:v4.0.15-hometown-1.1.1 bash
/usr/local/bin/docker-entrypoint.sh bundle exec rake secret # once for otp_secret
/usr/local/bin/docker-entrypoint.sh bundle exec rake secret # then a second time for secret_key
/usr/local/bin/docker-entrypoint.sh bundle exec rake mastodon:webpush:generate_vapid_key
```
Then manually insert the secrets, generate the remaining ones, and edit in the `VAPID_PUBLIC_KEY` and the other SSO details:
```bash
abra app secret insert hometown.speedrun.coopcloud.tech vapid_private_key v1 <value>
abra app secret insert hometown.speedrun.coopcloud.tech otp_secret v1 <value>
abra app secret insert hometown.speedrun.coopcloud.tech secret_key v1 <value>
abra app config hometown.speedrun.coopcloud.tech
# set OIDC_* settings, and VAPID_PUBLIC_KEY
```
Now, finally, the app can be deployed!
```bash
abra app deploy hometown.speedrun.coopcloud.tech -n -c
```
![screenshot of the livestream, showing the speedrun timer, a quite-bad webcam
still, a terminal window with the above abra commands, and a chat log](/img/speedrun-hometown.webp)
### 8. Nextcloud
```bash
abra app new nextcloud --secrets
abra app deploy nextcloud.speedrun.coopcloud.tech
```
Annoyingly, Nextcloud needs stuff done in the web interface, and in the PHP config file, for SSO. So, with another new Keycloak client set up, the next step is logging into https://nextcloud.speedrun.coopcloud.tech, going to "Apps", installing "OIDC login by pulsejet", and then editing the config file:
```bash
abra app run nextcloud.speedrun.coopcloud.tech
apt update && apt install vim
vim config/config.php
# fill in from https://git.coopcloud.tech/coop-cloud/nextcloud#how-do-i-integrate-with-keycloak-sso
```
(in the demo, this was done from the server, but the above approach is probably conceptually simpler)
![screenshot of nextcloud login page](/img/speedrun-nextcloud.webp)
## Closing thoughts
Even though no records got broken, this was fun to make, and definitely a better way to prepare for an in-person demo than silent solo-hacking. It's also nice to get a little "this is how Co-op Cloud is currently looking" demo video out of it.
If you have ideas for future streams, hit us up on Mastodon ([@coopcloud@social.coop](https://social.coop/@coopcloud/)) or dive into our Matrix ([#coopcloud:autonomic.zone](https://matrix.to/#/#coopcloud:autonomic.zone)). Otherwise, follow us directly on owncast ([`@cast@cast.coopcloud.tech`](https://cast.coopcloud.tech/)) and/or peertube ([@coopcloud@tv.undersco.re](https://tv.undersco.re/a/coopcloud/)) to hear about future streams and videos when they happen!

View File

@ -29,7 +29,7 @@ Our rewrite of `abra`, the Co-op Cloud command-line tool, continues apace: the `
The machine-readable app index on [apps.coopcloud.tech](https://apps.coopcloud.tech) was down, but now it is back with all the new apps 💪
Meanwhile, [dev.apps.coopcloud.tech](https://dev.apps.coopcloud.tech) got some shiny new updates, including being able to filter the app list by score and name. Adding filtering has highlighted the amazing performance of [Elm](https://elm-lang.org) apps, giving near-instant feedback in a way that seems strange and refreshing in this age of every-button-click-usually-fires-off-20-HTTP-requests-and-1,000-DOM-changes. Still remains to be seen if it's a good long-term choice.
Meanwhile, [recipes.coopcloud.tech](https://recipes.coopcloud.tech) got some shiny new updates, including being able to filter the app list by score and name. Adding filtering has highlighted the amazing performance of [Elm](https://elm-lang.org) apps, giving near-instant feedback in a way that seems strange and refreshing in this age of every-button-click-usually-fires-off-20-HTTP-requests-and-1,000-DOM-changes. Still remains to be seen if it's a good long-term choice.
## New apps

View File

@ -0,0 +1,67 @@
---
title: "This month in Co-op Cloud April 2022"
date: 2022-04-04T12:03:00+02:00
draft: false
image: "/img/growingcircuit.jpg"
imageCredit: "A plant pot with a circuit board in it, from the internet gardening collection by Trav Fryer are.na/trav-fryer/internet-gardening"
description: "The best kind of cloud software updates."
---
We've been heads-down sprinting towards our beta release of Co-op Cloud, and time has flown by! Here's what's new in the Co-op Cloudy skies since our last update in December.
#### Write-up from European Cultural Foundation
Our grant funders for the Beta release, the European Cultural Foundation, did a lovely write-up of Co-op Cloud, and Autonomic, the co-operative who initiated the project: [Developing an ecosystem of cooperative service providers that host open-source tools](https://culturalfoundation.eu/stories/cosround4_autonomiccooperative).
#### Shiny new looks for our documentation
The [Co-op Cloud documentation](https://docs.coopcloud.tech/) is also getting a polish as we organise documentation for operators, maintainers and organisers, update our app catalogue (now with over 80 packaged apps) as well as more extensive recipes and a guide for `abra`. For a full list of our latest app releases, read on.
#### Call for case studies
We want to hear from you if you use Co-op Cloud! Please [get in touch](https://docs.coopcloud.tech/intro/contact/) to tell us about your experience by emailing [helo@coopcloud.tech](mailto:helo@coopcloud.tech), or drop by our Matrix channels.
#### Wordpress bedrock / composer excitement
At Autonomic, we used Co-op Cloud as the inspiration, and the deployment strategy, for a Bold New Approach to Wordpress, based on Docker / Bedrock find details in an upcoming blog post!
#### New recipes in, old recipes out
We've been tightening the bolts on our recipe update process, rolling out new versions of:
- [Discourse](https://git.coopcloud.tech/coop-cloud/discourse/)
- [Matrix-Synapse](https://git.coopcloud.tech/coop-cloud/matrix-synapse/)
- [Nextcloud](https://git.coopcloud.tech/coop-cloud/nextcloud/)
- [Outline](https://git.coopcloud.tech/coop-cloud/outline/)
- [Peertube](https://git.coopcloud.tech/coop-cloud/peertube/)
- [Selfoss](https://git.coopcloud.tech/coop-cloud/selfoss/)
- [Wallabag](https://git.coopcloud.tech/coop-cloud/wallabag/)
We've also taken the difficult decision to start a deprecation process for a few apps where the development process seems to have paused (or at least, we can't find where it's moved off to!):
- [Laplace](https://git.coopcloud.tech/coop-cloud/laplace)
- [Oasis](https://git.coopcloud.tech/coop-cloud/oasis/)
- [Swarmpit](https://git.coopcloud.tech/coop-cloud/swarmpit)
#### A Server Scoop?
Servers.coop, hardware to Co-op Cloud's software, now has a presence on the [Fediverse (Mastodon)](https://sunbeam.city/@serverscoop) and [Twitter](https://nitter.net/servers_coop) -- give us a follow, help spread the word, and stay tuned for a very exciting upcoming crowdfunding campaign to get this vital hosting democratisation effort off the ground. Swing along to our [Matrix Space](https://matrix.to/#/!bDeUsKuqTQwBjBEAuj:autonomic.zone?via=autonomic.zone&via=matrix.org&via=gottsnack.net), or [via our main Matrix room](https://matrix.to/#/##serverscoop:libera.chat), for those of us on older clients (also available on IRC as `##serverscoop` on `libera.chat`), and say hi!
#### New apps
- [Limesurvey](https://git.coopcloud.tech/coop-cloud/limesurvey/) by `@3wc`
- [Minecraft](https://git.coopcloud.tech/coop-cloud/minecraft/) by `@3wc` (and yes Minetest is on its way, thanks ``@yusf`!)
- [Kanboard](https://git.coopcloud.tech/coop-cloud/kanboard/) by `@knoflook`
- [Lemmy](https://git.coopcloud.tech/coop-cloud/lemmy/) by `@3wc`
#### Financial sustainability
We'd like to take a moment to say :rocket: THANK YOU :rocket: to the amazing folks who have taken the initiative to set up recurring subscriptions on our community Open Collective account over on [opencollective.com/coop-cloud](https://opencollective.com/coop-cloud/transactions?type=CREDIT).
This income goes directly into sustaining our costs for the collective infrastructure ([git.coopcloud.tech](https://git.coopcloud.tech), [coopcloud.tech](https://coopcloud.tech), [docs.coopcloud.tech](https://docs.coopcloud.tech), the server with [servers.coop](https://servers.coop), etc.)
As part of our beta launch we will be generalising this support tier & creating new tiers which become part of what it means to join the Co-op Cloud Federation! A proposal document is in the works and will be available for general feedback & amendments Very Soon :tm:
---
If any of this sounds interesting, please drop by [our Matrix space](https://app.element.io/#/room/!xSMwGbdVehScXcIFwS:autonomic.zone?via=autonomic.zone) and say hello :wave:. We'd love to hear from you and to have a chat about what you think of the project and how it might be useful for you :heartpulse: You can also follow the project on [Twitter](https://twitter.com/Coop_Cloud) and/or [the Fediverse](https://social.coop/@coopcloud).

View File

@ -22,14 +22,14 @@ We had a great chat at this month's Kite-Flying about Co-op Cloud "The Organisat
## New app packages
- [Snikket](https://git.coopcloud.tech/coop-cloud/snikket/), chat that is simple, secure, and private (an XMPP/Jabber server distribution that comes with its own nice client) by `@decentral1se` and `@3wc.`
- [Outline](https://git.coopcloud.tech/coop-cloud/outline), Notion-style team knowledge base and wiki, by `@travvy` and `@3wc`
- [n8n](https://git.coopcloud.tech/coop-cloud/n8n/), easily automate tasks across different services, by `@roxxers`
- [Jupyter-lab](https://git.coopcloud.tech/coop-cloud/jupyter-lab), extensible environment for interactive and reproducible computing, by `@3wc`
- [Outline](https://git.coopcloud.tech/coop-cloud/outline), Notion-style team knowledge base and wiki, by `@travvy` and `@3wc`
- [n8n](https://git.coopcloud.tech/coop-cloud/n8n/), easily automate tasks across different services, by `@roxxers`
- [Jupyter-lab](https://git.coopcloud.tech/coop-cloud/jupyter-lab), extensible environment for interactive and reproducible computing, by `@3wc`
- [Element-Web](https://git.coopcloud.tech/coop-cloud/element-web) by `@decentral1se`. We've got a proof-of-concept of Matrix synapse <-> keycloak <-> Element-web integration set up for our comrades at ruangrupa, who're doing ongoing testing.
### Recipe catalogue: redesign and update
Autonomic deisgners `@analuisa` and `@hazelnot` have kicked off a redesign of the [recipe catalog](https://dev.apps.coopcloud.tech/), starting with the review of the way that apps are categorised, and the information that's included.
Autonomic deisgners `@analuisa` and `@hazelnot` have kicked off a redesign of the [recipe catalog](https://recipes.coopcloud.tech/), starting with the review of the way that apps are categorised, and the information that's included.
Meanwhile, `@3wc` has been teaching `abra` to read metadata about packaging status and supported features from each recipe's `README.md` file to make sure we have the data to be able to display it.
@ -50,13 +50,13 @@ Co-op Cloud is partying like it's 1999! Thanks to our new Snikket recipe, we've
(More permananent room Coming Soon™)
This is a really interesting alternative to other communications platforms we already have packaged like Matrix, Rocketchat and email. XMPP servers are famously low on resource usage, and there's a really nice wide range of client apps for different platforms.
This is a really interesting alternative to other communications platforms we already have packaged like Matrix, Rocketchat and email. XMPP servers are famously low on resource usage, and there's a really nice wide range of client apps for different platforms.
Medium-term, we're curious about the prospects of bridging different systems: making it easier to run chat servers and bridges could help public interest projects meet people where they're at.
Medium-term, we're curious about the prospects of bridging different systems: making it easier to run chat servers and bridges could help public interest projects meet people where they're at.
### `abra` 0.3.x-alpha is out
The alpha testing is still going on in the usual chaotic manner, we're hoping to stabilise `abra` in this ~~0.3.x~~ 0.4.x series and hopefully do some sort of "code freeze" on new features and focus on squashing bugs, writing documentation and testing, testing, testing. Thanks to everyone who contributed to get this far :heart:
The alpha testing is still going on in the usual chaotic manner, we're hoping to stabilise `abra` in this ~~0.3.x~~ 0.4.x series and hopefully do some sort of "code freeze" on new features and focus on squashing bugs, writing documentation and testing, testing, testing. Thanks to everyone who contributed to get this far :heart:
`abra app restart <app>` is back! You no longer have to ssh to your remote machines to fix happy accidents.

37
data/case_studies.json Normal file
View File

@ -0,0 +1,37 @@
[
{
"title": "[Servers Co-op](https://servers.coop)",
"thumbnail": "/img/thumbs/servers-coop.png",
"content": "is an algorithm for co-operation: a technical, governance, and cost-sharing stack which radically reduces the cost and complexity of setting up a server hosting provider. Our goal is to support an emerging ecosystem of grassroots, decentralised server hosting providers by stewarding a technical and social toolkit designed for free software communities worldwide."
},
{
"title": "[Autonomic Co-op](https://autonomic.zone)",
"thumbnail": "/img/thumbs/autonomic_logo_black.svg",
"content": "is a co-operative that is owned and run by its workers. We build technologies and infrastructure to empower users to make a positive impact on the world. All of our services reflect our commitment to our core values: sustainability, transparency & privacy."
},
{
"title": "[Vermont Real Estate Cooperative](https://vrec.coop) (VREC)",
"thumbnail": "/img/thumbs/vrec.jpg",
"content": "is a cooperative business formed by Vermont residents to own and run commercial and residential property. We are a member-owned and -controlled business that offers: for our community, sustainable local ownership of real estate that builds community wealth. For tenants: reasonable, stable rents and a way to share in any surplus. For member-owners: a values-based investment, a vote in key decisions, and the opportunity to help shape the direction of the business. A way to support the solidarity economy: part of our mission is to rent to co-ops, collectives, and similar social enterprises."
},
{
"title": "[United Tech and Allied Workers](https://utaw.tech) (UTAW)",
"thumbnail": "/img/thumbs/utaw.webp",
"content": "is a branch of the Communication Workers Union which seeks to represent and fight for workers interests in the tech industry. UTAW in its organisation collectivises the small amount of power each worker has in their workplace into a force capable of meeting the boss's power in every workplace. The union branch responsibly wields worker power to fight for our interests - by negotiating agreements with employers, providing legal support, and if necessary, mobilising workers to take part in direct action."
},
{
"title": "[Industrial Workers of the World](https://iww.org.uk) (IWW)",
"thumbnail": "/img/thumbs/iww.jpg",
"content": "is a revolutionary global union, fighting for better conditions today and economic democracy tomorrow. By training our members in powerful organising methods, direct-action and direct-democracy, we put power in the hands of workers."
},
{
"title": "[ruangrupa](https://ruangrupa.id) & [Lumbung.space](https://lumbung.space)",
"thumbnail": "/img/thumbs/lumbung.svg",
"content": "is an experimental social and publishing platform by and for the lumbung artists and lumbung members initiated by ruangrupa. It is a (digital) living room for our collective lumbung building process that allows us to connect, support each other, and also share knowledge collectively. It is built on open platforms, co-operative governance, and as a community infrastructure meant for our practices to develop and thrive."
},
{
"title": "[Threndol Tutoring](https://threndoltutoring.com/)",
"thumbnail": "/img/thumbs/threndol-tutoring.png",
"content": "offers gamified lessons to help students be effective in their studies. We work well with students who have obstacles such as ADHD, dyslexia, and confidence struggles; as well as students who are high achievers and looking to keep grades high or break into a higher symbol. Our unique style of tutoring where we build skills using games builds the students capacity to excel."
}
]

View File

@ -1,15 +1,15 @@
[
{
"left": "What is Co-op Cloud?",
"right": "Co-op Cloud is a software stack that aims to make hosting libre software applications simple for small service providers such as tech co-operatives who are looking to standardise around an open, transparent and scalable infrastructure. It uses the latest container technologies and configurations are shared into the commons for the benefit of all."
"right": "Public interest infrastructure. An alternative to corporate clouds built by tech co-ops. It uses the latest container technologies and configurations are shared into the commons for the benefit of all."
},
{
"left": "Is this a good long-term choice?",
"right": "Co-op Cloud re-uses upstream libre software project packaging efforts (containers) so that we can meet projects where they are at and reduce duplication of effort. The project proposes the notion of more direct coordination between distribution methods (app packagers) and production methods (app developers)."
"right": "Co-op Cloud re-uses upstream libre software project packaging efforts (containers). We aim to directly coordinate between distribution methods (app packagers) and production methods (app developers) to reduce duplication of effort."
},
{
"left": "What libre apps are available?",
"right": "Co-op Cloud helps deploy and maintain applications that you may already use in your daily life: Nextcloud, Jitsi, Mediawiki, Rocket.chat and many more! These are tools that are created by volunteer communities who use [libre software licenses](https://www.gnu.org/philosophy/free-sw.html) in order to build up the public software commons and offer more digital alternatives."
"right": "You can see all the Co-op Cloud app \"recipes\" in [the online, live-updated recipe catalogue](https://recipes.coopcloud.tech/). Among these are Nextcloud, Jitsi, Mediawiki, Rocket.chat and many more!"
},
{
"left": "What about other alternatives?",

3
renovate.json Normal file
View File

@ -0,0 +1,3 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
}

BIN
static/img/beta.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
static/img/comp-squat.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 KiB

BIN
static/img/local-it.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
static/img/solifedi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
static/img/speedrun.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<svg viewBox="0 0 441.77377 370.45794" width="441.77377" height="370.45794" xmlns="http://www.w3.org/2000/svg">
<g id="layer1" style="display:inline" transform="matrix(1, 0, 0, 1, -0.058608, -0.052504)">
<g id="g6283" transform="translate(-40.300879,-37.06929)" style="display:inline;fill:#feffff;fill-opacity:1">
<path style="opacity: 1; fill-opacity: 1; stroke-width: 1.06667; fill: rgb(0, 0, 0);" d="m 265.85061,350.50909 -0.79341,0.43484 -43.19061,-24.34142 -42.13333,-24.34142 -24.0329,-13.87388 -23.50638,-13.89599 -45.826952,14.73333 c -15.470929,4.29952 -45.980651,15.05668 -45.980651,15.05668 l -0.02689,-6.77971 c 0,0 32.651903,-10.58617 48.973773,-15.89205 l 39.73333,-12.91641 v -74.4088 -74.40884 L 105.33326,112.12419 81.599927,104.37297 64.799928,98.877912 48.11453,93.382855 c 0.0026,-2.782182 -0.0062,-6.392142 -0.01723,-6.413409 l 84.09668,26.674154 66.03677,-38.282896 66.82645,-38.23891 133.97382,76.309766 83.10223,-47.829265 -0.017,3.99732 -0.017,3.466667 -79.92234,45.866668 -0.0219,76.96337 -0.0219,76.96336 c 0,0 -137.07591,78.68694 -136.28264,77.6495 z m 5.14076,-9.56508 5.92478,-3.34448 59.38209,-34.13334 59.38211,-34.13333 0.0265,-74.87111 0.0264,-74.87111 -130.67605,-75.053473 -64.94391,37.197845 -64.59572,37.197848 -0.0255,75.27742 -0.0255,75.27742 64.8,37.40039 64.8,37.40038 z m -0.84503,-23.95423 -3.45358,2.1009 -1.26416,-2.77451 -1.53826,-3.45216 c 17.17567,-9.96363 35.25386,-20.06932 52.72094,-30.10953 l 50.47803,-29.01512 1.33197,-0.51113 1.33198,-0.51114 1.21644,2.6698 1.21644,2.66979 -0.75978,0.44828 -0.75978,0.44827 -48.53333,27.96782 -48.53333,27.96782 z M 159.99999,254.93333 H 156.8 v -60.8 -60.8 h 3.19999 3.2 v 60.8 60.8 z m 157.86667,-148.40798 -49.6,-28.751318 -2.37274,-1.302542 -2.37273,-1.30254 1.8394,-2.774615 1.8394,-2.774613 51.2,29.755606 51.2,29.755612 1.44382,0.87209 1.4438,0.87209 c 0,0 -3.70277,5.23162 -3.61745,5.14513 0,0 -34.03025,-19.65613 -51.0035,-29.4949 z" id="path6285"/>
</g>
</g>
<g id="layer3" transform="matrix(1, 0, 0, 1, -0.058608, -0.052504)">
<g aria-label="/AUTO|NOMIC\" id="text1530-7-2" style="font-style:normal;font-weight:normal;font-size:44px;line-height:1.25;font-family:sans-serif;letter-spacing:-3px;display:inline;fill:#feffff;fill-opacity:1;stroke:none">
<path d="m 49.951509,329.37044 h 6.292 q 0.396,0 0.66,0.308 0.308,0.264 0.308,0.572 0,0.264 -0.088,0.484 l -15.752,35.596 q -0.528,1.32 -1.936,1.32 h -6.16 q -0.396,0 -0.704,-0.308 -0.264,-0.264 -0.264,-0.572 0,-0.264 0.088,-0.484 l 15.62,-35.596 q 0.484,-1.32 1.936,-1.32 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path839"/>
<path d="m 70.843442,363.95444 h -8.316 q -0.396,0 -0.704,-0.264 -0.264,-0.308 -0.264,-0.572 0,-0.264 0.044,-0.396 l 9.592,-28.116 q 0.396,-1.452 1.98,-1.452 h 12.232 q 1.584,0 1.98,1.452 l 9.592,28.116 q 0.044,0.132 0.044,0.396 0,0.264 -0.308,0.572 -0.264,0.264 -0.66,0.264 h -8.316 q -1.408,0 -1.98,-1.496 l -1.1,-3.08 h -10.736 l -1.1,3.08 q -0.572,1.496 -1.98,1.496 z m 11.572,-13.156 -3.124,-9.152 -3.124,9.152 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path841"/>
<path d="m 125.26337,361.18244 q -4.31199,3.212 -11.70399,3.212 -7.39201,0 -11.74801,-3.212 -4.311995,-3.212 -4.311995,-10.032 v -16.808 q 0,-0.484 0.352,-0.836 0.352,-0.352 0.836,-0.352 h 9.196005 q 0.48399,0 0.836,0.352 0.352,0.352 0.352,0.836 v 17.512 q 0,1.804 1.188,2.772 1.232,0.968 3.3,0.968 2.068,0 3.256,-0.968 1.232,-0.968 1.232,-2.772 v -17.512 q 0,-0.484 0.352,-0.836 0.35199,-0.352 0.836,-0.352 h 9.19599 q 0.484,0 0.83601,0.352 0.35199,0.352 0.35199,0.836 v 16.808 q 0,6.82 -4.356,10.032 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path843"/>
<path d="m 132.77931,333.15444 h 30.36 q 0.484,0 0.836,0.352 0.352,0.352 0.352,0.836 v 7.084 q 0,0.484 -0.352,0.836 -0.352,0.352 -0.836,0.352 h -9.46 v 20.152 q 0,0.484 -0.352,0.836 -0.352,0.352 -0.836,0.352 h -9.064 q -0.484,0 -0.836,-0.352 -0.352,-0.352 -0.352,-0.836 v -20.152 h -9.46 q -0.484,0 -0.836,-0.352 -0.352,-0.352 -0.352,-0.836 v -7.084 q 0,-0.484 0.352,-0.836 0.352,-0.352 0.836,-0.352 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path845"/>
<path d="m 198.72724,345.87044 v 5.368 q 0,4.532 -2.2,7.568 -2.2,3.036 -5.764,4.312 -3.564,1.276 -8.404,1.276 -4.84,0 -8.404,-1.276 -3.564,-1.276 -5.764,-4.312 -2.2,-3.036 -2.2,-7.656 v -5.192 q 0,-6.644 4.532,-9.944 4.576,-3.3 11.836,-3.3 7.26,0 11.792,3.3 4.576,3.3 4.576,9.856 z m -20.856,-0.836 v 7.04 q 0,1.804 1.188,2.772 1.232,0.968 3.3,0.968 2.068,0 3.256,-0.968 1.232,-1.012 1.232,-2.816 v -6.952 q 0,-1.804 -1.232,-2.772 -1.188,-1.012 -3.256,-1.012 -2.068,0 -3.3,0.968 -1.188,0.968 -1.188,2.772 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path847"/>
<path d="m 213.59117,326.55444 h 6.336 q 0.484,0 0.836,0.352 0.352,0.352 0.352,0.836 v 41.58 q 0,0.484 -0.352,0.836 -0.352,0.352 -0.836,0.352 h -6.336 q -0.484,0 -0.836,-0.352 -0.352,-0.352 -0.352,-0.836 v -41.58 q 0,-0.484 0.352,-0.836 0.352,-0.352 0.836,-0.352 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path849"/>
<path d="m 256.74711,333.15444 h 8.184 q 0.484,0 0.836,0.352 0.352,0.352 0.352,0.836 v 28.424 q 0,0.484 -0.352,0.836 -0.352,0.352 -0.836,0.352 h -7.084 q -1.056,0 -1.76,-0.924 l -9.592,-12.232 v 11.968 q 0,0.484 -0.352,0.836 -0.352,0.352 -0.836,0.352 h -8.184 q -0.484,0 -0.836,-0.352 -0.352,-0.352 -0.352,-0.836 v -28.424 q 0,-0.484 0.352,-0.836 0.352,-0.352 0.836,-0.352 h 7.128 q 1.056,0 1.716,0.88 l 9.592,13.244 v -12.936 q 0,-0.484 0.352,-0.836 0.352,-0.352 0.836,-0.352 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path851"/>
<path d="m 301.92704,345.87044 v 5.368 q 0,4.532 -2.2,7.568 -2.2,3.036 -5.764,4.312 -3.564,1.276 -8.404,1.276 -4.84,0 -8.404,-1.276 -3.564,-1.276 -5.764,-4.312 -2.2,-3.036 -2.2,-7.656 v -5.192 q 0,-6.644 4.532,-9.944 4.576,-3.3 11.836,-3.3 7.26,0 11.792,3.3 4.576,3.3 4.576,9.856 z m -20.856,-0.836 v 7.04 q 0,1.804 1.188,2.772 1.232,0.968 3.3,0.968 2.068,0 3.256,-0.968 1.232,-1.012 1.232,-2.816 v -6.952 q 0,-1.804 -1.232,-2.772 -1.188,-1.012 -3.256,-1.012 -2.068,0 -3.3,0.968 -1.188,0.968 -1.188,2.772 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path853"/>
<path d="m 327.61497,333.15444 h 8.052 q 0.484,0 0.836,0.352 0.352,0.352 0.352,0.836 v 28.424 q 0,0.484 -0.352,0.836 -0.352,0.352 -0.836,0.352 h -7.964 q -0.484,0 -0.836,-0.352 -0.352,-0.352 -0.352,-0.836 v -13.64 l -3.212,6.336 q -0.264,0.528 -0.792,0.836 -0.528,0.264 -1.056,0.264 h -2.992 q -0.748,0 -1.232,-0.396 -0.484,-0.396 -0.616,-0.704 l -3.212,-6.336 v 13.64 q 0,0.484 -0.352,0.836 -0.352,0.352 -0.836,0.352 h -7.964 q -0.484,0 -0.836,-0.352 -0.352,-0.352 -0.352,-0.836 v -28.424 q 0,-0.484 0.352,-0.836 0.352,-0.352 0.836,-0.352 h 8.052 q 1.232,0 1.892,1.188 l 5.764,10.56 5.764,-10.56 q 0.66,-1.188 1.892,-1.188 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path855"/>
<path d="m 368.30691,342.17444 h -7.964 v 12.76 h 7.964 q 0.484,0 0.836,0.352 0.352,0.352 0.352,0.836 v 6.644 q 0,0.484 -0.352,0.836 -0.352,0.352 -0.836,0.352 h -27.896 q -0.484,0 -0.836,-0.352 -0.352,-0.352 -0.352,-0.836 v -6.644 q 0,-0.484 0.352,-0.836 0.352,-0.352 0.836,-0.352 h 8.052 v -12.76 h -8.052 q -0.484,0 -0.836,-0.352 -0.352,-0.352 -0.352,-0.836 v -6.644 q 0,-0.484 0.352,-0.836 0.352,-0.352 0.836,-0.352 h 27.896 q 0.484,0 0.836,0.352 0.352,0.352 0.352,0.836 v 6.644 q 0,0.484 -0.352,0.836 -0.352,0.352 -0.836,0.352 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path857"/>
<path d="m 384.71084,345.03444 v 7.04 q 0,1.804 1.188,2.772 1.232,0.968 3.168,0.968 1.98,0 2.86,-0.616 0.88,-0.616 1.452,-1.804 0.616,-1.188 1.584,-1.188 h 9.504 q 0.396,0 0.66,0.308 0.308,0.264 0.308,0.66 0,4.092 -3.872,7.48 -1.936,1.672 -5.148,2.728 -3.212,1.012 -7.568,1.012 -4.356,0 -7.964,-1.32 -3.564,-1.364 -5.808,-4.4 -2.244,-3.08 -2.244,-7.524 v -5.192 q 0,-4.444 2.244,-7.524 4.224,-5.72 14.124,-5.72 4.004,0 7.216,1.056 3.212,1.012 5.148,2.684 3.872,3.388 3.872,7.48 0,0.396 -0.308,0.704 -0.264,0.264 -0.66,0.264 h -9.504 q -0.968,0 -1.584,-1.188 -0.572,-1.188 -1.452,-1.804 -0.88,-0.616 -2.86,-0.616 -1.936,0 -3.168,0.968 -1.188,0.968 -1.188,2.772 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path859"/>
<path d="m 435.52277,366.28644 q 0.088,0.22 0.088,0.484 0,0.308 -0.308,0.572 -0.264,0.308 -0.66,0.308 h -6.16 q -1.408,0 -1.936,-1.32 l -15.752,-35.596 q -0.088,-0.22 -0.088,-0.484 0,-0.308 0.264,-0.572 0.308,-0.308 0.704,-0.308 h 6.292 q 1.452,0 1.936,1.32 z" style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 44px; font-family: &quot;Rubik Mono One&quot;; fill-opacity: 1; fill: rgb(0, 0, 0);" id="path861"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

BIN
static/img/thumbs/iww.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -0,0 +1,21 @@
<svg width="333" height="103" viewBox="0 0 333 103" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M62.0719 1.63379C60.1034 1.63379 58.9314 2.6408 58.9314 4.32484V42.4945C58.9314 46.3519 57.9699 49.2875 56.0753 51.2162C54.1921 53.1392 51.3418 54.1121 47.5982 54.1121C44.4577 54.1121 41.926 53.3782 40.0826 51.9274C37.659 50.0215 36.4358 46.8696 36.4358 42.5514V25.6826C36.4358 23.697 34.7745 22.9915 33.3465 22.9915C30.4506 22.9915 30.1377 24.8747 30.1377 25.6826V42.7107C30.1377 48.1668 31.6681 52.4167 34.6778 55.3524C37.6874 58.2824 42.0511 59.7673 47.6551 59.7673C53.3046 59.7673 57.6911 58.2937 60.695 55.3922C63.699 52.4736 65.2237 48.2123 65.2237 42.7164V4.32484C65.2237 2.61235 64.0745 1.63379 62.0719 1.63379Z" fill="#F04B1E"/>
<path d="M329.596 12.7454C329.47 12.5917 329.328 12.5007 329.209 12.4268C329.146 12.3869 329.084 12.3471 329.055 12.3187C329.032 12.2902 328.981 12.1992 328.953 12.1423C328.873 12.0001 328.788 11.8351 328.64 11.7042C328.333 11.4368 327.883 11.1751 327.445 10.9191C327.297 10.8337 327.149 10.7484 327.007 10.6574C325.858 9.96328 324.14 9.17246 322.49 10.3217L322.41 10.3786L322.353 10.4583C321.756 11.323 321.682 12.5007 321.608 13.741C321.579 14.2303 321.545 14.7366 321.483 15.2373C321.426 15.6867 321.375 16.1874 321.323 16.7165C321.204 17.8828 321.073 19.2084 320.863 19.9139C320.828 20.0277 320.618 20.2041 320.453 20.3406C320.259 20.4999 320.06 20.6649 319.907 20.8811C319.81 21.0176 319.742 21.1599 319.679 21.3021C319.628 21.4102 319.582 21.5069 319.537 21.5752C319.4 21.7743 319.247 21.9279 319.082 22.0872C318.928 22.2351 318.775 22.3888 318.638 22.5765C318.382 22.9292 318.291 23.3389 318.206 23.6973C318.16 23.9078 318.115 24.1012 318.041 24.2833C317.944 24.5336 317.677 24.8522 317.506 25.0571C317.341 25.2562 317.159 25.5122 316.988 25.7625C316.834 25.9844 316.675 26.2063 316.578 26.3201C316.51 26.3997 316.391 26.4794 316.271 26.5704C316.072 26.7126 315.845 26.8719 315.668 27.1166C315.549 27.2816 315.48 27.4352 315.424 27.5604C315.372 27.6798 315.338 27.7481 315.293 27.7936C315.162 27.9245 314.968 28.0383 314.764 28.152C314.564 28.2658 314.36 28.3853 314.166 28.5446C314.041 28.6527 313.95 28.7608 313.876 28.8518C313.825 28.9144 313.779 28.9713 313.745 28.9941C313.7 29.0282 313.626 29.0623 313.54 29.1022C313.427 29.1591 313.29 29.2159 313.153 29.3127C312.92 29.472 312.744 29.6711 312.567 29.8645C312.465 29.9783 312.368 30.0921 312.266 30.1774C311.959 30.4505 311.64 30.7009 311.333 30.9455C310.923 31.2698 310.502 31.6055 310.115 31.9866C309.791 32.1346 309.438 32.1858 309.029 32.2427C308.733 32.2825 308.397 32.3337 308.039 32.4247C307.476 32.5726 306.747 32.8742 306.19 33.1928C305.41 33.6422 303.789 34.581 304.506 36.2081C304.921 37.1525 305.951 38.188 306.793 38.5237C307.123 38.6545 307.436 38.7114 307.732 38.7114C308.539 38.7114 309.228 38.3018 309.859 37.9263C310.297 37.6646 310.713 37.4199 311.134 37.3232C312.203 37.0729 313.432 36.7372 314.456 36.1285L314.53 36.083L314.587 36.0204C315.321 35.167 316.169 34.4274 316.988 33.7048C318.183 32.658 319.412 31.5713 320.396 30.0978C320.584 29.9783 320.732 29.8304 320.863 29.6938C321.005 29.5459 321.096 29.4663 321.175 29.4264C321.244 29.6085 321.158 29.8759 320.948 30.3993C320.8 30.7578 320.652 31.1219 320.618 31.5144C320.561 32.1687 320.868 32.8856 321.443 33.4374C321.995 33.9608 322.66 34.2169 323.269 34.1315L323.337 34.1201L323.4 34.0974C324.709 33.5683 324.777 31.9241 324.839 30.4733C324.873 29.6995 324.908 28.8973 325.112 28.3682C325.482 27.9302 325.738 27.3669 325.983 26.8264C326.256 26.2234 326.54 25.5975 326.933 25.3074L327.001 25.2562L327.052 25.1879C327.456 24.636 327.701 23.9021 327.934 23.191C327.968 23.0942 327.997 23.0032 328.031 22.9065C328.611 22.3546 328.975 21.5752 329.334 20.8242C329.533 20.4032 329.721 20.0049 329.926 19.6863L329.965 19.6294L329.988 19.5612C330.876 16.8246 330.722 14.1449 329.596 12.7454Z" fill="#F0D5C0"/>
<path d="M301.735 27.9755C301.798 27.8105 301.866 27.6171 301.923 27.4066C302.111 26.7011 302.156 25.9558 302.207 25.2446C302.247 24.6529 302.281 24.1011 302.389 23.6004C302.475 23.1965 302.611 22.7868 302.753 22.3545C303.049 21.4555 303.379 20.4372 303.396 19.1741C303.635 18.736 303.834 18.2525 304.028 17.7859C304.227 17.308 304.415 16.8586 304.631 16.4603C305.291 16.0052 305.814 15.4135 306.315 14.8389C307.254 13.775 308.062 12.8476 309.598 12.9102C309.763 12.9159 309.95 12.9329 310.127 12.95C310.821 13.0183 311.691 13.1036 312.072 12.4209C312.562 11.5504 312.067 10.4467 310.741 9.46814C309.928 8.86507 308.904 8.41562 307.766 8.17098C307.555 8.12546 307.339 8.07426 307.123 8.02306C306.104 7.78979 305.052 7.54515 304.056 7.58498C303.482 7.60773 302.918 7.86944 302.372 8.11977C302.23 8.18805 302.082 8.25063 301.934 8.3189C301.746 8.39855 301.553 8.47251 301.365 8.54647C300.87 8.73991 300.409 8.91628 300.091 9.1723C299.681 9.50228 299.294 10.1167 298.953 10.6686C298.788 10.9303 298.634 11.1806 298.515 11.3342C297.957 12.0511 297.838 12.9102 297.707 13.8205C297.644 14.2586 297.582 14.7137 297.468 15.203C297.394 15.5102 297.314 15.8117 297.235 16.1019C297.024 16.8756 296.802 17.6778 296.774 18.6052C296.757 19.1002 296.785 19.6008 296.814 20.0844C296.854 20.7614 296.888 21.4043 296.808 22.0017C296.785 22.1895 296.711 22.4 296.637 22.6162C296.558 22.8437 296.472 23.0998 296.416 23.3785C296.29 24.0101 296.216 24.835 296.171 25.3926C296.154 25.6088 296.125 25.8306 296.097 26.0525C296.046 26.4849 296 26.8888 296.006 27.2188C296.023 27.8731 296.279 28.4307 296.507 28.9256C296.592 29.1191 296.677 29.2954 296.734 29.4604C296.865 29.8302 296.984 30.1943 297.104 30.5414C297.491 31.702 297.855 32.8001 298.469 33.7559C299.004 34.5922 300.074 36.2592 301.957 36.2592C302.128 36.2592 302.304 36.2478 302.492 36.2136L302.64 36.1909L302.753 36.0942C304.181 34.8937 303.482 33.3348 302.918 32.0832L302.827 31.8841C302.668 31.5256 302.475 31.1957 302.293 30.8771C301.866 30.1431 301.496 29.5059 301.559 28.6582C301.57 28.4307 301.644 28.2201 301.735 27.9755Z" fill="#F0D5C0"/>
<path d="M324.708 40.6229C324.89 40.0539 325.118 39.3485 325.01 38.6601C324.97 38.4268 324.686 37.6758 324.441 37.3231C324.1 36.8395 323.343 36.2421 322.888 36.0999C322.359 35.9349 321.79 36.0145 321.289 36.3218C320.64 36.72 320.157 37.4824 320.02 38.3073C319.98 38.5406 319.992 38.7625 320.003 38.9787C320.009 39.1152 320.015 39.2404 320.009 39.3542C319.958 40.1393 319.833 40.9756 319.702 41.8518C319.531 42.9726 319.36 44.1275 319.355 45.2028C319.349 45.8741 319.531 46.4374 319.685 46.938C319.833 47.3989 319.958 47.8028 319.935 48.2409C319.918 48.605 319.833 48.9065 319.736 49.2308C319.645 49.538 319.554 49.8566 319.525 50.2265C319.474 50.858 319.656 51.4553 319.838 52.03C319.969 52.451 320.094 52.8435 320.123 53.2418C320.157 53.6685 320.168 54.1692 320.151 54.7779C320.077 57.5088 319.77 59.6309 319.355 60.3079C318.82 61.1784 318.501 61.7985 318.171 62.6406L318.086 62.7145C317.42 63.2835 316.846 63.7727 316.339 64.4725C315.952 65.0073 315.827 65.525 315.696 66.0712C315.611 66.4353 315.52 66.8165 315.338 67.2489C315.247 67.4708 315.071 67.6187 314.854 67.8065C314.729 67.9146 314.593 68.0283 314.468 68.1706C313.938 68.7395 313.187 69.6157 312.67 70.7251C312.163 71.0551 311.839 71.533 311.52 72.0052C311.327 72.284 311.151 72.5514 310.94 72.7619C310.536 73.1772 309.723 73.5527 309.063 73.8485C308.812 73.9623 308.573 74.0704 308.369 74.1785C308.312 74.2069 308.164 74.2866 308.078 74.3606C306.867 75.4188 306.758 77.5181 307.475 78.6844C307.777 79.1851 308.221 79.5151 308.642 79.8337C308.886 80.0157 309.114 80.1921 309.319 80.3912C309.341 80.4197 309.387 80.5107 309.415 80.5733C309.478 80.7098 309.552 80.8691 309.666 81.0057C309.797 81.1593 309.922 81.2617 310.024 81.3414C310.104 81.4039 310.155 81.4438 310.178 81.4779C310.246 81.5803 310.297 81.7112 310.309 81.8136L310.365 82.2687L310.826 82.2801C311.065 82.2858 311.395 82.3711 311.742 82.4678C312.197 82.593 312.687 82.7239 313.176 82.7239C313.421 82.7239 313.665 82.6897 313.899 82.6044C314.308 82.4565 314.49 82.0867 314.65 81.7624C314.724 81.6088 314.803 81.4551 314.906 81.3015C315.105 81.0171 315.383 80.7155 315.657 80.4254C315.913 80.1523 316.18 79.8678 316.396 79.5777C316.726 79.1282 316.971 78.5763 317.21 78.0415C317.403 77.5978 317.591 77.1768 317.79 76.898C317.91 76.733 318.131 76.5623 318.353 76.3973C318.649 76.1698 318.956 75.9422 319.144 75.6293C319.298 75.3733 319.366 75.0888 319.423 74.8385C319.457 74.6792 319.491 74.5312 319.542 74.4231C319.559 74.3833 319.633 74.2866 319.685 74.2183C319.764 74.1102 319.861 73.9851 319.935 73.8485C320.1 73.5527 320.254 73.1999 320.407 72.8586C320.612 72.4034 320.822 71.9312 321.016 71.6581C321.13 71.5045 321.283 71.3452 321.443 71.1859C321.756 70.8673 322.114 70.5146 322.279 70.0082C322.552 69.1548 322.558 68.364 322.563 67.6016C322.569 66.8051 322.569 66.0485 322.899 65.2975C322.996 65.0756 323.161 64.8765 323.331 64.666C323.525 64.4327 323.724 64.1937 323.855 63.8865C324.168 63.1697 324.39 62.1342 324.515 61.3889C324.748 60.0348 324.657 58.9254 324.572 57.9469C324.509 57.2129 324.452 56.5188 324.526 55.7849C324.566 55.4151 324.617 55.0453 324.668 54.6926C324.771 53.9871 324.873 53.2589 324.862 52.5193C324.851 51.7171 324.72 50.9547 324.594 50.2151C324.418 49.1796 324.259 48.2067 324.395 47.1713L324.401 47.1258V47.0803C324.39 46.847 324.378 46.6024 324.361 46.3406C324.276 44.85 324.162 42.8133 324.566 41.1577C324.589 40.987 324.646 40.8106 324.708 40.6229Z" fill="#F0D5C0"/>
<path d="M187.409 66.8901C190.635 67.8232 193.889 67.6241 197.132 66.9982C202.167 66.0254 206.275 63.2831 210.155 60.1142C210.434 59.8866 210.633 59.4883 211.105 59.5566C211.304 60.0573 210.98 60.4669 210.855 60.8879C210.542 61.9347 210.365 62.9816 210.445 64.0739C210.593 66.0595 211.941 67.4306 213.921 67.5842C215.639 67.7208 217.198 67.2656 218.615 66.2985C220.76 64.8363 221.903 62.6801 222.688 60.2962C226.586 48.3885 230.471 36.475 234.369 24.5673C234.824 23.1677 235.182 21.7568 235.029 20.2662C234.841 18.3944 233.652 17.1825 231.774 16.9379C229.601 16.6534 227.667 17.2224 225.914 18.5195C223.695 20.1637 222.649 22.5248 221.801 25.0452C219.417 32.1511 217.358 39.3652 214.644 46.3574C213.591 49.0712 212.288 51.6314 210.024 53.5714C207.054 56.1146 203.76 57.9295 199.721 57.8498C196.165 57.7815 194.361 55.8472 194.424 52.2857C194.458 50.3854 194.805 48.525 195.38 46.7272C197.735 39.3709 200.13 32.026 202.503 24.6754C202.941 23.3213 203.362 21.9559 203.288 20.5051C203.197 18.6333 202.07 17.3191 200.25 16.9493C198.042 16.4998 196.057 17.0289 194.236 18.3033C191.995 19.8679 190.959 22.2176 190.146 24.6981C187.995 31.275 185.822 37.8405 183.717 44.4287C182.454 48.3771 180.974 52.2629 180.514 56.4389C179.95 61.4625 182.533 65.4849 187.409 66.8901Z" fill="#C2C2FF"/>
<path d="M111.916 26.2914C111.927 27.5317 112.178 28.7776 111.706 30.0065C111.45 42.4718 111.222 54.9371 110.903 67.4024C110.869 68.7622 111.011 69.2913 112.559 69.2344C116.331 69.1036 120.114 69.1149 123.886 69.2287C125.314 69.2742 125.548 68.785 125.508 67.5049C125.337 62.265 125.189 57.0194 125.178 51.7796C125.144 36.8736 125.047 21.9618 125.451 7.05582C125.491 5.61642 125.121 5.22386 123.67 5.25799C118.868 5.35471 114.067 5.32057 109.27 5.27506C108.303 5.26368 107.763 5.42867 107.592 6.50395C106.141 15.6581 103.268 24.5163 101.914 33.6875C101.544 36.1795 101.106 38.6657 100.691 41.1974C100.139 40.9471 100.23 40.5204 100.19 40.1734C98.859 28.789 95.8096 17.7461 93.6305 6.52671C93.4769 5.74158 93.2664 5.27506 92.3163 5.28075C86.553 5.31488 80.7954 5.3092 75.0322 5.29213C74.2812 5.29213 74.1219 5.51401 74.1446 6.29345C74.2641 9.74687 74.321 13.2003 74.3153 16.6537C74.2869 33.7387 74.2527 50.8295 74.1503 67.9145C74.1446 68.9499 74.2925 69.2287 75.3052 69.2173C78.7587 69.1718 82.2178 69.1548 85.6769 69.2287C86.8375 69.2515 87.0821 68.8134 87.0139 67.7836C86.8773 65.7412 86.7863 63.6987 86.7465 61.6562C86.5473 51.7454 86.7977 41.8233 86.2401 31.9125C85.8305 30.0122 85.8931 28.0892 85.9443 25.7851C86.4848 26.5816 86.809 27.0538 86.6042 27.7251C88.7491 41.4307 92.5268 54.7665 95.599 68.2672C95.7811 69.0523 96.2192 69.3425 96.9588 69.206C98.7623 68.8646 100.719 69.957 102.398 68.6143C102.512 68.5232 102.472 68.2502 102.512 68.0624C105.572 54.7608 109.225 41.59 111.319 28.0722C111.199 27.4008 111.376 26.8205 111.916 26.2914Z" fill="#C2E4F2"/>
<path d="M21.3406 71.9197L3.12338 66.9416C1.79208 66.5832 0.460779 66.219 0.142177 65.5193C-0.244696 64.6943 0.244585 63.3004 0.580255 62.0715L17.2443 1.05355C17.6084 -0.277749 18.1375 -0.340332 22.4102 0.825979C27.2518 2.15159 27.7866 2.40192 27.3713 3.92097L13.2162 55.7336C12.8806 56.9625 12.3458 58.5498 12.8806 59.2098C13.2788 59.6251 14.3882 60.0234 15.3384 60.2908L23.787 62.5949C25.0159 62.9306 24.9818 63.4313 23.8951 67.4252C22.6491 71.971 22.4785 72.2327 21.3406 71.9197Z" fill="#BCE1D1"/>
<path d="M270.928 5.61072C263.793 5.61072 256.426 8.58054 252.739 15.1233L251.669 7.15821H239.187V68.9784H254.048V43.7747C254.048 38.5405 253.928 32.123 256.067 27.2472C258.087 22.7299 261.535 19.4016 266.769 19.4016C274.614 19.4016 276.993 23.7995 276.993 31.0534V68.9784H291.853V27.7251C291.853 14.8843 284.121 5.61072 270.928 5.61072Z" fill="#007F76"/>
<path d="M163.035 39.3596C164.463 39.7295 165.208 40.4748 165.947 41.1632C166.687 41.9028 167.375 42.9667 167.751 43.7063C168.121 44.7645 168.121 45.8796 168.121 46.9947C168.121 47.7343 168.121 48.7982 167.751 49.9076C167.381 50.6473 166.693 51.7112 165.947 52.4508C165.208 53.1904 164.519 53.8788 163.035 54.2543C162.295 54.6241 160.861 54.9939 159.376 54.9939H143.054V38.6712H159.376C160.861 38.6143 162.346 38.6143 163.035 39.3596ZM143.111 17.5809H157.63C160.173 17.5809 161.976 17.9507 163.086 19.3844C164.514 20.4995 164.889 22.2974 164.889 24.1009C164.889 25.9044 164.519 27.3893 163.086 28.8173C162.028 30.2454 160.173 30.6208 157.63 30.6208H143.111V17.5809ZM164.15 10.6912C162.346 9.95155 159.803 9.57605 157.26 9.57605H138.764C137.336 9.57605 136.591 9.94586 135.475 10.6912C134.736 11.4308 134.417 12.4947 134.417 13.9796V58.6009C134.417 59.716 134.787 60.7743 135.475 61.5139C136.591 62.5721 137.279 62.9419 138.764 62.9419H158.745C161.288 62.9419 163.831 62.5721 166.374 61.8837C168.547 61.1441 170.351 59.7103 171.83 58.5952C173.634 57.537 174.743 55.6823 175.488 53.8788C176.547 52.0753 176.916 50.2775 176.916 47.7343C176.916 44.8214 175.858 41.9028 174.373 39.3596C172.57 36.8165 170.396 35.013 167.114 34.2734C169.287 33.2152 170.715 31.3605 171.83 29.5569C173.258 27.3836 173.634 25.2103 173.634 22.6672C173.634 20.4939 173.264 19.0089 172.576 17.5809C171.836 15.7774 170.772 14.2925 169.287 13.2343C167.751 12.1192 166.323 11.061 164.15 10.6912Z" fill="#F0D5C0"/>
<g clip-path="url(#clip0_827_1780)">
<path d="M289.439 82H240.693H23V102H290V82H289.439Z" stroke="#333333" stroke-width="2" stroke-miterlimit="10"/>
<path d="M39.4355 87.6528C38.7921 86.7678 37.7627 86.2046 36.3955 86.3816C35.7843 86.1241 35.1087 86.0598 34.4331 86.3172C32.6316 86.9931 31.3287 88.2482 30.444 89.9379C29.3503 92.0137 30.0741 95.4413 32.3742 96.4711C32.4064 96.4872 32.4386 96.4872 32.4547 96.5033C32.6638 96.632 32.8729 96.7447 33.0981 96.8412C33.3876 97.3079 33.8219 97.6941 34.417 97.9194C35.9129 98.4826 37.7145 97.9838 38.8726 96.9056C39.6125 96.455 40.1594 95.747 40.4811 94.9263C41.2692 94.17 41.8 93.1079 41.9126 92.1264C42.1217 90.3241 41.2692 88.2804 39.4355 87.6528Z" fill="#333333"/>
</g>
<rect x="23" y="82" width="267" height="20" stroke="#333333" stroke-width="2"/>
<defs>
<clipPath id="clip0_827_1780">
<rect x="23" y="82" width="267" height="20" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 KiB

BIN
static/img/thumbs/utaw.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
static/img/thumbs/vrec.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
static/img/wow.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

10
static/js/expandable.js Normal file
View File

@ -0,0 +1,10 @@
document.getElementById( 'case_studies-slide-more' ).addEventListener( 'click', function() {
var body = document.getElementById( 'case_studies-slide-body' );
if( body.className == 'expanded' ) {
body.className = 'contracted';
document.getElementById( 'case_studies-slide-more' ).textContent = 'Expand';
} else {
body.className = 'expanded';
document.getElementById( 'case_studies-slide-more' ).textContent = 'Compress';
};
} );

Binary file not shown.

View File

@ -35,11 +35,11 @@
"deprecated": false,
"description": "Modern CSS framework based on Flexbox",
"devDependencies": {
"autoprefixer": "^9.8.6",
"clean-css-cli": "^4.3.0",
"node-sass": "^4.14.1",
"autoprefixer": "^10.0.0",
"clean-css-cli": "^5.0.0",
"node-sass": "^9.0.0",
"postcss-cli": "^7.1.2",
"rimraf": "^3.0.2"
"rimraf": "^5.0.0"
},
"files": [
"css",

View File

@ -6,6 +6,7 @@ $footer-padding: 3rem 1.5rem 6rem !default
.footer
background-color: $footer-background-color
background: linear-gradient(to top, $footer-background-color, $footer-background-color 50%, $footer-background-color-mid 50%)
padding: $footer-padding
@if $footer-color
color: $footer-color

View File

@ -3,12 +3,14 @@
// Branding
$autonomic-red: #EE4A33;
$coopcloud-blue: #202674;
$coopcloud-blue-mid: #485FC7;
$coopcloud-pink: #ff4f88;
$white: white;
$text-color: #1C1C1C;
$bg-color: #EFEFEF;
$footer-background-color: $coopcloud-blue;
$footer-background-color-mid: $coopcloud-blue-mid;
$footer-color: true;
$footer-padding: 3rem 1.5rem 3rem;
@ -272,10 +274,61 @@ footer .separator {
}
}
// Styling for the exapndable divs
#case_studies-slide-body{
max-height: 1000px;
overflow: hidden;
transition: max-height 1s ease;
-moz-transition: max-height 1s ease;
-ms-transition: max-height 1s ease;
-o-transition: max-height 1s ease;
-webkit-transition: max-height 1s ease;
}
.expanded {
height: auto !important;
max-height: 4000px !important;
}
.contracted {
background: linear-gradient(to bottom, rgba(239, 239, 239, 0), rgba(239, 239, 239, 0) 80%, rgba(239, 239, 239, 0.25) 90%, rgba(239, 239, 239, 1)) !important;
}
#case_studies-slide-more {
cursor: pointer;
text-align: right;
position: absolute;
margin: 10px;
left: 50%;
}
// Styling for divider
hr.divider {
border-top: 1px solid #1C1C1C;
border-radius: 3px;
height: 1px;
padding: 0;
}
// Styling for img thumbnails
div.thumbnail {
box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px, rgba(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px, rgba(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px;
-moz-box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px, rgba(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px, rgba(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px;
-webkit-box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px, rgba(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px, rgba(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px;
-o-box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px, rgba(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px, rgba(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px;
border-radius: 999px;
}
.who-is-involved-content {
.autonomic {
display: flex;
justify-content: space-between;
@media (max-width: 800px) {
.column.is-one-quarter.is-full-mobile {
flex: unset;
}
}
}
.cofunders {
@ -284,21 +337,21 @@ footer .separator {
.client-logos {
margin-top: 4rem;
display: flex;
flex-direction: column;
justify-content: center;
gap: 3rem;
.first-row{
display: grid;
grid-template-columns: 1fr 1fr 1fr;
place-items: center;
}
.second-row {
display: flex;
justify-content: center;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
@media (max-width: 480px) { grid-template-columns: 1fr 1fr; }
place-items: center;
gap: 1rem;
img {
object-fit: contain;
padding: 1.5rem;
height: 150px;
}
}
}
}
}
.highlight {
margin-bottom: 1rem;
}

View File

@ -1,7 +1,8 @@
{{ define "main" }} {{ partial "index/server_hero.html" . }}
<!-- {{ partial "index/video.html" . }} -->
{{ partial "index/underline_points.html" (dict "context" . "title" "benefits" "data" site.Data.benefits) }}
{{ partial "index/underline_points.html" (dict "context" . "title" "faq" "data" site.Data.faq) }}
{{ partial "index/underline_points.html" (dict "context" . "title" "faq" "data" site.Data.faq) }}
{{ partial "index/case_studies.html" (dict "context" . "data" site.Data.case_studies) }}
{{ partial "index/autonomic_hero.html" (dict "context" . "data" site.Data) }}
<!-- {{ partial "index/open_collective.html" (dict "context" . "data" site.Data) }} -->
{{ partial "index/community_project.html" (dict "context" . "data" site.Data) }}

View File

@ -8,5 +8,9 @@
<p>
Copyleft {{ now.Format "2006"}} Autonomic Cooperative
</p>
<!-- NOTE(d1): for https://social.coop/settings/verification
due to requiring 'rel="me"', we can't stuff this in the config.toml -->
<a style="display:none;" rel="me" href="https://social.coop/@coopcloud">Mastodon</a>
</div>
</footer>

View File

@ -1,6 +1,6 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
{{ $title := print .Site.Title " | " .Title }}
{{ if .IsHome }}{{ $title = .Site.Title }}{{ end }}
{{/* scss compiling */}}
@ -8,8 +8,12 @@
{{ $style := resources.Get "scss/main.scss" | resources.ToCSS $options }}
{{ template "_internal/opengraph.html" . }}
{{ template "_internal/twitter_cards.html" . }}
<link href='{{ $style.RelPermalink }}' rel="stylesheet">
<meta name="go-import" content="coopcloud.tech/tagcmp git https://git.coopcloud.tech/coop-cloud/tagcmp">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href='{{ $style.RelPermalink }}' rel="stylesheet" />
{{ with .OutputFormats.Get "rss" -}}
{{ printf `<link rel=%q type=%q href=%q title=%q />` .Rel .MediaType.Type .Permalink site.Title | safeHTML }}
{{ end }}
<meta name="go-import" content="coopcloud.tech/tagcmp git https://git.coopcloud.tech/coop-cloud/tagcmp" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{{ $title }}</title>
</head>

View File

@ -21,25 +21,23 @@
</div>
<div class="client-logos">
<div class="first-row">
<div>
<a href="https://www.neuronicgames.com/"><img src='/logos/neuronic-games.png'></a>
</div>
<div>
<a href="https://www.fashionrevolution.org/"><img src='/logos/fashion-rev.svg' height="150px"></a>
</div>
<div>
<a href="https://biobulkbende.org/"><img src='/logos/biobulkbende.png'></a>
</div>
<div>
<a href="https://www.neuronicgames.com/"><img src='/logos/neuronic-games.png'></a>
</div>
<div class="second-row">
<div>
<a href="https://www.thirdsectoraccountancy.coop/"><img src='/logos/third-sector-accountancy.svg' style="height:150px;"></a>
</div>
<div>
<a href="https://anarchyrules.info/"><img src='/logos/anarchy-rules.png' style="height:150px;"></a>
</div>
<div>
<a href="https://www.fashionrevolution.org/"><img src='/logos/fashion-rev.svg'></a>
</div>
<div>
<a href="https://biobulkbende.org/"><img src='/logos/biobulkbende.png'></a>
</div>
<div>
<a href="https://www.thirdsectoraccountancy.coop/"><img src='/logos/third-sector-accountancy.svg'></a>
</div>
<div>
<a href="https://anarchyrules.info/"><img src='/logos/anarchy-rules.png'></a>
</div>
<div>
<a href="https://culturalfoundation.eu/"><img src="/logos/ecf.png" alt="European Cultural Foundation"></a>
</div>
</div>
</div>

View File

@ -0,0 +1,50 @@
<section id="case_studies" class="section">
<div class="container content">
<h1 class="is-uppercase">Whos already using co-op cloud?</h1>
<div id="case_studies-slide-body">
{{ range $index, $item := .data | shuffle }}
{{ if ne $index 0 }}
<div class="columns is-centered is-gapless">
<div class="column is-8">
<hr class="divider">
</div>
</div>
{{ end }}
<div class="columns my-6 is-vcentered">
{{ if eq (mod $index 2) 0 }}
<div class="column is-one-quarter is-offset-1">
<div class="image thumbnail mx-4">
{{ with $item.thumbnail }}
<img src="{{ $item.thumbnail }}" class="is-rounded">
{{ else }}
<img src="/img/wired.jpg" class="is-rounded">
{{ end }}
</div>
</div>
<div class="column is-size-5 is-offset-1 is-widescreen is-full-tablet is-half">
<h2 class="is-uppercase is-size-4 has-text-weight-medium">{{ $item.title | markdownify }}</h2>
<p>{{ $item.content | markdownify }}</p>
</div>
{{ else }}
<div class="column is-size-5 is-offset-1 is-widescreen is-full-tablet is-half">
<h2 class="is-uppercase is-size-4 has-text-weight-medium">{{ $item.title | markdownify }}</h2>
<p>{{ $item.content | markdownify }}</p>
</div>
<div class="column is-one-quarter is-offset-1">
<div class="image thumbnail mx-4">
{{ with $item.thumbnail }}
<img src="{{ $item.thumbnail }}" class="is-rounded">
{{ else }}
<img src="/img/wired.jpg" class="is-rounded">
{{ end }}
</div>
</div>
{{ end }}
</div>
{{ end }}
</div>
<div id="case_studies-slide-more" class="button is-medium is-rounded">Expand</div>
</div>
<script defer language="javascript" type="text/javascript" src="{{ "/js/expandable.js" | urlize | relURL }}"></script>
</section>

View File

@ -18,13 +18,12 @@
</div>
</div>
</div>
<div class="hero-foot has-text-centered">
<p class="is-size-3"><b>Learn More</b></p>
<!-- SVG provided by LineIcons https://lineicons.com under CC BY-SA 4.0 -->
<!-- Colour has been changed and this SVG is also licensed under CC BY-SA 4.0 as per its license requirements -->
<a href="#benefits"
><img alt="Down Chevron" width="40px" src="/svg/chevron-down.svg"
/></a>
<div class="has-text-left">
<div class="column is-two-thirds">
<p class="subtitle is-size-3">
Co-op Cloud is a software stack that aims to make hosting <a href="https://www.gnu.org/philosophy/free-sw.html" target="_blank">libre software applications</a> simple for small service providers such as <a href="https://www.coops.tech/manifesto" target="_blank">tech co-operatives</a> who are looking to standardise around an open, transparent and scalable infrastructure. It uses the latest container technologies and configurations are shared into the commons for the benefit of all.
</p>
</div>
</div>
</div>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB