||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|
Emily is a cute little matrix bot that helps with moderation <3
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.
Emily has a collection of tools that can help with managing and moderating a matrix server.
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
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.
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
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.
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.
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_PASSWORD to run Emily normally.
Emily can be compiled from source or you can use our provided container image