Mjolnir是一款针对Matrix协议的综合审核工具,旨在保护Matrix服务器和社区免受***行为侵扰。它不仅提供服务器级别的保护,还能帮助社区在不使用个人账号的情况下有效管理房间,同时支持作为Synapse模块将审核规则应用于整个家庭服务器(homeserver)。
Mjolnir已发布至Docker Hub:matrixdotorg/mjolnir,也可自行构建镜像。
bash# 克隆仓库 git clone [***] cd mjolnir # 创建并编辑配置文件(不建议修改数据路径) mkdir -p /etc/mjolnir/config cp config/default.yaml /etc/mjolnir/config/production.yaml nano /etc/mjolnir/config/production.yaml # 编辑配置 # 启动容器 docker run --rm -it -v /etc/mjolnir:/data matrixdotorg/mjolnir:latest
需依赖yarn和Node 14。
bash# 克隆仓库 git clone [***] cd mjolnir # 安装依赖并构建 yarn install yarn build # 创建并编辑配置文件(建议修改数据路径) cp config/default.yaml config/development.yaml nano config/development.yaml # 编辑配置 # 启动 node lib/index.js
机器人启动后,执行以下命令完成初始设置:
!mjolnir list create COC code-of-conduct-ban-listCOC、别名为#code-of-conduct-ban-list:example.org的封禁列表,自动邀请您加入管理房间)!mjolnir default COC!mjolnir help查看所有可用命令。要求:Synapse 1.53.0及以上版本。
该模块可将Mjolnir的审核规则应用于整个家庭服务器,主要用于阻止来自不受信任家庭服务器/用户的邀请,需手动配置。
安装模块:
将模块安装到Synapse的Python环境中:
bashpip install -e "git+[***]"
配置homeserver.yaml:
在配置文件中添加模块配置,示例如下:
yamlmodules: - module: mjolnir.Module config: # 阻止封禁列表中的服务器/用户发送邀请(默认true) block_invites: true # 将封禁列表中的服务器/用户发送的消息标记为垃圾信息(默认false,标记后消息显示为空) block_messages: false # 通过过滤用户ID和显示名称,从用户目录搜索中移除封禁列表中的用户(默认false) block_usernames: false # 需遵循的封禁列表房间ID(仅支持房间ID,不支持别名或永久链接;服务器需已加入这些房间) ban_lists: - "!roomid:example.org" # 消息长度限制(可选) message_max_length: # 限制消息体字符数(默认无限制,超出Synapse规范的事件大小限制除外) # threshold: 510 # 示例:限制为510字符 # 指定仅在某些房间应用长度限制(默认所有房间) # rooms: # - "!vMvyOCeCxHsggkmALd:localhost:9999" # 对来自远程服务器的消息也应用长度限制(默认仅限制本服务器消息) # remote_servers: true
重启Synapse:
修改配置后需重启Synapse使模块生效。
ban_lists中指定的房间,模块不会自动加入房间。Mjolnir 1.2及以上版本支持将滥用报告替换为房间内可读格式,无需通过管理员API获取数据,需以下两步配置:
配置Mjolnir:
在Mjolnir配置文件(通常为/etc/mjolnir/config/production.yaml)中,复制default.yaml中的web部分(1.20版本新增),并启用web和abuseReporting:
yamlweb: enabled: true port: 9000 # 配置端口 host: 0.0.0.0 # 建议设为localhost仅允许反向代理访问 abuseReporting: enabled: true
设置反向代理:
将请求重定向至Mjolnir的API端点。以Nginx为例,配置如下(参考test/nginx.conf):
nginxlocation ~ ^/_matrix/client/r0/rooms/([^/]*)/report/(.*)$ { proxy_pass [***] # host为Mjolnir主机,port为配置的web端口 }
host: localhost)。若对安全性有顾虑,可禁用此功能。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429