Overview of Draupnir Zero Touch Deployment
matrix-docker-ansible-deploy. It removes the need for manual management room creation and the complex setup steps typically required to get the appservice running.website·Indexed 29 days ago
https://the-draupnir-project.github.io/draupnir-documentationOpen community management infrastructure for Matrix, providing tools for room protection, spam detection, and user policy management. Includes API references for event spam checking and user join permissions, as well as documentation for the Matrix Protection Suite and Draupnir v3.0.0.
matrix-docker-ansible-deploy. It removes the need for manual management room creation and the complex setup steps typically required to get the appservice running.Draupnir uses a layered system to organize work, separating strategic design from tactical planning. The system is structured as follows: Problem → Bet → Solution → Increment → Task.
Design Tier (Strategic context):
Planning Tier (Execution):
takedown recommendation, the protection instructs the homeserver to shut down the room, forcing all local participants to leave, purging history from the database, and blocking the room. This protection requires Draupnir v2.3.0 or above. As of v2.4.1, it no longer depends on synapse-http-antispam, though installing that module is still recommended to block invitations preemptively.synapse-http-antispam module.Draupnir is a community management service designed for Matrix communities with public rooms. Its primary goals are to:
Matrix uses a power level system instead of traditional roles to manage permissions. A power level is a numeric value (typically 0 to 100). A user can exercise a specific permission if their power level is equal to or greater than the power level required for that permission.
By default, the following standard roles are defined:
@room notifications.synapse-http-antispam module allows Draupnir to make decisions about events received by a Synapse homeserver, replacing the legacy Mjolnir antispam module. This requires Draupnir v2.3.0 or above. If using matrix-docker-ansible-deploy, refer to the playbook documentation; otherwise, follow the module's README.Bets are provisional hypotheses about high-level objectives. They encapsulate the value of pursuing a goal and the maximum cost the project is willing to risk before the effort is considered a failure, preventing sunk-cost fallacy.
Key Components of a Bet:
matrix-bot-sdk for its client library. Because the /sync response's timeline provides events in the order they are received by the server rather than their mainline order in the DAG, Draupnir cannot rely on /sync alone for an accurate representation of room state. To ensure consistency, Draupnir re-requests the entire state of a policy list every time it receives a state event in that list. This prevents the bot from acting on stale events resulting from DAG forks that have converged.