forked from toolshed/docs.coopcloud.tech
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cfc015c42e | |||
| f9d3d7e02c | |||
| 2cc577af37 | |||
| 0d2b6afc15 | |||
| 3900fba85a | |||
|
8f5636e28d
|
|||
|
dd2587228e
|
|||
| 38ea5271c1 | |||
| b7c04f8eb0 | |||
|
8a2bd25ded
|
|||
|
c5185be5b6
|
|||
|
f61538ff10
|
|||
|
5717e15966
|
|||
|
3bccc629b2
|
|||
|
b433dbd666
|
|||
|
dd9153bf93
|
|||
|
125fbe3545
|
|||
|
06552cc793
|
|||
|
e43dcd1238
|
@@ -99,6 +99,30 @@ The drone configuration was wired up as follows:
|
||||
|
||||
Please ask `@decentral1se` or on the Matrix channels for SSH access to the machine.
|
||||
|
||||
### Running manually on the CI server
|
||||
|
||||
It's convenient to be able reproduce the CI server environment yourself by SSHing to the machine and running the integration tests. Here's how you do it.
|
||||
|
||||
SSH config details:
|
||||
|
||||
```
|
||||
Host int.coopcloud.tech
|
||||
Hostname 51.159.168.99
|
||||
User root
|
||||
Port 22
|
||||
IdentityFile ~/.ssh/<private-key-part>
|
||||
```
|
||||
|
||||
Once you're in, you can run the following:
|
||||
|
||||
```
|
||||
sudo -su abra
|
||||
cd
|
||||
./run-ci-int
|
||||
```
|
||||
|
||||
You can also `cd abra` and run `bats ...` directly to trigger specific subsets of tests. See below for more tips.
|
||||
|
||||
### Running them locally
|
||||
|
||||
#### Install dependencies
|
||||
@@ -416,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.
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: "Resolution 035: Budget 016: Sutty Website Proposal"
|
||||
---
|
||||
|
||||
- Topic: Budget 016: Sutty Website Proposal
|
||||
- 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 (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.
|
||||
|
||||
## Details (Budget 016)
|
||||
|
||||
This resolution follows the Good Work of `@sef`/`@edu`/`@eli` in carrying out the Co-op Cloud Community Website Survey. The idea is that `@edu` and `@eli` (with the blessing of `@sef`) will now bring forward a concrete proposal for the new Co-op Cloud website based on their proposed generative process. Please see [the full proposal text](https://vvvvvvaria.org/~decentral1se/cc/CoopCloud-2025WebsiteProposal-Sutty.pdf) for all details.
|
||||
|
||||
#### Budget
|
||||
|
||||
`@edu`/`@eli`/`@diatom` will carry out this work.
|
||||
|
||||
Please join `#coop-cloud-new-website:autonomic.zone` to participate in this process. All community members are welcome.
|
||||
|
||||
The budget total is:
|
||||
|
||||
* 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
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: "Resolution 036: Democratic Tech Fund joins the Co-op Cloud Federation"
|
||||
---
|
||||
|
||||
- Topic: Resolution 036: Democratic Tech Fund joins the Co-op Cloud Federation
|
||||
- Date: 2026-01-19
|
||||
- Deadline: 2026-02-02
|
||||
- Size: Large
|
||||
|
||||
## Summary
|
||||
|
||||
The Democratic Tech Fund (DTF) is a Project-In-The-Making which has close affinity with Co-op Cloud in culture and stated goals. `@mikemh` and `@wtebbens` are active members of the community and can represent the Democratic Tech Fund. The DTF would like to join the Co-op Cloud Federation in order to establish a solid base for future collaboration.
|
||||
|
||||
The DTF is set up as a co-operative federation, with multi-stakeholder membership: to allow both individual as organisational membership, operational members (i.e. workers), collaborator members, council of steward members (elected) and institutional members (public and private funders).
|
||||
|
||||
A brief summary of the the intended goals of the DTF are as follows:
|
||||
|
||||
* **Build and provide the tech**: Generating working configurations of tech infrastructure and services that address actual, perceived needs, drawing on the reserves of free-libre open- source software and constructing practices of material infrastructure that are under the review and steering of the communities they service.
|
||||
|
||||
* **Mobilise awareness towards adoption**: highlighting the clear and present danger and our collective capacity to resist, re-make and re-imagine. There's a need for campaign work, media and visuals, and for intelligence and news about what has already been done.
|
||||
|
||||
* **Build the community**: nurturing local, regional and trans-regional communities and networks that are capable to articulate these alternatives, to make the change together and to sustain the economic base for radically re-oriented infrastructure.
|
||||
|
||||
Please see the latest Work-In-Progress [DTF concept note - v0.3](https://oficina.commonscloud.coop/s/No93qBkpxAsgYqE) for more details. Founding members include the [Free Knowledge Institute](https://freeknowledge.eu), [Commons Network](https://www.commonsnetwork.org) and [Fundación Platoniq / Goteo.org](https://goteo.org). The Free Knowledge Institute is also the fiscal host of the DTF. Please see the website of the [DTF](https://democratictech.fund) itself for more information.
|
||||
|
||||
DTF are happy to pay the current recommended federation membership fee.
|
||||
|
||||
Please feel free to join `#dtf2026:matrix.org` to keep up with DTF project developments.
|
||||
@@ -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
|
||||
|
||||
@@ -64,15 +64,19 @@ See the [`.gitea/PULL_REQUEST_TEMPLATE.md`](https://git.coopcloud.tech/coop-clou
|
||||
## Where can maintainers find support?
|
||||
|
||||
### Chat
|
||||
|
||||
An active community exists in the [`#coopcloud-tech`](https://matrix.to/#/#coopcloud-tech:autonomic.zone?via=autonomic.zone) channel, which can answer your questions and help with issues. Please be patient when asking for support.
|
||||
|
||||
### Recipe Issue Tracker
|
||||
|
||||
If you're stuck on a problem, create an issue in your recipe's issue tracker. Users of your repository may contribute PRs, otherwise you can ask the community for support.
|
||||
|
||||
### Toolshed
|
||||
|
||||
If you're blocked by a problem in Coop Cloud's tooling, write a ticket to one of the [Toolshed](https://git.coopcloud.tech/toolshed) issue trackers. For example:
|
||||
|
||||
* [abra](https://git.coopcloud.tech/toolshed/abra/issues)
|
||||
* [docs.coopcloud.tech](https://git.coopcloud.tech/toolshed/docs.coopcloud.tech/issues)
|
||||
* [recipes.coopcloud.tech](https://git.coopcloud.tech/toolshed/recipes.coopcloud.tech/issues)
|
||||
|
||||
If you cannot find a repository to match your problem, you can write in the (organizing issues)[https://git.coopcloud.tech/toolshed/organising/issues] tracker. (See: [migration notice](https://git.coopcloud.tech/toolshed/organising/issues/667))
|
||||
If you cannot find a repository to match your problem, you can write in the [organizing issues](https://git.coopcloud.tech/toolshed/organising/issues) tracker. (See: [migration notice](https://git.coopcloud.tech/toolshed/organising/issues/667))
|
||||
|
||||
@@ -262,7 +262,6 @@ abra app deploy <nextcloud-domain>
|
||||
```
|
||||
abra app ps -w <nextcloud-domain> # status check
|
||||
abra app logs <nextcloud-domain> # logs trailing
|
||||
abra app errors -w <nextcloud-domain> # error catcher
|
||||
```
|
||||
|
||||
Your new `traefik` instance will detect that a new app is coming up and generate TLS certificates for it. You can see what `traefik` is up to using the same commands above but replacing `<nextcloud-domain>` with the `<traefik-domain>` you chose earlier (`abra app ls` will remind you what domains you chose :grinning:).
|
||||
|
||||
@@ -94,6 +94,8 @@ nav:
|
||||
- federation/proposals/federation.md
|
||||
- "Resolutions":
|
||||
- federation/resolutions/index.md
|
||||
- "Draft":
|
||||
- federation/resolutions/index.md
|
||||
- "Passed":
|
||||
- federation/resolutions/passed/001.md
|
||||
- federation/resolutions/passed/002.md
|
||||
@@ -127,11 +129,14 @@ nav:
|
||||
- federation/resolutions/passed/031.md
|
||||
- federation/resolutions/passed/033.md
|
||||
- federation/resolutions/passed/034.md
|
||||
- federation/resolutions/passed/036.md
|
||||
- "Stalled":
|
||||
- federation/resolutions/stalled/013.md
|
||||
- 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":
|
||||
|
||||
Reference in New Issue
Block a user