{"id":13783467,"url":"https://github.com/matrix-org/mjolnir","last_synced_at":"2025-04-08T11:08:11.668Z","repository":{"id":37431776,"uuid":"210974077","full_name":"matrix-org/mjolnir","owner":"matrix-org","description":"A moderation tool for Matrix","archived":false,"fork":false,"pushed_at":"2024-10-23T17:35:15.000Z","size":2944,"stargazers_count":326,"open_issues_count":134,"forks_count":55,"subscribers_count":28,"default_branch":"main","last_synced_at":"2024-10-23T23:08:47.764Z","etag":null,"topics":["acls","admin","ban","hacktoberfest","matrix","mjolnir","moderation","rooms"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matrix-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-26T01:36:11.000Z","updated_at":"2024-10-23T16:46:21.000Z","dependencies_parsed_at":"2024-01-24T06:31:23.652Z","dependency_job_id":"daf65bd0-0415-4150-ae03-dd250d6cc5f3","html_url":"https://github.com/matrix-org/mjolnir","commit_stats":null,"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fmjolnir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fmjolnir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fmjolnir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matrix-org%2Fmjolnir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matrix-org","download_url":"https://codeload.github.com/matrix-org/mjolnir/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247829491,"owners_count":21002995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acls","admin","ban","hacktoberfest","matrix","mjolnir","moderation","rooms"],"created_at":"2024-08-03T19:00:22.043Z","updated_at":"2025-04-08T11:08:11.646Z","avatar_url":"https://github.com/matrix-org.png","language":"TypeScript","funding_links":[],"categories":["Room administration","[💾 sysadmin-devops](https://github.com/stars/ketsapiwiq/lists/sysadmin-devops)","TypeScript","Bots"],"sub_categories":["Federation data","Moderation"],"readme":"# mjolnir\n\nA moderation tool for Matrix. Visit [#mjolnir:matrix.org](https://matrix.to/#/#mjolnir:matrix.org)\nfor more information.\n\n## Features\n\nAs an all-in-one moderation tool, it can protect your server from malicious invites, spam\nmessages, and whatever else you don't want. In addition to server-level protection, Mjolnir\nis great for communities wanting to protect their rooms without having to use their personal\naccounts for moderation.\n\nThe bot by default includes support for bans, redactions, anti-spam, server ACLs, room\ndirectory changes, room alias transfers, account deactivation, room shutdown, and more.\n\nA Synapse module is also available to apply the same rulesets the bot uses across an entire\nhomeserver.\n\n## Setting up\n\nSee the [setup documentation](docs/setup.md) for first-time setup documentation.\n\nSee the [configuration sample with documentation](config/default.yaml) for detailed information about Mjolnir's configuration.\n\nSee the [synapse module documentation](docs/synapse_module.md) for information on how to setup Mjolnir's accompanying Synapse Module.\n\n## Quickstart guide\n\nAfter your bot is up and running, you'll want to run a couple commands to get everything\nset up:\n\n1. `!mjolnir list create COC code-of-conduct-ban-list` - This will create a new ban list\n   with the shortcode `COC` and an alias of `#code-of-conduct-ban-list:example.org`. You\n   will be invited to the room it creates automatically where you can change settings such\n   as the visibility of the room.\n2. `!mjolnir default COC` - This sets the default ban list to the list we just created to\n   help with the ban commands later on.\n3. Review the [Moderator's Guide](https://github.com/matrix-org/mjolnir/blob/main/docs/moderators.md).\n4. Review `!mjolnir help` to see what else the bot can do.\n\n## Enabling readable abuse reports\n\nSince version 1.2, Mjölnir offers the ability to replace the Matrix endpoint used\nto report abuse and display it into a room, instead of requiring you to request\nthis data from an admin API.\n\nThis requires two configuration steps:\n\n1. In your Mjölnir configuration file, typically `/etc/mjolnir/config/production.yaml`, copy and paste the `web` section from `default.yaml`, if you don't have it yet (it appears with version 1.20) and set `enabled: true` for both `web` and\n`abuseReporting`.\n2. Setup a reverse proxy that will redirect requests from `^/_matrix/client/(r0|v3)/rooms/([^/]*)/report/(.*)$` to `http://host:port/api/1/report/$2/$3`, where `host` is the host where you run Mjölnir, and `port` is the port you configured in `production.yaml`. For an example nginx configuration, see `test/nginx.conf`. It's the confirmation we use during runtime testing.\n\n### Security note\n\nThis mechanism can extract some information from **unencrypted** rooms. We have\ntaken precautions to ensure that this cannot be abused: the only case in which\nthis feature will publish information from room *foo* is:\n\n1. If it is used by a member of room *foo*; AND\n2. If said member did witness the event; AND\n3. If the event was unencrypted; AND\n4. If the event was not redacted/removed/...\n\nEssentially, this is a more restricted variant of the Admin APIs available on\nhomeservers.\n\nHowever, if you are uncomfortable with this, please do not activate this feature.\nAlso, you should probably setup your `production.yaml` to ensure that the web\nserver can only receive requests from your reverse proxy (e.g. `localhost`).\n\n## Development\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrix-org%2Fmjolnir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatrix-org%2Fmjolnir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrix-org%2Fmjolnir/lists"}