Compare commits

...
12 Commits
Author SHA1 Message Date
iexos d924ca0493 insert beta bikemap from pad 2026-10-31 21:55:41 +01:00
decentral1se cff69d971e switch over to match incoming copy on site 2026-10-30 12:00:50 +01:00
decentral1se 058dfe75de shorter folder name, hex/nlnet add 2026-10-29 15:44:53 +01:00
decentral1se 37064cf4d2 fix main links 2026-10-29 15:28:35 +01:00
decentral1se 7b0684a7a1 refactor: fedi passthrough 2026-10-29 15:22:56 +01:00
hex 65de9e5656 Adding hex (sekuro.nl/Kolektivo Sennacieca Cifereca) 2026-10-23 11:40:31 +02:00
hex 72f2a7e86d changed sekuro.nl -> www.sekuro.nl to fix wirdness with my dns provider 2026-10-23 11:30:26 +02:00
hex 7ec47a55c3 fixed missing index 2026-10-23 11:24:18 +02:00
hex 9347c5fd83 Update docs/federation/membership.md 2026-10-23 08:58:34 +00:00
hex 4e5f051eae added hex and moved the resolution to passed 2026-10-23 10:55:48 +02:00
Amras 7d6e347fad proposal: formally support servers.coop
With servers.coop building steam,
 there's a need to secure some resources and organizational support for
 the project.

Proposal has been discussed among the servers.coop working group.
2026-10-13 17:01:18 +02:00
dannygroenewegen dedbc99d12 Update the date for 047 and move to in-progress 2026-10-07 15:54:30 +02:00
26 changed files with 711 additions and 83 deletions
+567
View File
@@ -0,0 +1,567 @@
---
title: NLNet CodeSupply
---
# NLNet CodeSupply
> Status: **pending** ([Link to open call](https://nlnet.nl/propose/))
## System3: High Performance Scanner
## Reference
- [`0x29a/hestia`](https://codeberg.org/0x29a/hestia)
## Project Summary
System3 is a generalization of a docker SBOM generation and security scanning
tool called Hestia. It is intended to create a higher performance and more
extensible alternative to ScanCode.io.
Hestia is a proof of concept high speed, stand alone scanner for large numbers
of docker images currently built to scan for vulnerabilities in the Co-op Cloud
recipe catalog. This project will merge functionality from AboutCode to provide
a more scalable alternative architecture to ScanCode.io and the scancode cli.
The results of this project will be a Software Composition Analysis (SCA) tool
that analyzes docker containers, produce SBOMs, and use those to identify
vulnerable software. This vulnerability information will be enriched using open
sources (such as EPSS). This proof of concept will be pluggable, making it easy
to port scancode.io pipelines over to it.
System3 is a reference to part of the cyberneticist Stafford Beer's Viable
System Model.
## Proposed effort
- Total cost: €30030.00
## Explanation
### Which tasks will you undertake, and (roughly) how much time/effort will each take?
1.5 engineer weeks: Currently Hestia uses Syft and Trivy to build SBOMs and
scan them for vulnerabilities. Over the course of this project, Syft will be
replaced by AboutCode's container-inspector. Custom code fetching will be
replaced with skopeo (what AboutCode's fetchcode-container plugin uses under
the hood) to help identify missing or incorrectly specified docker images.
AboutCode's packageurl-python will be used to generate PURLs for vulnerability
identification. Where useful, AboutCode's commoncode will replace existing
utilities.
(SPDX generation will use spdx-tools, rather than adopting ScanCode's custom
implementation.)
1.5 engineer weeks: PURLdb and Vulernable code databases will be used, if
possible, to find vulnerabilities. If this works, they will replace Trivy as
the scanner (though other tools may also be used to identify vulnerabilities).
This accounts for both the exploration time and implementation (given
feasibility). If this is not feasible, this time will also include a problem
analysis.
6 engineer weeks: Turning Hestia into System3 will also mean changing the
underlying architecture. Currently a pipeline architecture passes messages
between workers (analogous to ScanCode.io's pipes). This will be abstracted
with a framework where worker functions advertise their capabilities using
decorators, and interfaces and pipelines are specified using YAML. The actual
queue management functionality will be abstracted so that worker developers
simply need to understand the data model of their worker's domain and can
ignore all other details of the system.
This time accounts for framework design, implementation, usability experiments,
and improvements based on feedback.
Additional work: Interspersed through the development process, I will be adding
unit testing, property testing, and integration testing. This will all be run
through continuous integration to detect breaking changes in upstream
dependencies and bugs induced by code changes.
### What hourly/daily/monthly rate did you use?
€65/hr x 40 hour/week x 11 weeks = 28600 + 5% margin of error = 30030.00.
### Will there be any expenses?
There are no additional expenses.
### Next Steps and Strech Goals:
If I'm able to complete other tasks, I will add additional workers such as:
- A worker that connects to matrix and reports vulnerabilities to a chat
- A worker that files security issues based on SCA results against Gitea, Forjeo, or GitHub repositories
As a fast follow, I also plan to build a tool that turns pipeline definitions
into cloud pipelines using n8n and Terraform.
### Comparison
System3 will be most similar to ScanCode.io and the ScanCode toolkit CLI
application.
The ScanCode toolkit schedules jobs against the ScanCode.io server. The System3
cli will simply be a scaled and stripped down version of the architecture,
allowing it to run independently from the representation layer.
ScanCode.io is a django web service that exposes a REST API and a web UI. The
underlying pipeline data model tightly couples multiple unrelated concepts
(such as django presentation). Failure to separate concerns degrades
performance by increasing the context needed to execute operations, increasing
the minimum lines of code involved in any pipeline, and by preventing efficient
horizontal scaling (that is, scaling by component not scaling the entire
platform).
Hestia already presents more clean separation of concerns that allows it to
scale any individual component simply by increasing the number of worker
threads. A queuing oriented design makes it possible to transition from threads
in a single application, as it currently is, to a server-less architecture with
minimal changes. With appropriate abstraction, workers can run locally as
threads within a single application, or can be deployed to Scaleway Serverless
Functions, OVHcloud managed Knative, AWS Lambda, Google Cloud Functions,
Beam.cloud, Kubernetes with Knative/OpenFaaS/Fission, or other frameworks,
without being completely rearchitected. When deployed to serverless platforms,
horizontal scaling can be handled by the platform. Serverless bound to queues
(such as RabbitMQ or SQS) is already a common architecture for systems that
must support horizontal scaling.
The failure to separate concerns also forces pipeline developers to understand
the concept of a project and a pipeline, in order to implement a pipe. Hestia
separates these concerns so that a worker simply needs to take input from a
queue and write to another queue.
System3 will further abstract this so that pipelines can be written using a
configuration language, like yaml or json, while workers are simply functions
and classes that focus on input and output. Presentation is completely
separated, reducing developer context and enabling more complexity in the way
that views can be managed. The System3 proof of concept will implement the
vulnerable code pipeline for docker containers.
An enterprise, especially one focused on technology such as Microsoft, Amazon,
or Google, may have thousands or millions of repositories, container images,
and servers to assess. Downloading each container is simply infeasible, even
for a project as small as Co-op Cloud with 2k docker images to scan. Hestia
automates the work of downloading, caching SBOM artifacts, and cleaning up so
that it doesn't run out of disk space. As I understand it, this requires
additional external scripts to emulate in ScanCode.
The failure to separate representation from the rest of the platform means that
data processing workloads can impact the performance of the web interface.
But the monolithic nature of ScanCode.io represents a larger missed opportunity
at generalization. Scanning for vulnerabilities in repositories or containers
can provide important security signals. These signals may be more appropriately
processed within an open source SIEM/XDM such as Wazuh or an existing internal
stack. Security signals don't need to be handled as a single atomic pipeline,
but can be processed as a stream. Streaming events can allow continuous
autonomous data enrichment, such as a vulnerability detected in a repository
triggering a search against a data lake to identify potential deployed
endpoints, then triggering dynamic vulnerability scanning against those
endpoints.
Why should a "project" be limited to things that can be represented as files?
Why not a list of IP addresses used by workers running NMAP with NSE
vulnerability detection scripts, producing vulnerability identification
results, which could be enriched using the very same enrichment as SCA? Why
should it not be possible to correlate vulnerabilities identified in SCA, SAST,
build time DAST, or IAST reports, with each other to find gaps in the security
process?
With the right architecture, these problems are solved by implementing workers
and wiring them into pipelines or writing new visualizations over data produced
by these workers. That is the vision of System3.
### Technical (and other) Challenges
There are three patterns my system needs to support:
- Queue with a single action. A worker consumes an item from the queue, processes the item, in serial.
- Pub/Sub. Work items are broadcast in parallel with no built-in mechanism for deduplication, allowing different types of work items to execute in parallel.
- Aggregation/Correlation. A work item may have several subtasks. Results of subtasks need to be collected up and correlated back to original projects. For example, a "recipe" (or application) has multiple versions, each version has multiple images, each image has multiple pieces of software, each piece of software may have multiple vulnerabilities. A worker needs to correlate vulnerabilities back to "recipes" at specific versions.
There are two modes:
- Serial
- Batch
There are two data source/sinks:
- Messages
- Data Lake
There are two target platforms:
- Local
- (host your own) Cloud
Each of these, and the interaction between them, creates multiple opportunities
for failure. The experience of the developer will be determined by how I
balance exposing vs hiding detail. The more I obscure, the easier the system
will be to use but the more limited it will be. This is often the key
difference between enterprise tooling (where everything must be adapted to a
wide range of scenarios) and small business tooling (where everything must be
as simple as possible).
Due to character limitations, I've enumerated these challenges in more detail
in the attached doc titled "Technical Challenges" (see below).
### Ecosystem (max. 2000 characters)
The tool will immediately be used by the Co-op Cloud project. Long term
operational funding and management will be handled by the federation.
Federation decisions are made democratically, via a resolution process. I'm
actively coordinating with Co-op Cloud stakeholders and have attached a draft
of the resolution 0XX (see below for draft) that describes the larger ecosystem
within which this fits.
One missing element is the security advisory announcement element (Co-op Cloud
Security Advisory, or CCSA). Security advisory management is also a gap within
the [AboutCode
ecosystem](https://aboutcode.org/docs/getting_started/software-security/#manage-risk-with-aggregated-vulnerability-data).
I will be writing a proposal for this as well, as I also have a proof of
concept for it.
Since I'm primarily using stable AboutCode libraries, coordination with
AboutCode should not be necessary. If it is, I can use GitHub issues and the
gliter channel (#aboutcode-org_discuss:gitter.im). During development I will
probably join the VulnerableCode meeting to make sure I'm tracking the
development of that project.
However, the main users will likely be the Co-op Cloud project at the
beginning. Once I can demonstrate that the system is stable and maintainable,
it will make sense to expand to influencing AboutCode to consider integration
opportunities.
## Background
### Personal
I have been a security engineer at Amazon (both the store and AWS) for almost
10 years, and was a consultant to companies including Amazon and Microsoft for
several years before that. During my time in AWS, I designed, built,
operationalized, and drove adoption for a security testing framework now used
by every AWS service and dozens of adjacent security teams. I designed a single
framework that was easy for security engineers to develop, developers to
onboard to and extend, and operators to maintain. The project was able to gain
so much momentum, because I started by pulling in multiple stakeholders to
understand the scope of the problem.
I have extensive experience with systems that must be highly performant. The
tool I replaced was a DAST scanner. The scanner my tooling replace scanned a
few dozen endpoints with 7 tests. My scanner ran dozens (and later hundreds) of
tests against 16k endpoints, and did so in hours instead of days. I have
implemented multiple orders of magnitude performance improvements to tooling
more than once.
I have developed other tooling as well, always bridging the gap between
developers and security, always focused on making using the same toolkit for
endpoint testing as build/integration testing. I have lead multiple consecutive
successful programs to drive security improvement at scale at AWS. AWS is a
highly technologically diverse environment. The combination of operating at
scale against heterogeneous systems and previous work as a consultant has given
me the diverse background I need to address similar problems globally.
## Other Funding (max. 1000 characters)
There is currently no other funding for this project.
## Attachments
* [`technical_challenges.pdf`](./technical_challenges.pdf)
* [`security_bus_design.pdf`](./security_bus_design.pdf)
## Resolution 0XX Draft
### Resolution 0XX: Security Event Management
- Deadline: Date
- Size: Medium
#### Summary
Create a federation wide Security Event Management process to address the
following concerns:
- End users and security researchers need a mechanism to report security
vulnerabilities in Co-op Cloud maintained recipes
- Operators need to know if the version they are deploying or have deployed is
vulnerable, or if there are security related actions they need to take
- Maintainers needed to know if a recipe they maintain needs a(n emergency)
security update
#### Details
##### Background
We have created a Co-op Cloud Security room on Matrix to coordinate on security
improvements, and have discussed security concerns during kite flying on
[2026-08-27](https://docs.coopcloud.tech/federation/kite-flying-pad-archive/#2026-08-27-12-utc),
[2026-08-06-19](https://docs.coopcloud.tech/federation/kite-flying-pad-archive/#2026-08-06-19-utc),
and
[2026-07-30](https://docs.coopcloud.tech/federation/kite-flying-pad-archive/#2026-07-30-12-utc)
(the later related to maturity models). We have also worked on at least one
[document](https://cloud.klasse-methode.it/s/aNitMQjeo5QpHs4?dir=/&editing=false&openfile=true)
outlining the security domains we are working within and to help focus on the
most critical areas.
Over the course of the past month, we have identified the most critical gaps as
described by the following user stories.
##### User Stories
- US1: As a Security Researcher, I have found a vulnerability in a Co-op Cloud
recipe. I would like to responsibly disclose this vulnerability to a Co-op
Cloud Security Contact so that users can be protected.
- US2: As an operator, I would like to be actively informed as soon as possible
when an exploitable vulnerability is detected in a recipe I am using so that
I can keep my end users safe.
- US3: As an operator, I would like to be able to find out if any recipes I'm
currently using have known vulnerabilities so that I can upgrade them in
order to keep my customers safe.
- US4: As a maintainer, I would like to be informed of vulnerabilities in
recipes I maintain so that I can update recipe definitions and tell consumers
to upgrade.
- US5: As an operator or maintainer, I would like to be able to run my own
vulnerability scans to identify new vulnerabilities so that I can keep ahead
of security team latency. Vulnerability scanners tend to produce a lot of
noise, so I'd like to be able to leverage security team pre-filtering for all
*known* issues so that I can focus on only *net new* issues.
##### Co-op Cloud Security Advisories (CCSA) feed
Security advisories are the foundation of any project's security program. They
allow a project to announce security events, including, but not limited to,
vulnerabilities that require upgrades, security incidents such as compromised
hosts, and security program changes.
The primary function of an advisory is to fulfill US2 by announcing
vulnerabilities as soon as there are actions that an end user can take to
mitigate the issue.
Feeds generally come in the form of an email list. Often the email list is
replicated to an RSS for easier tracking.
Within the Co-op Cloud recipe set, there are currently known issues with
recipes. Unfortunately the current way to alert users is to post in the general
channel. This is easy to miss and is not easily searchable.
The creation of a CCSA email list and RSS feed allows operators to quickly
learn about issues, as information becomes available, without needing to filter
through other chatter. With an RSS feed, additional automation (such as a
Matrix bot) becomes significantly easier.
##### Co-op Cloud Security Advisories (CCSA) catalog and Abra Integration
While email/RSS can fulfill US2, a catalog can help fulfill UC3. CCSA can be
written using a simple format such as yaml, toml, or json (so they can be
searched based on recipe, CVE, or other metadata), and output to email, RSS,
and a json vulnerability catalog. Such a catalog can be easily searched using
automated tooling, can be rendered into a searchable page, or can be integrated
into the abra deployment tool.
One specific request that multiple operators have repeated is for some kind of
"abra vulnerability check." This is a sequence diagram for populating feeds and
catalogs:
```
,--. ,---------. ,-----. ,-------. ,----.
|SE| |CCSA tool| |email| |catalog| |feed|
`-+' `----+----' `--+--' `---+---' `--+-'
| security advisory tml | | | |
|- - - - - - - - - - - ->| | | |
| | | | |
| | send from ccsa@security.coopcloud.tech | | |
| |---------------------------------------->| | |
| | | | |
| | build security.coopcloud.tech/ccsa.json | |
| |------------------------------------------------->| |
| | | | |
| | publish to security.coopcloud.tech/rss.xml| |
| |---------------------------------------------------------->|
| | | | |
,-+. ,----+----. ,--+--. ,---+---. ,--+-.
|SE| |CCSA tool| |email| |catalog| |feed|
`--' `---------' `-----' `-------' `----'
```
Once in a catalog, a user could run abra to test their own servers:
```
,----. ,----. ,----------. ,---------.
|user| |abra| |swarm host| |ccsa.json|
`--+-' `--+-' `-----+----' `----+----'
| abra sec_check | | |
|- - - - - - - - - - - - ->| | |
| | | |
| | get recipes | |
| |- - - - - - - - - - - - - - >| |
| | | |
| | deployed recipe/image list | |
| |< - - - - - - - - - - - - - -| |
| | | |
| | download if not cached |
| |- - - - - - - - - - - - - - -|- - - - - >|
| | | |
| | check against recipes |
| |- - - - - - - - - - - - - - -|- - - - - >|
| | | |
| | vulnerable matches| |
| |< - - - - - - - - - - - - - -|- - - - - -|
| | | |
| list of vulnerable apps | | |
|< - - - - - - - - - - - - | | |
| | | |
,--+-. ,--+-. ,-----+----. ,----+----.
|user| |abra| |swarm host| |ccsa.json|
`----' `----' `----------' `---------'
```
Here are command line mockups to help communicate the UX..
Check one host, find vulnerabilities:
```
$ abra ccsa_check example.coopcloud.tech
Downloading latest Co-op Cloud Security Advisories
|================================================| 100%
Checking........ complete!
[thisapp.example.coopcloud.tech]
CRITICAL: RCE in ThisApp 1.2.3+3.4.5 -> ThisApp 1.2.4+3.4.6
CVE-4321-12345, CVE-2033-12346, CVE-2033-12347
https://security.coopcloud.tech/CCSA-20260914-2.html
[thatapp.example.coopcloud.tech]
WARNING: Denial of Service ThatApp 3.2+2.2.3
CVE-4321-12111
https://security.coopcloud.tech/CCSA-20260914-6.html
```
Check for vulnerabilities across all managed hosts:
```
$ abra server ls -m
[{"host":"foo.coopcloud.tech","name":"foo"},
{"host":"bar.coopcloud.tech","name":"bar"}]
$ abra ccsa_check example.coopcloud.tech --all
Using cached Co-op Cloud Security Advisories
Checking...
foo
bar
...complete!
[thisapp.foo.coopcloud.tech]
CRITICAL: RCE in ThisApp 1.2.3+3.4.5 -> ThisApp 1.2.4+3.4.6
CVE-4321-12345, CVE-2033-12346, CVE-2033-12347
https://security.coopcloud.tech/CCSA-20260914-2.html
[thatapp.foo.coopcloud.tech]
WARNING: Dangerous configuration in OtherApp 332.1+1.2.3
Read advisory to make sure this deployment isn't vulnerable
https://security.coopcloud.tech/CCSA-20260914-6.html
[bar.coopcloud.tech]
No vulnerabilities detected!
```
CCSA can provide a mechanism to alert users about issues outside of just CVEs.
Supply chain attacks could poison docker images, requiring upgrades or
downgrades for images downloaded during certain times. Compromise of member
accounts could result in malicious code in abra or other tools. A CCSA can
provide a key outlet for incident response actions that require public
reporting.
##### Maintainer
In order to be able to provide updates to fulfill UC2 and UC3, we first need to
have actionable information. It isn't enough to tell an operator that an
application has a vulnerability if they can't do anything about it.
Unactionable information manifests apathy. We must have a clear path from
vulnerable to (more) secure.In most cases, this will require working with a
recipe maintainer to upgrade a recipe to a version that isn't vulnerable.
Unfortunately, there is no automated mechanism to identify a recipe maintainer
point of contact. There are few acceptable options for this:
1. Include a maintainer contact (email or matrix id) in the recipe.
2. Include a link to a maintainer support matrix channel.
3. Create a matrix channel in the coop cloud space for maintainers.
4. create a mailing list for maintainers.
Option 1 is optimal since it provides the highest level of ownership and
accountability. Option 2 makes a support rotation easier and more accessible,
but has no clear and specific point of contact. Option 3 is not optimal since
it would be a bit noisy. Option 4 would also make a support rotation easier (as
option 2) but would make it harder to find a specific person during a security
event.
##### Reporting Contact
Today we are able to identify new security issues. Once a new vulnerability is
identified within a recipe, someone needs to triage the vulnerability. This
includes reading the description, understanding how it does or does not impact
the specific image and associated network as deployed via the recipe, and
determining the level of additional actions.
For important vulnerabilities, maintainers need to be alerted. Someone needs to
coordinate with those maintainers to make sure there's a safe upgrade path.
Someone needs to write up a security advisory
([demo](https://0x29a.codeberg.page/CCSA-DEMO/), publish that advisory, and,
optimally, answer questions related to the advisory.
This is part of the work of a Security Analyst in the field of Vulnerability
Management. This needs to be staffed in accordance with our event response
time. This doesn't need to be a task that takes up all someone's time, but
there do need to be contacts in various time zones to be able to respond in
case something comes up.
##### VEX
Triage work can be recorded using the Vulnerability Exploitability eXchange
format (VEX). By also publishing this information as we review findings, we can
coordinate with operators who may wish to run their own scans, or who are doing
internal security work. We may also want to consume VEX from operators or other
analysis teams. Hestia does not currently support VEX ingestion, but Trivy
does. Code and infrastructure adjustments to hestia could allow authorized
users to coordinate on vulnerability management.
##### Recommendations
1. Create a "Security@" email mailing list to which coop members and authorized
security engineers can subscribe.
2. Repurpose the existing "Security" room for public (operator, maintainer, and
external) facing security support.
3. Create a "Security Team" room in the "Co-op Cloud" matrix space specifically
for people working on security problems (triaging, security engineering,
etc).
4. Allocate infrastructure (two swarm hosts, one subdomain) for security team
related work and testing.
5. Create a "scanner" bot ([PoC here](https://codeberg.org/0x29a/hestia)) to
find new vulnerabilities for triage. Run this daily, increase to hourly if
needed.
6. Create a matrix bot for the "Security Team" room to alert on new
vulnerabilities.
7. Create a "Recipe Maintainer" room specifically for identifying maintainers
to coordinate with.
8. Create a "support" object for each recipe entry in "recipes.json" a. Add a
(mandatory) "maintainer" field to this support object to identify a
maintainer contact (could be a mailing list maintainers are on). b. Add an
(optional) SLA field to the "support" field that lists the maintainer
response time. c. Decrease the "status" to "basic" for all recipes that lack
the support object. d. Decrease the "status" to "ok" for all recipes that
lack an SLA or for which the SLA has been missed in the last month.
9. Create a security.coopcloud.tech subdomain for security related information
b. link from docs.coopcloud.tech to security.coopcloud.tech a. list security
contact information here
##### Follow up
1. Consider compensating maintainers of recipes with low SLAs and high scores
2. Determine how to staff Triage team
3. Apply for funding from nlnet to staff the security team for the first year.
4. Create generic incident response plans for different incident types
5. Identify an appropriate security contact method
```
// Security contact - email, matrix chat, list on website
// Security feed - Co-op Cloud Security Advisory
// -- mailing list, RSS feed
//
// Security management team
```
Binary file not shown.
Binary file not shown.
-19
View File
@@ -1,19 +0,0 @@
---
title: Organising handbook
---
## Where do I find "the community"?
The main place is the [Matrix community chat channels](/intro/contact/#matrix). You'll find a number of folks who are actively interested in the project and/or using `abra` and some of our recipes. Furthermore, Matrix has an excellent network of Cool People :tm: and in practice we've e-met a lot of groups who are interested in Co-op Cloud.
## Onboarding new project members
We still haven't worked this out. We're working on it.
## Gathering new case studies
We try to gather as many "case studies" as possible, stories & concrete examples of Co-op Cloud being used For Good :tm: See [coopcloud.tech](https://coopcloud.tech) for our existing examples. These studies help people identify what the purpose of the project is.
## Monthly updates
We have decided we'll try to do monthly progress updates. These will be published on the Co-op Cloud blog. It's a pretty loose format and we're basically just copy/pasta'ing things to a public pad during the month: ["This month in Co-op Cloud"](https://pad.autonomic.zone/YHKn4vHORmS6wjN1t2zi5A?both). Feel free to add your items to the monthly agenda and they will be included! All the previous posts can be seen [here](https://coopcloud.tech/blog/).
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: Joining the Co-op Cloud Federation (CCF)
title: Join the CCF
---
Organisations that are aligned with our values (e.g. [vision](/federation/proposals/federation/#vision), [strategy](/intro/strategy/), [code of co-operation](/federation/code-of-coop/) and [bylaws](/federation/bylaws/)) can apply to join CCF.
+1
View File
@@ -17,6 +17,7 @@ title: Membership
| [EOTL](https://eotl.supply) | ✅ | - | `@basebuilder:pub.solar` | Paused |
| [Karrot](https://karrot.world) | ⭕ | - | `@nicksellen:matrix.org` | Active |
| [Klasse & Methode](https://klasse-methode.it) | Waiver | - | `@p4u1_f4u1:matrix.org` | Active |
| [Kolektivo Sennacieca Cifereca](https://www.sekuro.nl) | ✅ | - | `@hex_m_hell:matrix.org` | Active |
| [Local IT](https://local-it.org/) | ✅ | - | `@simon_sth:matrix.org`| Active |
| [Merri-bek tech](https://www.merri-bek.tech/) | ✅ | - | `@sarah@merri-bek.tech`| Active |
| [MIR](https://mirnet.org/) | ✅ | - | `@sixsmith:matrix.org` | Active |
-24
View File
@@ -1,24 +0,0 @@
---
title: Organisers
---
Welcome to the organisers guide! Organisers are folks who focus on the social work in the project. Speaking for the project at talks, helping new tech co-ops & collectives join, keeping an eye out for funding opportunities, seeing what things come up in the community chats, etc. It's important work.
<div class="grid cards" markdown>
- __Organisers Handbook__
One-stop shop for all you need to know to organise in the community :sparkles:
[Read Handbook](/federation/handbook){ .md-button .md-button--primary }
- __Say Hello First__
If you like what you see, but are not sure how to best contribute :speech_left:
[Get In Touch](/intro/contact/){ .md-button .md-button--primary }
</div>
We're still working out what it looks like to do this kind of work in the project. If you like the idea of this kinda of work and/or are already doing it, please send patches to improve this documentation :rocket:
+2 -2
View File
@@ -1,5 +1,5 @@
---
title: The Co-op Cloud Federation Proposal
title: CCF
---
# The Co-op Cloud Federation Proposal
@@ -20,7 +20,7 @@ If this is the first time you're seeing the project, please do take a look at [c
## Overview
As part of the [beta bikemap goals](https://pad.autonomic.zone/s/C3uuqfSCk) we are aiming to formalise the idea of what ["Co-op Cloud 'The Organisation'"](https://pad.autonomic.zone/s/C3uuqfSCk#Co-op-Cloud-%E2%80%9CThe-Organisation%E2%80%9D) could mean concretely. Here is what we wrote in our bike map originally:
As part of the [beta bikemap goals](/intro/bikemap) we are aiming to formalise the idea of what ["Co-op Cloud 'The Organisation'"](https://pad.autonomic.zone/s/C3uuqfSCk#Co-op-Cloud-%E2%80%9CThe-Organisation%E2%80%9D) could mean concretely. Here is what we wrote in our bike map originally:
> 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.
@@ -3,8 +3,8 @@ title: "Resolution 046: Restore servers.coop as a Coop Cloud project"
---
- Topic: Restore servers.coop as a Coop Cloud project
- Date: TBD
- Deadline: 2 weeks after voting starts
- Date: 2026-10-13
- Deadline: 2026-10-27
- Size: medium
### History
@@ -24,7 +24,8 @@ This grants the servers.coop project access to Coop Cloud's resources. For insta
- Coop Cloud server infrastructure can be used to organize and manage the project, including:
- conferencing or notetaking services provided by members for Coop Cloud use
- git.coopcloud.tech
- docs.coopcloud.tech
- build.coopcloud.tech
- the servers.coop domain and subdomains
- Grants written on behalf of Coop Cloud can include servers.coop in their goals and budget.
- Coop Cloud federation members can propose and vote on resolutions regarding servers.coop governance, infrastructure, and budget.
- Coop Cloud budget can be allocated to servers.coop goals, through resolutions.
@@ -9,7 +9,7 @@ title: "Resolution 047: Kolektivo Sennacieca Cifereca to join the federation as
## Summary
[Kolektivo Sennacieca Cifereca](https://sekuro.nl) is a security and organizational consultancy responsible for the proof of concept [Hestia](https://git.coopcloud.tech/hex/hestia) build quality and security analyzer and [CCSATool](https://git.coopcloud.tech/hex/CCSATool) security advisory tool. KSC is focused on the improving the security of the platform.
[Kolektivo Sennacieca Cifereca](https://www.sekuro.nl) is a security and organizational consultancy responsible for the proof of concept [Hestia](https://git.coopcloud.tech/hex/hestia) build quality and security analyzer and [CCSATool](https://git.coopcloud.tech/hex/CCSATool) security advisory tool. KSC is focused on the improving the security of the platform.
## Details
+3
View File
@@ -0,0 +1,3 @@
---
title: Surveys
---
+12
View File
@@ -0,0 +1,12 @@
---
title: Usage Survey (2026)
---
Federation member `@hex` conducted our first community usage survey in October 2026.
> [...] In the end we had 62% coming from Europe, 31% from North America, 1 from Austrailia, and 1 from South America.
85% responded that they maintain recipes, 77% manage services for customers. Almost half added more information on their use cases.
The majority of respondents were "small" organizations. 69% were managing services for themselves or for less than 10 customers, while about 1/3 were what might be described as "medium to large" organizations (with 101-1000 customer organizations). I think this presents a really interesting picture of the Federation, with a diverse ecosystems from tiny to large organizations all interacting and cooperating.
Here is a link to all the results: [`results.csv`](/results.csv). Please note,
all identifying information has been stripped out.
-12
View File
@@ -1,12 +0,0 @@
---
title: Digital tools
---
- [Public documentation](https://docs.coopcloud.tech/federation)
- [Git hosting](https://git.coopcloud.tech/)
- [Matrix Space](https://matrix.to/#/#coop-cloud-space:autonomic.zone)
- [Website](https://coopcloud.tech/)
- [Single Sign On](https://translate.coopcloud.tech/)
- [Translation](https://translate.coopcloud.tech/)
- [Sheets and time tracking](https://sheets.coopcloud.tech/)
- [Drone CI/CD](https://build.coopcloud.tech)
+3
View File
@@ -0,0 +1,3 @@
---
title: Digital Tools
---
@@ -1,7 +1,16 @@
---
title: Shared Infrastructure Inventory
title: Inventory
---
- [Public documentation](https://docs.coopcloud.tech/federation)
- [Git hosting](https://git.coopcloud.tech/)
- [Matrix Space](https://matrix.to/#/#coop-cloud-space:autonomic.zone)
- [Website](https://coopcloud.tech/)
- [Single Sign On](https://translate.coopcloud.tech/)
- [Translation](https://translate.coopcloud.tech/)
- [Sheets and time tracking](https://sheets.coopcloud.tech/)
- [Drone CI/CD](https://build.coopcloud.tech)
## Shared repository for fedi maintainers
> [coop-cloud-apps](https://git.coopcloud.tech/toolshed/coop-cloud-apps)
+86
View File
@@ -2,8 +2,94 @@
title: Bike map
---
# Project Status
- The project is currently in a [beta quality](https://en.wikipedia.org/wiki/Software_release_life_cycle#Beta) release state.
- We are working towards a stable `1.0.0` release.
- What we're currently working on is listed on this issue tracker: [`toolshed/projects`](https://git.coopcloud.tech/toolshed/-/projects).
## Co-op Cloud beta bikemap
!!! note
The bikemap below has not been updated for a while and should probably be updated to reflect the current status.
![](https://vvvvvvaria.org/~decentral1se/cc/fietsen.jpg)
> We're not very fond of the word "roadmap" which is the word traditionally used to mean something like "a list of goals to achieve in a given time" :stuck_out_tongue: The following are not listed in any particular order of priority and are subject to change. We are using [these milestones](https://git.coopcloud.tech/coop-cloud/organising/milestones) to track our work on this bike map. We also have this [Project board](https://git.coopcloud.tech/coop-cloud/organising/projects/8) for coordinating our weekly work.
### Command-line tool sustainability
The pre-alpha/alpha command-line tool for managing a Co-op Cloud instance (e.g. [`abra`](https://git.coopcloud.tech/coop-cloud/abra-bash)) is written in [Bash](https://www.gnu.org/software/bash/). This choice was made because we had little to no funding, no clear idea of a final design and were very much in experimentation mode. This choice served us well but we began to run into the limitations of this approach - difficulty in parsing different file formats, concurrent programming and command-line input handling.
As part of the Beta release, we have decided to reimplement and extend `abra` in the [Go programming language](https://golang.org/) as it overcomes the limitations listed above and significantly improves our ability to deliver a cross-platform portable command-line tool without much fuss. We're fans of the [Dokku project](https://dokku.com) which also took [a similar approach](https://github.com/dokku/dokku/discussions/4258#discussioncomment-289670).
### Versioning and deploy stability
We want to make deploying libre apps simple and reliable.
This means putting work into the `abra` command-line interface and making sure `abra` understands what the container runtime is telling it (did the deployment succeed, fail, needs a rollback, etc.) and reporting clearly what is happening on the command-line.
We also need to know which versions of which libre apps are available. And more importantly, which are reliable and can be deployed safely with some assurances that they will work? This involves coordinating with upstream publishing rhythms and integrating with a test suite (see below for more).
### Continuous integration testing for apps
Libre app developer communities are publishing new versions of their apps all the time. However, not all versions deploy succesfully due to changes in configuration and/or bugs in the software. When this happens, we need to do some packaging work on the Co-op Cloud side to ensure things work.
In order to understand when a new version requires some work before it can become available for deploying, we need to implement a test suite which will put the new version through a series of tests to ensure it works.
### Backup and restore
After you deploy your app, you need to take care of it. That means backing it up and sometimes, restoring it (e.g. if you move to another server). Another case is when an upgrade fails and you want to restore to a previous version safely. We want to provide a simple way to backup/restore apps through `abra`.
### Co-op Cloud "The Organisation"
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.
### Compensating contributors
People should be compensated for the work they contribute to Co-op Cloud. This work could mean packaging new apps, fixing the tools we build, writing blog posts, giving work shops, doing user support and so on.
We need to self-organise a clear process to help people understand how to get compensated for their work and in relation to other types of work. And this must be done in a sustainable way.
### Wider libre apps selection
We want to have more libre apps available for end-users. We currently have over 60+ apps available but there are many more which cover different needs. This catalogue should be simple to navigate and understand what apps are available and what those apps are for.
### Payments and billing
Too often, open source platforms leave the financial work to out-of-band organisational processes or altogether ignore the need, relying on unsustainable maintenance practices.
Functionality and design for accepting payments from end-users and handling the administration of billing for hosters is critical to support financial sustainability of Co-op Cloud instances.
### Documentation
Clear, concise and simple documentation designed for multiple publics (tech co-ops, end-users, general public) is an incredibly important goal for our Beta release. Quality documentation helps build capacity, understanding and promotes knowledge sharing across the project. In this sense, the documentation may be more important than the source code.
### UI / UX testing
Intensive user interface and experience testing will take place across different user groups and with different focuses in order to discover what we're getting right, what we're getting wrong and how to prioritise development of the project.
### Portability testing (software/hardware)
Modern computing takes place on many different architectures, hardware and in diverse conditions with regard to networking and power requirements. We want the Co-op Cloud to be performant, run reliably and be portable to support different needs. This means deploying and testing Co-op Cloud instances in different environments.
### Cloud provisioning portability (Hetzner, DO, Linode, etc.)
Co-op Cloud should support running on different cloud environments and support 3rd party integrations with VPS and DNS providers. We are especially interested in supporting integrations with tech co-op providers such as [servers.coop](https://servers.coop). This kind of automation is expected when using corporate providers and we want to achieve this level of convenience as well.
### Pen Testing/security
Security is important and we want to provide a realistic guarantee of what Co-op Cloud can and cannot offer. This means working with security communities in order to analyse how secure our system is.
### Design and aesthetics
We want to develop and maintain a visual aesthetic and design presence which communicates what the project is about and the values it promotes.
### Public communications
We want to have clear guidelines and processes around how we communicate the project to a wide public and how to self-organise that inside the project.
+2 -2
View File
@@ -10,9 +10,9 @@ The urgency to build an alternative to ["corporate clouds"](https://2023.transme
We begin with the monopolisation of our digital lives, the stranglehold of corporate control (aka [GAFAM](https://degooglisons-internet.org/en/)), which represents a grave threat to our collective freedom, our societies and our hopes for a good life on planet earth.
We acknowledge the vast accumulation of network effects and resources accrued by these monopolies. This is the basis of our understanding that no single project, "product" or organisation can create the required shift to a more widespread public interest technology.
We acknowledge the vast accumulation of network effects and resources accrued by these monopolies. This is the basis of our understanding that no single project, "product" or organisation can create the required shift to a more widespread democratic technology.
When we say public interest technology, we mean a technology which is not built in the service of monopoly. We are speaking of a technology which emerges from elements of democracy: bottom-up decision making, social need, community ownership and ecological thinking. Our aspiration is a technology which is built in the service of social justice, equality and collective freedom.
When we say democratic technology, we mean a technology which is not built in the service of monopoly. We are speaking of a technology which emerges from elements of democracy: bottom-up decision making, social need, community ownership and ecological thinking. Our aspiration is a technology which is built in the service of social justice, equality and collective freedom.
Our strategy is to mutualise our resources to facilitate this shift. We harbour no illusions: technology alone will not "save us" and simply deploying libre software is not enough. We do not operate in a bubble and do not wish to remain contained within a subculture.
+5
View File
@@ -1,3 +1,8 @@
---
title: Specifications
---
We gather all community written specifications here. Specifications are useful
for coordinating implementation across moving parts and different tools which
everyone needs to understand. One clear example is how `backup-bot-two` and
`abra` interact.
+14 -18
View File
@@ -9,7 +9,6 @@ theme:
features:
navigation.instant.progress
- content.action.edit
- navigation.expand
- navigation.indexes
- navigation.instant
- navigation.path
@@ -80,25 +79,18 @@ nav:
- "Packaging Handbook": maintainers/handbook.md
- maintainers/catalogue.md
- "Operators":
- operators/index.md
- "New operators Tutorial": operators/tutorial.md
- "Operators Handbook": operators/handbook.md
- "Federation":
- federation/index.md
- federation/handbook.md
- federation/organisers.md
- federation/kite-flying-pad-archive.md
- "Bylaws": federation/bylaws.md
- "Finance": federation/finance.md
- "Membership": federation/membership.md
- "Joining the Co-op Cloud Federation": federation/join.md
- "Join the CCF": federation/join.md
- "Code of Co-operation": federation/code-of-coop.md
- "Shared Infrastructure Inventory": federation/infra.md
- "Proposals":
- federation/proposals/index.md
- federation/proposals/federation.md
- "Resolutions":
- federation/resolutions/index.md
- "Draft":
- federation/resolutions/index.md
- "Passed":
@@ -144,6 +136,7 @@ nav:
- federation/resolutions/passed/042.md
- federation/resolutions/passed/043.md
- federation/resolutions/passed/044.md
- federation/resolutions/passed/047.md
- "Stalled":
- federation/resolutions/stalled/013.md
- federation/resolutions/stalled/030.md
@@ -152,9 +145,9 @@ nav:
- federation/resolutions/in-progress/046.md
- federation/resolutions/index.md
- "Minutes":
- federation/minutes/index.md
- "Recently":
- federation/minutes/2025-12-28.md
- federation/minutes/kf-archive.md
- "Archive":
- federation/minutes/2024-08-15.md
- federation/minutes/2024-04-17.md
@@ -162,14 +155,18 @@ nav:
- federation/minutes/2024-02-01.md
- federation/minutes/2022-03-03.md
- federation/minutes/2023-05-03.md
- "Digital Tools": federation/tools.md
- "Digital Tools":
- federation/tools/infra.md
- "Surveys":
- federation/surveys/usage-2026.md
- "Funding applications":
- federation/funding-applications/index.md
- federation/funding-applications/culture-of-solidarity.md
- federation/funding-applications/ford-foundation.md
- federation/funding-applications/private-funder.md
- federation/funding-applications/sovereign-tech-fund.md
- federation/funding-applications/user-operated-internet.md
- federation/funding/culture-of-solidarity.md
- federation/funding/ford-foundation.md
- federation/funding/private-funder.md
- federation/funding/sovereign-tech-fund.md
- federation/funding/user-operated-internet.md
- federation/funding/sovereign-tech-fund.md
- federation/funding/nlnet-codesupply.md
- "Abra":
- abra/index.md
- "Install": abra/install.md
@@ -184,7 +181,6 @@ nav:
- "Specifications":
- specs/index.md
- "Backups":
- specs/backup/index.md
- specs/backup/maintain.md
- specs/backup/spec.md