Compare commits

...
Author SHA1 Message Date
35452e8639 Update docker.io/library/postgres Docker tag to v15
All checks were successful
/ build (pull_request) Successful in 29s
/ Ansible Lint (push) Successful in 3m0s
/ Ansible Lint (pull_request) Successful in 2m46s
2026-09-05 21:31:19 +00:00
ddce7783db add guide for common matrix moderation actions
All checks were successful
/ build (push) Successful in 27s
/ Ansible Lint (push) Successful in 3m30s
2026-09-05 23:29:09 +02:00
8f07ad8ca4 add guide about matrix room creation 2026-09-05 23:29:09 +02:00
6a1caed856 add concept doc for matrix moderation 2026-09-05 23:29:09 +02:00
4 changed files with 141 additions and 1 deletions

View file

@ -0,0 +1,35 @@
---
title: Matrix Moderation
---
# Matrix Moderation
All Matrix rooms created around CCCHH and which are considered *official* are subject to centralized moderation.
This moderation is enforced by a [Mjolnir](https://github.com/matrix-org/mjolnir) bot on a techincal level and operated by a dedicated sub-team of the Infra Group.
The moderation team can be reached at [matrix-moderation@hamburg.ccc.de](mailto:matrix-moderation@hamburg.ccc.de).
## Principles and Guidelines
During moderation, we adhere to the following principles:
- No *predictive policing*. We strive for fast and accurate moderation and, while we do incorporate reports from trustworthy sources close to the chaos community, we do not moderate based on gut feelings.
- Prohibited content includes spam, pornography, harassment, and fascist-like behavior. We remove such content and subsequently ban the user responsible (see [Matrix: Taking Moderation Action](../guides/matrix-taking-moderation-action.md)).
- The CCCHH admin account may be used under special circumstances to issue warnings and explain the moderation teams decisions in general terms. It does not respond to DMs and does not engage in discussions. If moderation action is to be discussed, people are referred to the moderation team at [matrix-moderation@hamburg.ccc.de](mailto:matrix-moderation@hamburg.ccc.de) instead.
- New Matrix rooms related to CCCHH are **always** created by the CCCHH admin and protected by the moderation bot. See [Matrix: Create a New Room](../guides/matrix-create-room.md) for details on creating rooms.
## How It Works
The bot account `@moderation:hamburg.ccc.de` (Mjolnir) maintains various internal lists of rules that are applied in so-called "Protected Rooms".
These can include, for example, user bans or entire server bans.
Additionally, certain automatic monitoring measures (so-called "protections") apply in these rooms, which trigger a configured action if violated.
For example, a user is not allowed to tag too many other users in a single message, as this is considered spam and results in a kick.
The bot is controlled and configured via a privileged *CCCHH Moderation Management* room using `!mjolnir` commands.
There, individual actions can also be triggered through the bot as needed, such as redacting messages, kicking users from all or some channels, etc.
It is also possible to make our moderation bot's local lists available to other entities and subscribe our bot to other entities' lists.
Our list is published in `#general-moderation:hamburg.ccc.de` and can be made available to others upon request.

View file

@ -0,0 +1,53 @@
---
title: "Matrix: Create a New Room"
---
# Matrix: Create a New Room
!!! success "Goal"
Create a new matrix room for a CCCHH group or function with correct protections and permissions
## 1. Create the Room
Rooms are always created by the *CCCHH-Admin* Account whose credentials can be found in *infra-secrets*.
To create a room, log in to https://element.hamburg.ccc.de and click on *New Conversation* -> *New Room*.
Enter a Room Name and optionally give it an address on the *hamburg.ccc.de* server.
## 2. Configure Room Metadata
Once the room is created, please give it a topic and if possible a room icon.
This makes it easier to distinguish the many rooms we have.
## 3. Invite the Moderation-Bot
Either perform the following steps via the GUI or enter the displayed commands into the chat window of the new room:
1. Invite the User `@moderation:hamburg.ccc.de` to the new room
```
/invite @moderation:hamburg.ccc.de
```
2. Give the moderation bot *Admin* Power-Level so that it can properly enforce all protections
```
/op @moderation:hamburg.ccc.de 100
```
## 4. Set Up Room Protection
We have now added the moderation bot to the room but this is not enough.
The bot needs to be told explicitly which rooms it should protect and the newly created one therefore needs to be added to that list.
First, note down the *Internal Room ID* which can be found in the new Rooms settings under the *Advanced* tab.
Then enter the *CCCHH Moderation Management* room and write the follogin mjolnir command while substituting the copied room id:
```
!mjolnir rooms add <room-id>
```
## Closing Up
You should now have a new Matrix Room under moderation protection.
To verify that everything was done correctly, you can enter `!mjolnir verify` in the *CCCHH Moderation Management* room and observe that the moderation bot does not give you an error.

View file

@ -0,0 +1,52 @@
---
title: "Matrix: Taking Moderation Action"
---
!!! success "Goal"
Perform common moderation actions in Matrix using our moderation bot
See the [Matrix-Moderation](../concepts-and-configurations/matrix-moderation.md) Concept for an overview on how the moderation system functions.
All bot actions are triggered through the *CCCHH Moderation Management* room.
!!! warning "Warning"
Moderation actions should be triggered through the bot to avoid exposing members of the moderation team to harassment.
Even if the bot is unwieldy, think before taking action with your personal account and do so on your own scrutiny.
## Banning a User
```
!mjolnir ban general user <glob> <reason>
```
- `<glob>` can be a user ID (e.g. `@example:matrix.org`) but also more sophisticated. Be careful when using actual glob syntax as whole servers can be banned even if just a single user is the intended target.
- `<reason>` is technically optional but should always be supplied so that we know why a certain user was banned in retrospect. The bot supports parsing quotations so `"<reason>"` is usually what you want if more than one word is used.
## Banning a Server
```
!mjolnir ban server <glob> <reason>
```
- `<glob>` can be used to ban subdomains of a domain too, e.g. `*.example.com`. If used, an additional `--force` is required after the whole command.
- `<reason>` should be supplied and supports quotation (`"<reason>") if more than one word is used
- When a domain is banned, we usually also ban all subdomains too. This needs to be done in two separate commands.
## Redacting a single Message
```
!mjolnir redact <permalink>
```
- `<permalink>` is **not** the message ID but the actual *https://matrix.to/#blablabla* link that can be retrieved with most clients through a *Share* or *Copy link to Message* button on an individual message.
## Redacting all Messages of a User
```
!mjolnir redact <user-id>
```
- `user-id` the Matrix-ID of the user of whom all messages in all rooms should be redacted (e.g. `@bla:example.com`).

View file

@ -62,7 +62,7 @@ services:
- POSTGRES_DB=mailmandb
- POSTGRES_USER=mailman
- "POSTGRES_PASSWORD={{ secret__lists__postgres_password }}"
image: docker.io/library/postgres:12-alpine
image: docker.io/library/postgres:15-alpine
volumes:
- /opt/mailman/database:/var/lib/postgresql/data
networks: