Compare commits

...

8 Commits

Author SHA1 Message Date
Apfelwurm cfc015c42e update secret generation docs 2026-02-15 20:56:03 +01:00
Apfelwurm f9d3d7e02c add docker cli pr to fork maintenance 2026-02-13 14:17:39 +01:00
p4u1 2cc577af37 docs: Add docker/cli fork to abra hacking 2026-02-13 10:14:29 +01:00
Apfelwurm 0d2b6afc15 add to nav 2026-02-12 14:41:41 +01:00
Apfelwurm 3900fba85a add Resolution 037: Adopt alakazam as an official project in the Co-op Cloud Federation 2026-02-12 14:34:07 +01:00
decentral1se 8f5636e28d feat: publish 2026-02-12 09:15:29 +01:00
decentral1se dd2587228e fix: tweaks 2026-02-12 09:15:29 +01:00
iexos 38ea5271c1 fix link 2026-02-11 10:28:23 +01:00
6 changed files with 89 additions and 26 deletions
+4
View File
@@ -440,6 +440,10 @@ Happy Hacking 🫂
We maintain a fork of [godotenv](https://git.coopcloud.tech/toolshed/godotenv) because we need inline comment parsing for environment files. You can upgrade the version here by running `go get git.coopcloud.tech/toolshed/godotenv@0<COMMID>` where `<commit>` is the latest commit you want to pin to. See [`abra#391`](https://git.coopcloud.tech/toolshed/abra/pulls/391) for more.
### `docker/cli`
We maintain a fork of [docker-cli](https://git.coopcloud.tech/toolshed/docker-cli/) because we needed to [patch port exposing](https://git.coopcloud.tech/toolshed/docker-cli/commit/2fbb22f65866ac97b47e4d47d8f855fee8c98e2a) to fix this [bug](https://github.com/docker/cli/issues/2407). Once the [fix was upstreamed](https://github.com/docker/cli/pull/6799) we can remove this fork again.
### `docker/client`
A number of modules in [pkg/upstream](https://git.coopcloud.tech/toolshed/abra/src/branch/main/pkg/upstream) are copy/pasta'd from the upstream [docker/docker/client](https://pkg.go.dev/github.com/docker/docker/client). We had to do this because upstream are not exposing their API as public.
+1 -1
View File
@@ -105,4 +105,4 @@ $ git clone https://git.coopcloud.tech/coop-cloud/MyCoolRecipe.git ~/.abra/recip
## "only updates to Labels are allowed"
See [Packaging handbook » What does "only updates to Labels are allowed" mean](maintainers/handbook/#what-does-only-updates-to-labels-are-allowed-mean).
See [Packaging handbook » What does "only updates to Labels are allowed" mean](/maintainers/handbook/#what-does-only-updates-to-labels-are-allowed-mean).
@@ -3,16 +3,16 @@ title: "Resolution 035: Budget 016: Sutty Website Proposal"
---
- Topic: Budget 016: Sutty Website Proposal
- Date: 2026-01-16
- Deadline: 2026-01-30
- Date: 2026-02-12
- Deadline: 2026-02-26
- Size: Large
## Summary
Budget 016 proposes to:
1. Compensate Sutty and Co-op Cloud community members `@edu` & `@eli` 250 USD according to their own proposed compensation.
1. Compensate `@diatom` for up to 10 hours to participate in the generative process as Co-op Cloud community delegate.
1. Compensate Sutty and Co-op Cloud community members `@edu` & `@eli` 250 USD (500 USD total) each according to their own proposed compensation.
1. Compensate `@diatom` for up to 30 hours to participate in the generative process as Co-op Cloud community delegate.
Please see [the full proposal text](https://vvvvvvaria.org/~decentral1se/cc/CoopCloud-2025WebsiteProposal-Sutty.pdf) for more details. See `Capítulo 3 > Resources estimations` for the section regarding financial estimations. The Co-op Cloud community and federation are to be consulted during this process for decision making around choosing a new website proposal. `@diatom` agrees to be a bridge between the work of `@edu`/`@eli` and the Co-op Cloud community.
@@ -28,6 +28,6 @@ Please join `#coop-cloud-new-website:autonomic.zone` to participate in this proc
The budget total is:
* 250 USD (216 EUR)
* 10 hrs * 20 EUR = 200 EUR
* **Total**: 416 EUR
* 500 USD (423 EUR)
* 30 hrs * 20 EUR = 600 EUR
* **Total**: 1023 EUR
@@ -0,0 +1,26 @@
---
title: "Resolution 037: Adopt alakazam as an official project in the Co-op Cloud Federation"
---
- Topic: Resolution 037: Adopt alakazam as an official project in the Co-op Cloud Federation
- Date: 12-02-2026
- Deadline: 26-02-2026
- Size: medium
## Summary
We want to adopt the abra wrapper Alakazam (https://git.coopcloud.tech/moritz/alakazam) , which is used by KolliCloud (https://kollicloud.de) as an official project in the Co-op Cloud Federation
## Details
As we already disscussed on our Meetup and the Alakazam workshop at 39C3 end of 2025, we want to adopt the abra wrapper Alakazam (https://git.coopcloud.tech/moritz/alakazam), which is used by KolliCloud (https://kollicloud.de) as an official project in the Co-op Cloud Federation. This way, we want to start collaborative effort on teaching, writing docs, writing tests.
This includes the following (in the long run):
* tranfering the Alakazam repository to https://git.coopcloud.tech/toolshed
* creating a space in the docs for alakazam and moving the contents of the readme and the nessecary contents of https://wiki.local-it.org/s/kollicloud-wiki/doc/installation-wVp2LfBbg7
* get others to try alakazam (future Kite-Flying sessions for this)
* write tests for alakazam
* implement the option to use more than one deployment of the same application in one instance
* migrate alaconnect.yml files for the recipe (we have to figure out how multiple instances would allow this in regards to the multiple same apps in one instance)
* migrate the features (that makes sense) into abra
+49 -17
View File
@@ -582,23 +582,6 @@ Add the `# generate=false` comment
SECRET_JWT_SECRET_VERSION=v1 # generate=false
```
## How do I specify the charset for a specific secret generation
!!! warning "Watch out for old versions of `abra` 🚧"
This feature is only available in the >= 0.10.x series of `abra`.
```
SECRET_JWT_SECRET_VERSION=v1 # charset=default,special
```
Options are:
* `special`: [source](https://github.com/decentral1se/passgen/blob/8404cb922dea92efa8c3514f0ec8c37ce12a880f/const.go#L22C29-L22C43)
* `safespecial`: [source](https://git.coopcloud.tech/toolshed/abra/src/commit/6abaf7a094df1a96599af2c4cbae1769821ad17c/pkg/secret/secret.go#L182)
* `default,special`: mix of `default` and `special`
* `default,safespecial`: mix of `default` and `safespecial`
## How do I change secret generation length?
It is possible to tell `abra` which length it should generate secrets with from your recipe config.
@@ -620,6 +603,13 @@ of passwords which admins have to type out in database shells.
## How do I change secret generation characters?
!!! warning "Watch out for old versions of `abra` 🚧"
This feature is only available in the >= 0.10.x series of `abra`.
The generation of `hex` secrets is only available in the >= 0.12.x series of `abra`.
The generation of `bytes` secrets is only available in the >= 0.13.x series of `abra`.
It is also possible to tell `abra` which characters it should use to generate secrets with from your recipe config.
You do this by adding an additional modifier in the inline comment on the secret definition in the `.env.sample` / `.env` file.
@@ -640,10 +630,52 @@ The possible Values are:
| `default,special` | `abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789!@#$%^&*_-+=` | Uses uppercase letters, lowercase letters and numbers and special characters |
| `default,safespecial` | `abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789!@#%^&*_-+=` | Uses uppercase letters, lowercase letters and numbers and console safe special characters |
| `default` | `abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789` | Uses uppercase letters, lowercase letters and numbers |
| `hex` | `0123456789abcdef` | Uses only hexadecimal characters (0-9, a-f) |
| `bytes` | N/A (generates random bytes) | Generates random bytes instead of character-based passwords (requires `length` modifier, automatically uses `encoding=base64`) |
| any other value or not setting one will be treated as `default` | `abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789` | Uses uppercase letters, lowercase letters and numbers |
The setting does only apply when you also set a length modifier to the secret (documented [here](/maintainers/handbook/#how-do-i-change-secret-generation-length)), so it is not applicable for the "easy to remember word" style generator that used when you don't set a length.
## How do I encode generated secrets?
!!! warning "Watch out for old versions of `abra` 🚧"
This feature is only available in the >= 0.13.x series of `abra`.
You can tell `abra` to encode generated secrets using the `encoding` modifier in the inline comment on the secret definition in the `.env.sample` / `.env` file.
Here is an example:
```bash
SECRET_API_KEY_VERSION=v1 # length=32 encoding=base64
```
This will generate a 32-character secret and then base64-encode it before storing.
Currently supported encoding options:
- `base64`: Base64-encodes the generated secret value
**Note:** When using `charset=bytes`, the encoding automatically defaults to `base64` even if not explicitly specified, as raw binary data needs to be encoded for safe storage.
## How do I add a prefix to generated secrets?
!!! warning "Watch out for old versions of `abra` 🚧"
This feature is only available in the >= 0.13.x series of `abra`.
You can tell `abra` to add a prefix to generated secrets using the `prefix` modifier in the inline comment on the secret definition in the `.env.sample` / `.env` file.
Here is an example:
```bash
SECRET_APP_KEY_VERSION=v1 # length=32 charset=bytes prefix=base64:
```
This will generate a 32-byte random key, base64-encode it, and prefix it with `base64:`. This is useful for applications like Laravel that expect secrets in a specific format.
The prefix is applied after any encoding transformations.
## How do I configure backup/restore?
From the perspective of the recipe maintainer, backup/restore is just more
+2 -1
View File
@@ -96,7 +96,6 @@ nav:
- federation/resolutions/index.md
- "Draft":
- federation/resolutions/index.md
- federation/resolutions/draft/035.md
- "Passed":
- federation/resolutions/passed/001.md
- federation/resolutions/passed/002.md
@@ -136,6 +135,8 @@ nav:
- federation/resolutions/stalled/030.md
- "In Progress":
- federation/resolutions/index.md
- federation/resolutions/in-progress/035.md
- federation/resolutions/in-progress/037.md
- "Minutes":
- federation/minutes/index.md
- "Recently":