|
2 days ago | |
---|---|---|
scripts | 6 months ago | |
src | 2 days ago | |
.dockerignore | 2 weeks ago | |
.envrc | 2 days ago | |
.gitignore | 2 days ago | |
CONTRIBUTING.md | 2 weeks ago | |
Cargo.lock | 2 weeks ago | |
Cargo.toml | 2 weeks ago | |
Containerfile | 1 week ago | |
LICENSE | 1 month ago | |
LICENSE-fafol.md | 1 month ago | |
LICENSE-hippo.md | 1 month ago | |
README.md | 2 weeks ago | |
build.rs | 2 weeks ago | |
flake.lock | 2 weeks ago | |
flake.nix | 2 weeks ago | |
shell.nix | 2 days ago | |
test-cmds | 2 weeks ago |
README.md
Emily
Emily is a cute little matrix bot that helps with moderation <3
Purpose
Emily is primarily being developed to aid in the running and moderation of The Apothecary matrix community and home server. We focusing features that we need or find useful. If you would like to use Emily for yourself you are welcome to, under the terms of the license. We would love feedback and contributions, however we will prioritize our own needs.
Features
Emily has a collection of tools that can help with managing and moderating a matrix server.
Moderator notification
If a user type !mods [message]
in any room Emily is in, she will do an @room
ping in the control
room to alert moderator that some moderation action has been requested. She will also include useful
context information in her message.
Tracking media redacted by moderators
If a moderator redacts a piece of media (not posted by them) Emily will post a notification including a link to that media in the control room. This can be useful for other moderators to see later. It also preserves the mxc url of the media which an admin can use to delete that media from your home server's media repo.
Log messages for moderation
Emily can create a text log of recent messages in a room for moderation records
Redact messages
Emily can redact recent messages sent by a user in a room while also create a text log of those messages and surrounding messages for moderation records.
Room templates
Emily can create new rooms from a template room or apply a template room to an existing room. This makes managing large numbers of similar rooms easier. Emily will apply the following to the room
- The title given in the command
- The description of the template room with any template variables filled in
- The room avatar, power levels, join rule, history visibility, and guest access of the template room
- A canonical alias set to a sluggied version of the name
Setup
Before using Emily you must create a user account for her on your home server. You must also create a room, called the control room, from which you will issue commands to Emily. She will only respond to commands entered in this room.
Emily is configure using environment variables. The follow environment variables must be set:
MX_USER
- The user name Emily should login in as (ex.@emily:the-apothecary.club
).MX_ROOM
- The room ID of the control room (ex.!JmUZDmdizioytNxcBx:the-apothecary.club
). Note this must be a room id (starts with a!
) and not a room alias (starts with a#
).STATE_STORE
- Path on your local file system where Emily should keep her encryption state store.MX_SESSION
- A json string representing Emily's login in session. See Login for how to get this value.
Login
The first time you use Emily you will need her to login in. To do this set the environment variable
listed above minus MX_SESSION
. Also set the environment variable MX_PASSWORD
to the password for
Emily's user account. Run Emily and she will print the MX_SESSION
value and exit. Set MX_SESSION
and unset MX_PASSWORD
to run Emily normally.
Install
Emily can be compiled from source or you can use our provided container image
codeberg.org/apothecary/mx-emily:latest
.
Contributing
See Contributing