-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbase-config.yaml
More file actions
160 lines (131 loc) · 7.3 KB
/
base-config.yaml
File metadata and controls
160 lines (131 loc) · 7.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# =============================================================================
# base-config.yaml — Standardkonfiguration (v2.6.0)
# =============================================================================
#
# Diese Standardwerte können nach dem Erstellen einer Instanz im Maubot-Dashboard
# angepasst werden. Alle Verzeichnispfade können absolut (/data/lists/) oder relativ
# zum Maubot-Arbeitsverzeichnis (in Docker üblicherweise /data/) angegeben werden.
#
# HOSTFILE-FORMAT (wird in allen .txt-Dateien in den Listenverzeichnissen akzeptiert):
#
# # Ganzzeiliger Kommentar → wird ignoriert
# (leere Zeile) → wird ignoriert
# 0.0.0.0 bad-domain.com → Domain: "bad-domain.com"
# 127.0.0.1 bad-domain.com → Domain: "bad-domain.com"
# bad-domain.com → Domain: "bad-domain.com"
# bad-domain.com # Inline-Notiz → Domain: "bad-domain.com"
#
# =============================================================================
# -----------------------------------------------------------------------------
# LISTENVERZEICHNISSE
# -----------------------------------------------------------------------------
# Der Bot streamt jede Datei beim Start durch einen Generator — keine vollständige
# Dateieinlesung in den RAM vor der Deduplizierung.
blacklist_dir: /data/blacklists/
# Verzeichnis mit den Whitelist-.txt-Dateien.
# Whitelisted Domains werden durchgelassen (keine Löschung) und erhalten optional
# eine Markdown-Linkvorschau. Die Whitelist wird ZUERST in der Routing-Logik geprüft.
whitelist_dir: /data/whitelists/
# -----------------------------------------------------------------------------
# MODERATIONSRAUM
# -----------------------------------------------------------------------------
# Vollständige Matrix-Raum-ID des Moderations-/Admin-Raums.
# Unbekannte URLs werden hierhin als Überprüfungsanfragen mit Emoji-Reaktionsknöpfen
# weitergeleitet. Der Bot muss Mitglied dieses Raums mit mindestens
# "Nachrichten senden"-Rechten sein.
mod_room_id: "ROOM_ID"
# -----------------------------------------------------------------------------
# BEFEHLSRÄUME
# -----------------------------------------------------------------------------
# Liste von Raum-IDs oder Raumaliasen, in denen der Bot auf Befehle reagiert.
# Leer lassen [] = keine Einschränkung (alle Räume).
# Der Moderationsraum (mod_room_id) und Direktnachrichten (DMs) sind immer erlaubt,
# unabhängig von dieser Liste.
# Beispiel: ["!abc123:example.com", "#mein-raum:example.com"]
command_rooms: []
# -----------------------------------------------------------------------------
# MODERATIONSBERECHTIGUNGEN
# -----------------------------------------------------------------------------
# Ein Nutzer kann Moderationsaktionen durchführen, wenn EINE der folgenden
# Bedingungen erfüllt ist.
mod_permissions:
# Mindest-Matrix-Powerlevel im Mod-Raum, der für Genehmigen/Sperren benötigt wird.
# 50 = Standard-"Moderator"-Level. 100 = Nur Raum-Admin. 0 = Jeder.
min_power_level: 50
# Explizite Matrix-Nutzer-IDs, die immer moderieren dürfen,
# unabhängig vom Powerlevel (nützlich für serverübergreifende Betreiber).
# Beispiel: ["@alice:matrix.org", "@bob:example.com"]
allowed_users: []
# -----------------------------------------------------------------------------
# LINKVORSCHAUEN
# -----------------------------------------------------------------------------
# Wenn true, ruft der Bot Open-Graph-Metadaten für whitelisted URLs ab und
# postet eine Nur-Markdown-Vorschaubenachrichtigung (verwendet **Fettdruck** und
# > Blockzitate — kein HTML, kompatibel mit allen Matrix-Clients).
enable_link_previews: true
# HTTP-Timeout (Sekunden) für die Linkvorschau-Abrufanfrage.
link_preview_timeout: 5
# -----------------------------------------------------------------------------
# LEISTUNGSOPTIMIERUNG
# -----------------------------------------------------------------------------
# Maximale Anzahl der Worker-Threads für das parallele Datei-Parsen.
# Jede große Datei wird in eigenem Thread geparst. Standard null = os.cpu_count().
# Auf speicherkonstrained Servern reduzieren (jeder Thread puffert ~100 MB).
loader_threads: null
# Minimale Domain-String-Länge beim Parsen (kurze Einträge/Müll überspringen).
min_domain_length: 4
# Maximale Domain-String-Länge beim Parsen (übergroße Müllzeilen überspringen).
max_domain_length: 253
# -----------------------------------------------------------------------------
# SPAM-SCHUTZ
# -----------------------------------------------------------------------------
# Warn-Cooldown (Sekunden): Wie lange der Bot nach einer Warnmeldung wartet, bevor er
# für denselben Nutzer eine neue Warnung im Raum postet. Nachrichten werden weiterhin
# sofort gelöscht — nur die Benachrichtigung wird gedrosselt, um Notification Flooding
# zu vermeiden.
warn_cooldown: 60
# Automatisches Stummschalten aktivieren (true/false).
# Wenn true, wird ein Nutzer stummgeschaltet (Powerlevel -1), sobald er den
# mute_threshold innerhalb des konfigurierten mute_window_minutes-Fensters erreicht.
#
# Hinweis: Der Bot benötigt ein höheres Powerlevel als der Zielnutzer
# (üblicherweise 50 oder 100), um dessen Berechtigungen ändern zu können.
mute_enabled: false
# Anzahl der Verstöße innerhalb des Beobachtungsfensters, die eine automatische
# Stummschaltung auslösen.
mute_threshold: 5
# Beobachtungsfenster für Verstöße (Minuten).
# Innerhalb dieses Zeitraums werden Verstöße eines Nutzers gezählt.
# Standard: 5 Minuten.
mute_window_minutes: 5
# Dauer der automatischen Stummschaltung (Minuten). 0 = unbegrenzt.
# Ein Hintergrund-Task hebt die Stummschaltung automatisch nach Ablauf
# dieser Zeit auf, indem er das Powerlevel des Nutzers zurücksetzt.
# Standard: 60 Minuten.
mute_duration_minutes: 60
# Manuelle !mute- und !unmute-Befehle aktivieren (true/false).
# Auf false setzen, wenn mehrere Moderations-Bots gleichzeitig in einem Raum
# aktiv sind — verhindert, dass alle Bots auf denselben !mute-Befehl reagieren.
# Hinweis: Betrifft NUR die manuellen Befehle !mute / !unmute, NICHT das
# automatische Stummschalten via mute_enabled / mute_threshold.
mute_commands_enabled: true
# Globales Stummschalten aktivieren (true/false).
# Wenn true, wird ein Nutzer bei einem Verstoß oder einem !mute-Befehl in ALLEN
# Räumen stummgeschaltet, in denen der Bot aktiv ist und ein höheres Powerlevel
# als der Zielnutzer hat. Bei false wird nur der Raum des Verstoßes / Befehls
# verwendet.
global_mute: true
# -----------------------------------------------------------------------------
# DATENSCHUTZ / DSGVO (Privacy by Design)
# -----------------------------------------------------------------------------
# PFLICHTFELD: Zufälliger Geheimschlüssel für SHA-256-Nutzer-Hashing.
# Matrix-IDs werden NIEMALS im Klartext gespeichert — nur als SHA-256-Hash mit diesem Salt.
#
# ⛔ ACHTUNG: Der Bot verweigert den Start solange dieser Wert nicht geändert wurde!
# Ein Start mit dem Standardwert würde die Datenbank korrumpieren —
# ein späterer Salt-Wechsel macht bestehende Hashes ungültig (Mute-Verlauf verloren).
#
# WICHTIG: Diesen Wert nach der Erstkonfiguration NICHT mehr ändern.
#
# Generierung: python3 -c "import secrets; print(secrets.token_hex(32))"
secret_salt: "CHANGE_ME_use_python3_secrets_token_hex_32"