Added first bit of Draupnir documentation.

This commit is contained in:
Hans van Zijst 2024-11-29 02:25:20 +01:00 committed by Valentin Gagarin
parent 1cfbda32cb
commit be3830bf5c

62
matrix/draupnir/README.md Normal file
View file

@ -0,0 +1,62 @@
---
gitea: none
include_toc: true
---
# Draupnir
Draupnir is the way to do moderation. It can exchange banlists with other
servers, and drop reports that people send into its moderation room so that
moderators can act upon them.
Start by creating a room where moderators can give Draupnir commands. This
room should not be encrypted. Then create a user for Draupnir, this user
should ideally be an admin user.
Once you've created the user, log in as this user, maybe set an avatar, join
the room you've created and then copy the access token. This token is used by
the Draupnir software to login.
After that, close the window or client, but
do not logout. If you logout, the token will be invalidated.
Make sure you have the right npm, Node.js, yarn and what-have-you ([see
Draupnir's documentation](https://the-draupnir-project.github.io/draupnir-documentation/bot/setup_debian))
and prepare the software:
```
mkdir /opt
cd /opt
git clone https://github.com/the-draupnir-project/Draupnir.git
cd Draupnir
git fetch --tags
mkdir datastorage
yarn global add corepack
useradd -m draupnir
chown -R draupnir:draupnir
```
Now, "compile" the stuff as user draupnir:
```
sudo -u draupnir bash -c "install yarn"
sudo -u draupnir bash -c "yarn build"
```
When this is completed successfully, it's time to configure Draupnir.
# Configuration
Under `config` you'll find the default configuration file, `default.yaml`.
Copy it to `production.yaml` and change what you must.
| +---- | +---- | +---- |
| `homeserverUrl` | `http://localhost:8008` | Where to communicate with Synapse |
| ` rawHomeserverUrl` | `https://vm02199.example.com` | Same as `server_name` |
| `accessToken` | <access token> | Copy from login session |
| `password` | <password> | Password for the account |
| `dataPath` | `/opt/Draupnir/datastorage` | Storage |
| `managementRoom` | <room ID> | Room where moderators command Draupnir |
This should give a working bot.