migrate mjolnir to draupnir #161

Merged
c6ristian merged 1 commit from lilly/draupnir-migration into main 2026-09-07 18:33:44 +02:00
12 changed files with 60 additions and 59 deletions

View file

@ -37,7 +37,7 @@ keys:
- &host_ntfy_ansible_pull_age_key age1dkecypmfuj0tcm2cz8vnvq5drpu2ddhgnfkzxvscs7m4e79gpseqyhr9pg
- &host_spaceapiccc_ansible_pull_age_key age1mdtnk78aeqnwqadjqje5pfha04wu92d3ecchyqajjmy434kwq98qksq2wa
- &host_acmedns_ansible_pull_age_key age16pxqxdj25xz6w200sf8duc62vyk0xkhzc7y63nyhg29sm077vp8qy4sywv
- &host_mjolnir_ansible_pull_age_key age1hv7m3xypesdfm0dfzwgctde8v307g9xaunnfu2687y0lagcs5q7s3eg0kj
- &host_draupnir_ansible_pull_age_key age1hv7m3xypesdfm0dfzwgctde8v307g9xaunnfu2687y0lagcs5q7s3eg0kj
- &host_diday_staging_runner_ansible_pull_age_key age1522f3qzddm82w63j7ajdkr0khvced6ht7tzp3grvp0j3hewtvesssr5kpf
- &host_auth_dns_ansible_pull_age_key age18zgt4y2sd75hxnpe333zz39048ctxpr0q8a3uqh3jajjkyawsdrq8yg5ve
- &host_forgejo_runner_ansible_pull_age_key age1az0k6cadssk6r8qcqxfr8cyu5mndy59pwt8yqq6w065ew6au4ezsmg2vkf
@ -201,12 +201,12 @@ creation_rules:
*admin_gpg_keys
age:
- *host_spaceapiccc_ansible_pull_age_key
- path_regex: "inventories/chaosknoten/host_vars/mjolnir\\.sops\\..+"
- path_regex: "inventories/chaosknoten/host_vars/draupnir\\.sops\\..+"
key_groups:
- pgp:
*admin_gpg_keys
age:
- *host_mjolnir_ansible_pull_age_key
- *host_draupnir_ansible_pull_age_key
- path_regex: "inventories/chaosknoten/host_vars/diday-staging-runner\\.sops\\..+"
key_groups:
- pgp:

View file

@ -23,7 +23,7 @@ During moderation, we adhere to the following principles:
## 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".
The bot account `@moderation:hamburg.ccc.de` (Draupnir) 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.

View file

@ -40,14 +40,14 @@ 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:
Then enter the *CCCHH Moderation Management* room and write the following draupnir command while substituting the copied room id:
```
!mjolnir rooms add <room-id>
!draupnir 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.
To verify that everything was done correctly, you can enter `!draupnir verify` in the *CCCHH Moderation Management* room and observe that the moderation bot does not give you an error.

View file

@ -18,7 +18,7 @@ All bot actions are triggered through the *CCCHH Moderation Management* room.
## Banning a User
```
!mjolnir ban general user <glob> <reason>
!draupnir 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.
@ -27,7 +27,7 @@ All bot actions are triggered through the *CCCHH Moderation Management* room.
## Banning a Server
```
!mjolnir ban server <glob> <reason>
!draupnir 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.
@ -37,7 +37,7 @@ All bot actions are triggered through the *CCCHH Moderation Management* room.
## Redacting a single Message
```
!mjolnir redact <permalink>
!draupnir 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.
@ -45,7 +45,7 @@ All bot actions are triggered through the *CCCHH Moderation Management* room.
## Redacting all Messages of a User
```
!mjolnir redact <user-id>
!draupnir 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

@ -0,0 +1,188 @@
ansible_pull__age_private_key: ENC[AES256_GCM,data:mUKh1aFJ8hn0GqfWQw5pWSAj9qaj5wH/NrHhEp9sdOYfNCBPp1dfYIDTqFAnPNz2SLzoQ+HIuPYxSCaWNq0zS8TStBelUoEGDuE=,iv:rbVLKpUzHr2ZZsHlRZtBp9E8IX9TVAa/nJAXfnh4fJQ=,tag:wT/0Ku9yrwD9snnzMigU3g==,type:str]
secret__draupnir_matrix_user_token: ENC[AES256_GCM,data:WtWZQh8Khwv4bq0U0vg2203P4PnLHNRVBTN59NqGX9PggVi2rRy3PZc=,iv:L3d+xI85IXB0DfynjQxhAjAmZ3rKLTFVWCcBcdqxzF8=,tag:qAiv4M1EbKVd+ysWhV/JIA==,type:str]
sops:
age:
- enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3b2MzYzFWaHJ4M3NkaDkw
cEYzVDhQSGQ4SGpJQllmZGNTUUhGSy9KZkZjCi9CY0pRVTh3SUQyK0dlckMvVGI1
YkwxWmNkaFlZb004QUpsek1oNjhNS0EKLS0tIENDUmE4ZDhmZTlKYTJ3RSt3VXVj
V09XOXY4bHBpbWxpdTNycHVwVUptdE0KsksBHnhpGmag6KZmeUjI6GzYPVvG06bw
mGhQf8hwa4m7tTtD806kVuKJ/nXhOZXFr1Gp65iWGBfT5lJk2VIayQ==
-----END AGE ENCRYPTED FILE-----
recipient: age1hv7m3xypesdfm0dfzwgctde8v307g9xaunnfu2687y0lagcs5q7s3eg0kj
lastmodified: "2026-09-06T11:30:21Z"
mac: ENC[AES256_GCM,data:tTOVUVlU2BOD7Xxxmn6I6b8V+zouNgyNfet18JZKuIrAqRgag/oKadoa+lBjiH/JiCUunNueACf14wsrw5eOdpJiL1zBg8sK6kyPDrI1IRGMJWXX0x01DJSL1INNz6fKdHTA+hqI0w6lTWPiLwgTbsfyMwF+lutaJv79cANC3UU=,iv:i34JCNJHLgQwZAKGrF1dX1TZSvOnB3HqQe/BvA9HTtY=,tag:8LY0AdEtVFTVY2d0dbiuDA==,type:str]
pgp:
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMAxK/JaB2/SdtARAAg3P/sCvXZNn/o2juDKNe17Hksk8whr7WmoUif4djRIUk
oZa1wR0l/WIdnCukQ1eSoLRJridumz4cM38fR/aRNYsetYwUwFpkOp+2W/kAutKN
tdoeWhUYXazJo8/MrrclBp/1GUzCrBNCeYIhfl3p6odJfZPu5+YWBta+bfKaeg5v
bpU0Z8FKIRM3Y8KG55aJKItUaNLpTxmS4uS6QFB9qXaA2cmO1kGACWnYizYPA7dg
LjUGTYnB9L3IkEmL6KPBw45ixW73tWQTwjPCz6qheRUr4nvUvLGfNzPL/V2XQhJn
ArTVLrTZYgnPxWt8RA6anJ/R286UQ3khWfA3oBX2r9mXUQJCcapU3S5GjAUd0fb4
qLytT+qyeV/A15Mpq8m3nGyGhUEMZVYWNbydH7fR6MjzLhmwwk/qP/ByDUgWVq7I
uyIlV9rxIipSW5ZeJGWdJIlAdFXgeugI3QU26RkvS7P/m9XFom133l3erF4Ehujb
h7Tv/QjR5Z4gFCoEQ75y4egbqI6Ziuoi4o5FWMxEYvMTXiVB5nA+4zXLuL5eXYUF
UD9IKiyyme4RCzMZbycFfOc8UiQoS8/QIh3Z+AfrqWWAUU7NI8WARn6Xp3to0AFf
7R8Miw3OvK8y2iD6fEpoyYgBOicCUCJwgriSYwWvS6eCui8r+5unv2eUoKo0gGnS
XAGCnXJCD2r9H90XzzYuG401C5EJW4aQ2erVJ+9gRqpnbfeCLurH0r4LLizPyeIK
YXSCm/e2da7pzKEcTudp/KVwoLxw60vjcahZJOWnrYXkvAV+XoVA/599x/kk
=56oA
-----END PGP MESSAGE-----
fp: EF643F59E008414882232C78FFA8331EEB7D6B70
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQEMA1QflAioE8i3AQf/Wf3a4dHFiFpopvb3UjFao6+Fphxj2vzerVcvILYOgfsM
792Y0rIiDJyqSeP3cGI0UK2pDanGv5SqL8CgmNQBhvD6eWSngQMyaOFB1NA4h/LF
oT+wjmXWq1CSlllZI2nyjghMiUzuf4YnrzlE/zJCMvOTtbdbD+fxfP8u9ARJTgfA
j8axYUwP+J+V08SlvRSn9Ek/VFTC1A2VodAxQ/KRCnCVFI72BoAqNCvu00UrKK3R
4SiaFG0bZm/NWxUjqDh1YNXSqyoqKKo1rkjUxesYCiFtvfZ7EIKjSKB1WTfVwI1G
POtid9UO6V+rLpbrIfs24CiidHmMAbnEjXf0LGdxJ9JcAQ3JsatfCUAGifcJsxKo
UKLDGd4+Sl3zv/1jKkoOtMDKxMgOp5LjpGLoi2ouEtT1YLJtKX8+SVTPrjHvWCUx
mZaTcuf0hUtVxOxj1D++Tq54V5H/lHsGegsmiAM=
=hKN7
-----END PGP MESSAGE-----
fp: 21C9579E6503CA815A68ABD8541F9408A813C8B7
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMAz5uSgHG2iMJARAAucnW94WGNwhzUp+lUU302YADWeWzJ2cImB9Dm4x9qsDe
5k51F7wz0Tjj56Rwccc2zes4c9XepDahuMqFqbSIq0YABuDsvjWUEbtRMHt/fDbu
ySsHqYzG87GlS1zNsXStvJUdjlKHNZ7xTJAY99Esk9eAwHXpqjNeFgnzZQT7aKKf
bR9hlIj0YlI96YPFCwLnuxDrequEn5KFI0posDxwTii77Z8P5SxlqgGDQS+pDXaa
C52Eho0bS54MlqL8G/DiRsQ/tWEjRQ0PvZcDaPFkHVvwKElx0czyG0iNKwFQ2vUM
rOOrV1gMA4zVlumMwU/InfK1hw8MmrQUIS8TMTiGce5+7JndRdf9uPlIM5c95fun
h6D4/ecTJAyGtNpFiSxY9KjYd3InVb83L3xW9HGq3h6hnznvGV5+vxppB5dqLaIk
5AezeB57Etu/Q4nzwax9oTAbWEc4eTSKrsfNUxXMk/RNfN9ZeM+ZTZ8wegcFEcJd
fvTaYTVFQRYw2/Lqrluz8Cw4vdp/7Ijg/6D2hsSqGQcnJK5EXTwvf/bHdr7fFyZk
KWyzyc/3Ek5yad2Q50XERU2T2vzVdmZmjjcCRZcWTQQo6OspOLvrgG9sb5xJNhRb
GZWpCL1e7cr5WlRm5UOztPvLtFJb3asauXmBcPQck3K0GPp71Q6HleUQRbnUcYXS
XAHKFEFcKu4pBX9N3s5zuUYJPESl5+HuXAt6DSy2uq0cgS/UnsiIbrVKNEdNYlE+
TNOle6d92dsG3wNDD4cotbrDk2gQM3UWti6cQs/me8NioKbrfAazahOY3KQB
=4dX4
-----END PGP MESSAGE-----
fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DsZXvxFXTXoQSAQdAOmwavoedg1DAfsd+UzDzDWKAF8Za9jjI5taUXNyOElsw
YxphzLDLGo05Y5j8JbHLDnJK3zE7k5CPdy2iCDAJPCof74/05bngZnvubS0XAial
0lwBGgxxBnTuQdeKN2oxrzqhLYLy9P35aO5PX9NoFIu0GSuwuqSUIKW1x4DXu/M9
ZzDCPx8TUeVVGGPfvAU3GucTFdV9th+zHOzhlliMIaYoUrzEySUrAtN27UT/nQ==
=SMIT
-----END PGP MESSAGE-----
fp: 9633412309CCB83BFA39BA5F2FEF746201D7FCFE
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DerEtaFuTeewSAQdAD8uSHTF5k96Posm4Q+3L/vOEmWYnY1H7egXNDhnaSyAw
d6mXsd9bnMlTI3KZVwOplC+iB5zazMVWZZ4T6H87kUMK5c/2RQTIy0Bt9eNroIWt
0lwBEF/whwlo5Wwmn633UyNZdKc5MriomN9VyIYDIZQjis0fciH3hGl5O3YLwR3Z
IYjZRCiC3kfVc2SbeVBcx2dWgi3aqS9qutw3pN9LW3hED/OGEYe40xrKaNlmRQ==
=R4wH
-----END PGP MESSAGE-----
fp: 057870A2C72CD82566A3EC983695F4FCBCAE4912
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMAxjNhCKPP69fAQ/7BdZfG4cqrWaVVuheGjFR59Ni2ssP9nMdd5U3670mxYpN
W/NMKJoZFtROlSsQ6vUO6sHfdmmmFAzJ5lMJtqD6HU1CkVNIU54KiiYWSoUGxb+3
oLc6g68VKZloFC9hcrS/EX0PmDUV2BJHxftTH9Kh61I4haFynID9i1U3yFMeSCpK
AXEbo8vD/+mOlcyXPSVR1eZL9Hcx157fhoSQJ1+fulPpLt2Xa0ieqmqTROxZ619h
+XKp4LgwWPorYfbupLYE5PfhgHRnyhISQraiVOed+hpaolUnxKg3Ag4V7qkSir7x
+sjlOJb3QTzeBLZBvDdv7DiWsTmMdijXoLG3o2asQSnp4LrR4Cz8m9VOjOtae2fl
jpyk2QqBFUqzCeTxysWBwEnRsJLVa1C+FwZG9UrJnrMNQ0TL7wapmvDtwl1hxlw9
XH/7WTALR2GYzMHBo77ahPdtjYq9bD0YW7unI/l23vePVQn9/hASuvMWnwc+8ToV
ZIgNiIH0yy4FdQbgxhlcn3FMNgLwJBb2Bz/F0PDN1sTwlHGtI6ZlTAxzp0U0ccGE
1W7RPMn7T/mqsZ1DTfSQE0DDwYyfn7Vl5mERs8/lLPrfS07O3aSCoh5e6IIYGiMz
ClsMjRvaqhWY7xJHWdQdL7iCCMVVeYdXEkvTz51bLqV/ssDEfch9EBk6m+lsqk3S
XAGWJXl3H+M1IYRrUHtAvMQvC40QZ55gY2I9Oeckc+1IZky4IuYymWJL2G+/M5Jj
jx3zGZ/PI50FUYHKkE0KXIIfk1T38QqMxjex0O2YVsud9jF0DbO2MK+DmiUO
=0Nta
-----END PGP MESSAGE-----
fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMA46L6MuPqfJqAQ/6AmKU5wDLb+dV1Tr48dHE6rE0XwlRESnMWNIFP+zj6krG
5drkRK7yKY2grfxcY3PXKALlxQfsjLaNqk6HQMEwuUmYh0I+1tZ0iKDPwskVHWPZ
g9QhwOG/W/gioWIvneeUhHmFAiww7hOBrvEgP1PBXkM3fwHMEl0H9+/abNobMDRK
uW5I8ynL9Z/BZgNhS/S61UuQoXejrSk78NkYY+YFRim45tA//EfWMv21PDiJJPCg
IM7+wAzzqfFQ4Y8rKmThkfz9NQKdCfkuXqT4ak9VerTsasB45gYkWp7B79jguPgv
vM4i2X1iMyyAMXpyvDDK9ZVJAZ2NzjSKfE2A0V0OtXnsLTAOCbf+6Ra37w3XV8Gs
4ZoMDzdlHiLPujZqf132DEdbxAh22uAnLF+Hy7vBNHP08jcjrkC2P9JKjgpbDhrD
34YdIAx3m9zwwr+Y5QZeq1VAY3ckWFd/F65/xzLInRnXmf6YyzX9mzJTC9WdtMY9
7jZAYuGGbsikrbV7c9jovS4AzqFOkmCJvnSGIGAmIctEYHbTp2XB6JGaitcvw6Og
vn6ReKlPVYO33KZ5qK9SyfMDNk4TNa9igSuNQqp22xs5d54Cm9gQvEnV5G79Hgc1
SqkL2zuhh0Kol6PO0bVcMlnZUhdgQtIGOGMST455GTtnCuq9m9E/feturgFrSbnS
XAEuaspGbBCgpB3HzOjhoOWLnAzBmAYmDBcup3a67VGUkUblFnUsn4IuYxh7ruow
NxmjzxeLGL4kMmMkFYTZ4hdRLaLH1WP3fWBFV9DERG9QGifcPd64hX5fn7xS
=8aYy
-----END PGP MESSAGE-----
fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DQrf1tCqiJxoSAQdAnt+BrerUruQvwmvDaIAx3m6ZqBjbJv4KiFtRB650EHEw
lmRZWsYjvY0+/e3LOYQn7jJ8VZe/vuGjDKaUcG9uQ4cSeLE+ZiYSsyO17kfF5oqi
0lwBAyjS/8SS6/rQxLBTj452cen/fuIznY/eHY2IpLNXJzNQf09sH/rA1Rot/fxR
gi+85FfCXjtlgBe6Iwpj0rLmpUT9pbjgLMpBn2JSyfYcdp4rajjotYLZbXhVAQ==
=59ES
-----END PGP MESSAGE-----
fp: B71138A6A8964A3C3B8899857B4F70C356765BAB
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DzAGzViGx4qcSAQdA9Nf2vvTGhvEhgslQpNTl2A1p4gklFHrrBcK+JZBDY3Uw
A/vCtnuLYeKFNgSSHI7dIslck7+tzH/8pXxyXGtXSRUWmg7/uE7N5n4x9jEqUy9z
0lYBv9ArQcGI1vetG9qKmC/rZ9FU2LqmkGZSufQTrVPKkHmxPQZIYYFFYzp8e/jg
BEbzxr3/qkAgkS+BAdGVFvd7DXzP8ui9SJn8GVxyCa9hFcRKcRoqkw==
=s+xO
-----END PGP MESSAGE-----
fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMA2pVdGTIrZI+ARAAyezo2W4BSTA+/8m2zc7ZF+cFwMpoaTw9W6ImrouvG6Fy
k1zrVoM4nW87Yf7omNYm8dZjKxMgO30vRfJSvghjU1NOhcqt/nkUuynPdMa8YXrL
XAeACNXcHNkWOoD6BvtuPYXS3Z7fXZouK8P8SCAXudnicC5eKh+hFXIpeqYKamOk
9+hPIQdN3a7qp1ofwNrkNGHOxytVuH5yZHB/RXB+/NgkTNsbC7cXXUi1DpHyFtoA
OEPFINu5THwaj7tTHlbqgJ3QVhoM3J8OEh3im8I8Zn/r/N7jyFT/R4f/grBdGRYh
iEnJelYhbGL2qo5YBJ2LHAezSJXzKm9l6H+WiyWQmK4kSH8kUb8vqBO8R4DR6mKS
2l5HEbmZQfmllPTCyWHbxJoIvtx0/5lnulkjXq8kHcV+Ih1A8AUc+wCRb+7fPM/w
WOCmVYTo5c4GGr6D1fxN4pPzj/jksRdVduietIKKeaeB4AUTx9ljGimToqzQE7UP
yJ9eBaANrd91uz5rL8OSTBR9Ve7UUyA0Mchodacn4hpRZAZc4GwWPAI0sa4tnXP/
RES190GCWdrXcMcCTZF9d/Vn6CQhYeQv/PYcTjo5qiXgVkK3RDg9V9m/dj6BP1k7
vOM7f1oko5SV+weNPpNgacyHo0rQiFfdB7fjyOvDqMzINoAl+bL75sbHuJcpR4bS
XAHeNSMyvydLwIY8rfXtZslAQi56ft37UGu/4qZKwabCKRHsG9K/3lYo9Z+swACr
iE5G/o/RQgIuBDEtSjZVAMTAAXg1cz/Sd+5dih36dVhNzf6KR9WtReK4DmKt
=tL93
-----END PGP MESSAGE-----
fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533
- created_at: "2026-05-20T02:08:45Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DKKbvh61jX5USAQdAaXD57G+sJAGL6jrLPlprzmtsc24yqmmtXpUAnmLZHzEw
Gyfx7FQw+NibMrTVmorXpvySedqHvf8rMz5hfM1TVuea/VY9YSai+xa2A1TpJ9fB
0lwBoxBBqh4t8wKk7DF/Ipv9pdmuERcjBGmc+DhYa/y5E5sG2du0jwEpYxQvRvaE
weT3ygHhzK0YwB3IZ4VXiV6rIuKg4aq1Hs3hQQicK72VPcdJFJzI1TQhQfAeUA==
=zH0q
-----END PGP MESSAGE-----
fp: 41FFAF3D519CF5C039FBD8414BCC213729AF0E49
unencrypted_suffix: _unencrypted
version: 3.13.3

View file

@ -0,0 +1,4 @@
docker_compose__compose_file_content: "{{ lookup('ansible.builtin.file', 'resources/chaosknoten/draupnir/docker_compose/compose.yaml') }}"
docker_compose__configuration_files:
- name: config.yaml
content: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/draupnir/docker_compose/config.yaml.j2') }}"

View file

@ -36,8 +36,8 @@ all:
lists:
ansible_host: lists.hamburg.ccc.de
ansible_user: chaos
mjolnir:
ansible_host: mjolnir.hosts.hamburg.ccc.de
draupnir:
ansible_host: draupnir.hosts.hamburg.ccc.de
ansible_user: chaos
ansible_ssh_common_args: -J ssh://chaos@router.hamburg.ccc.de
mumble:
@ -132,7 +132,7 @@ base_config_hosts:
sunders:
renovate:
spaceapiccc:
mjolnir:
draupnir:
auth-dns:
forgejo-runner:
forgejo-runner-external:
@ -158,7 +158,7 @@ docker_compose_hosts:
ntfy:
sunders:
spaceapiccc:
mjolnir:
draupnir:
nextcloud_hosts:
hosts:
cloud:
@ -246,7 +246,7 @@ infrastructure_authorized_keys_hosts:
sunders:
renovate:
spaceapiccc:
mjolnir:
draupnir:
auth-dns:
lists:
forgejo-runner:
@ -284,7 +284,7 @@ ansible_pull_hosts:
zammad:
ntfy:
spaceapiccc:
mjolnir:
draupnir:
auth-dns:
forgejo-runner:
forgejo-runner-external:

View file

@ -499,7 +499,8 @@ keycloak.hosts IN AAAA 2a00:14b0:42:102::6
onlyoffice.hosts IN AAAA 2a00:14b0:42:102::7
renovate.hosts IN AAAA 2a00:14b0:42:102::8
sunders.hosts IN AAAA 2a00:14b0:42:102::9
mjolnir.hosts IN AAAA 2a00:14b0:42:102::a
draupnir.hosts IN AAAA 2a00:14b0:42:102::a
mjolnir.hosts IN CNAME draupnir.hosts
netbox.hosts IN AAAA 2a00:14b0:42:102::b
tickets.hosts IN AAAA 2a00:14b0:42:102::c
zammad.hosts IN AAAA 2a00:14b0:42:102::d

View file

@ -0,0 +1,11 @@
# Links & Resources
# https://github.com/matrix-org/mjolnir/blob/main/docs/setup_docker.md
services:
draupnir:
image: ghcr.io/the-draupnir-project/draupnir:v3.1.0
command: [ "bot", "--draupnir-config", "/etc/draupnir/production.yaml" ]
restart: unless-stopped
volumes:
- ./draupnir_data:/data
- ./configs/config.yaml:/etc/draupnir/production.yaml:ro

View file

@ -0,0 +1,22 @@
# https://github.com/the-draupnir-project/Draupnir/blob/main/config/default.yaml
homeserverUrl: "https://matrix.hamburg.ccc.de"
rawHomeserverUrl: "https://matrix.hamburg.ccc.de"
accessToken: "{{ secret__draupnir_matrix_user_token }}"
dataPath: "/data/storage"
logLevel: "INFO"
recordIgnoredInvites: true
managementRoom: "#moderation-management:hamburg.ccc.de"
experimentalRustCrypto: true
automaticallyRedactForReasons:
- "spam"
- "advertising"
- "porn"
- "harassmet"
# currently not working because /_synapse is not routed via reverse proxy
pollReports: false
# this knob can turn of moderation action temporarily
noop: false

View file

@ -1,10 +0,0 @@
# Links & Resources
# https://github.com/matrix-org/mjolnir/blob/main/docs/setup_docker.md
services:
mjolnir:
image: docker.io/matrixdotorg/mjolnir:v1.12.1
restart: unless-stopped
volumes:
- ./mjolnir_data:/data
- ./configs/config.yaml:/data/config/production.yaml:ro

View file

@ -1,23 +0,0 @@
# https://github.com/matrix-org/mjolnir/blob/main/config/default.yaml
homeserverUrl: "https://matrix.hamburg.ccc.de"
rawHomeserverUrl: "https://matrix.hamburg.ccc.de"
# Mjolnir should be able to retrieve an access token itself
encryption:
use: true
username: "moderation"
password: {{ secret__mjolnir_matrix_user_password }}
dataPath: "/data/storage"
autojoinOnlyIfManager: true
recordIgnoredInvites: true
# The native encryption backend doesn't seem to support v12 rooms yet.
# https://github.com/matrix-org/mjolnir/issues/641
managementRoom: "#moderation-management-v11:hamburg.ccc.de"
forwardMentionsToManagementRoom: false
verboseLogging: false
logLevel: "INFO"
syncOnStartup: true
verifyPermissionsOnStartup: true
noop: false
fasterMembershipChecks: false
protectAllJoinedRooms: true