Matrix Docker Ansible eploy
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

582 строки
31 KiB

  1. # SOME DESCRIPTIVE TITLE.
  2. # Copyright (C) 2018-2026, Slavi Pantaleev, Aine Etke, MDAD community members
  3. # This file is distributed under the same license as the matrix-docker-ansible-deploy package.
  4. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5. #
  6. #, fuzzy
  7. msgid ""
  8. msgstr ""
  9. "Project-Id-Version: matrix-docker-ansible-deploy \n"
  10. "Report-Msgid-Bugs-To: \n"
  11. "POT-Creation-Date: 2026-08-13 05:03+0000\n"
  12. "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13. "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14. "Language-Team: LANGUAGE <LL@li.org>\n"
  15. "MIME-Version: 1.0\n"
  16. "Content-Type: text/plain; charset=UTF-8\n"
  17. "Content-Transfer-Encoding: 8bit\n"
  18. #: ../../../docs/configuring-playbook-bot-meowlnir.md:7
  19. msgid "Setting up Meowlnir (optional)"
  20. msgstr ""
  21. #: ../../../docs/configuring-playbook-bot-meowlnir.md:9
  22. msgid "The playbook can install and configure the [Meowlnir](https://github.com/maunium/meowlnir) moderation bot for you."
  23. msgstr ""
  24. #: ../../../docs/configuring-playbook-bot-meowlnir.md:11
  25. msgid "See the project's [documentation](https://docs.mau.fi/meowlnir/) to learn what it does and why it might be useful to you."
  26. msgstr ""
  27. #: ../../../docs/configuring-playbook-bot-meowlnir.md:13
  28. msgid "Meowlnir is an alternative to [Draupnir](configuring-playbook-bot-draupnir.md) and [Mjolnir](configuring-playbook-bot-mjolnir.md). It speaks the same [policy list](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists) protocol, so it can subscribe to the same community ban lists, but it differs from them in a few ways that may matter to you:"
  29. msgstr ""
  30. #: ../../../docs/configuring-playbook-bot-meowlnir.md:15
  31. msgid "It runs as an **appservice** and hosts **multiple bots**, each with its own management room. They live in Meowlnir's database, not its configuration file, but you still [declare them in your `vars.yml` file](#declaring-bots)."
  32. msgstr ""
  33. #: ../../../docs/configuring-playbook-bot-meowlnir.md:16
  34. msgid "It can **override a policy coming from a list you do not control**, via unban policies combined with the ordering of your watched lists. See [Overriding a policy from someone else's list](#overriding-a-policy-from-someone-elses-list)."
  35. msgstr ""
  36. #: ../../../docs/configuring-playbook-bot-meowlnir.md:17
  37. msgid "It is written in Go and is optimized for Synapse, using its database and admin APIs directly."
  38. msgstr ""
  39. #: ../../../docs/configuring-playbook-bot-meowlnir.md:19
  40. msgid "Meowlnir and Draupnir can run side by side, but not usefully in the *same* room: whichever bot you are migrating away from still watches the same community lists, so it re-applies the very bans your unban policies remove. Migrate room by room. See [Trialling Meowlnir alongside another bot](#trialling-meowlnir-alongside-another-bot)."
  41. msgstr ""
  42. #: ../../../docs/configuring-playbook-bot-meowlnir.md:21
  43. msgid "Prerequisites"
  44. msgstr ""
  45. #: ../../../docs/configuring-playbook-bot-meowlnir.md:23
  46. msgid "Postgres"
  47. msgstr ""
  48. #: ../../../docs/configuring-playbook-bot-meowlnir.md:25
  49. msgid "Meowlnir stores its state in a Postgres database. The playbook creates one for you automatically when using the integrated Postgres server."
  50. msgstr ""
  51. #: ../../../docs/configuring-playbook-bot-meowlnir.md:27
  52. msgid "Adjusting DNS records"
  53. msgstr ""
  54. #: ../../../docs/configuring-playbook-bot-meowlnir.md:29
  55. msgid "**No DNS changes are necessary.** Meowlnir is reached by the homeserver over the container network, and the paths it optionally serves publicly (abuse reports and the policy server) are routed on your existing `matrix.example.com` domain."
  56. msgstr ""
  57. #: ../../../docs/configuring-playbook-bot-meowlnir.md:31
  58. msgid "Adjusting the playbook configuration"
  59. msgstr ""
  60. #: ../../../docs/configuring-playbook-bot-meowlnir.md:33
  61. msgid "To enable Meowlnir, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:"
  62. msgstr ""
  63. #: ../../../docs/configuring-playbook-bot-meowlnir.md:39
  64. msgid "Declaring bots"
  65. msgstr ""
  66. #: ../../../docs/configuring-playbook-bot-meowlnir.md:41
  67. msgid "That gets the service running, but Meowlnir does nothing until it has at least one bot. Declare the ones you want and the playbook creates them for you:"
  68. msgstr ""
  69. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  70. msgid "Field"
  71. msgstr ""
  72. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  73. msgid "Required"
  74. msgstr ""
  75. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  76. msgid "Notes"
  77. msgstr ""
  78. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  79. msgid "`username`"
  80. msgstr ""
  81. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  82. msgid "yes"
  83. msgstr ""
  84. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  85. msgid "The localpart of the bot's Matrix user. Awkward to change later, so choose it carefully."
  86. msgstr ""
  87. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  88. msgid "`displayname`"
  89. msgstr ""
  90. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  91. msgid "The name shown in rooms. Safe to change at any time."
  92. msgstr ""
  93. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  94. msgid "`avatar_url`"
  95. msgstr ""
  96. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  97. msgid "An `mxc://` URI, or `\"\"` for no avatar."
  98. msgstr ""
  99. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  100. msgid "`management_room_auto_create`"
  101. msgstr ""
  102. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  103. msgid "Whether the playbook creates the bot's management room. Mutually exclusive with a non-empty `management_rooms`."
  104. msgstr ""
  105. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  106. msgid "`management_rooms`"
  107. msgstr ""
  108. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  109. msgid "Rooms you have created yourself, `[]` when auto-creating. See [Supplying your own management room](#supplying-your-own-management-room)."
  110. msgstr ""
  111. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  112. msgid "`initial_managers`"
  113. msgstr ""
  114. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  115. msgid "no"
  116. msgstr ""
  117. #: ../../../docs/configuring-playbook-bot-meowlnir.md:0
  118. msgid "Who to invite to an auto-created room. Defaults to the instance-wide list below."
  119. msgstr ""
  120. #: ../../../docs/configuring-playbook-bot-meowlnir.md:67
  121. msgid "Usernames have to start with `meowlnir_` (the value of `matrix_bot_meowlnir_user_prefix`), so that bots fall inside the user namespace the homeserver lets Meowlnir operate."
  122. msgstr ""
  123. #: ../../../docs/configuring-playbook-bot-meowlnir.md:69
  124. msgid "Changing `displayname` or `avatar_url` and re-running updates the bot in place. The comparison is against Meowlnir's own record, so profile edits made directly from a Matrix client are not reverted."
  125. msgstr ""
  126. #: ../../../docs/configuring-playbook-bot-meowlnir.md:71
  127. msgid "Initial managers"
  128. msgstr ""
  129. #: ../../../docs/configuring-playbook-bot-meowlnir.md:73
  130. msgid "With `management_room_auto_create: true`, the playbook creates each bot's management room and invites its initial managers to it. You only need to accept the room invitation."
  131. msgstr ""
  132. #: ../../../docs/configuring-playbook-bot-meowlnir.md:75
  133. msgid "`matrix_admin` is a single playbook variable which affects all bridges and bots, so setting it is usually a better move than setting anything specific to this role — **if it is already configured in your `vars.yml` file, there is nothing to do here**. If neither `matrix_admin` nor `matrix_bot_meowlnir_initial_managers` are set, the playbook would tell you about it."
  134. msgstr ""
  135. #: ../../../docs/configuring-playbook-bot-meowlnir.md:77
  136. msgid "A per-bot `initial_managers` replaces the instance-wide list. Declaring it empty means nobody, which fails the run for a bot relying on `management_room_auto_create`."
  137. msgstr ""
  138. #: ../../../docs/configuring-playbook-bot-meowlnir.md:79
  139. msgid "The list is consulted only while the room is being created. Adding a name to it later invites nobody, because the room already exists — invite and promote further moderators from inside the room instead, as described in [Who can command a bot](#who-can-command-a-bot)."
  140. msgstr ""
  141. #: ../../../docs/configuring-playbook-bot-meowlnir.md:81
  142. msgid "Rooms the playbook creates"
  143. msgstr ""
  144. #: ../../../docs/configuring-playbook-bot-meowlnir.md:83
  145. msgid "The bot creates the room with the `trusted_private_chat` preset, which gives every invitee the standing to command it. This is an additional room creator on room versions supporting [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289) (like v12) and power level 100 on older room versions. Creator status cannot be revoked subsequently."
  146. msgstr ""
  147. #: ../../../docs/configuring-playbook-bot-meowlnir.md:85
  148. msgid "The room's encryption follows `matrix_bot_meowlnir_config_encryption_enable`, and its name and topic come from `matrix_bot_meowlnir_management_room_name` and `matrix_bot_meowlnir_management_room_topic`."
  149. msgstr ""
  150. #: ../../../docs/configuring-playbook-bot-meowlnir.md:87
  151. msgid "Supplying your own management room"
  152. msgstr ""
  153. #: ../../../docs/configuring-playbook-bot-meowlnir.md:89
  154. msgid "If you would rather own the room outright, create it yourself and declare it instead. The bot is then merely an administrator in a room you created:"
  155. msgstr ""
  156. #: ../../../docs/configuring-playbook-bot-meowlnir.md:102
  157. msgid "An empty, invite-only room is fine. The order matters, because **each step depends on the one before it**:"
  158. msgstr ""
  159. #: ../../../docs/configuring-playbook-bot-meowlnir.md:104
  160. msgid "Declare the room and run the playbook. Do not invite the bot beforehand."
  161. msgstr ""
  162. #: ../../../docs/configuring-playbook-bot-meowlnir.md:105
  163. msgid "The playbook creates the bot and tells Meowlnir about the room. Meowlnir would try to join right away, but will fail for invite-only rooms (a harmless error in the log)."
  164. msgstr ""
  165. #: ../../../docs/configuring-playbook-bot-meowlnir.md:106
  166. msgid "Invite the bot. It accepts the invitation, because the room is already marked as a management room for it."
  167. msgstr ""
  168. #: ../../../docs/configuring-playbook-bot-meowlnir.md:107
  169. msgid "Give it power level 50 or more (ideally 100), so that it can store its protected rooms and watched lists there."
  170. msgstr ""
  171. #: ../../../docs/configuring-playbook-bot-meowlnir.md:109
  172. msgid "Meowlnir supports several management rooms per bot, and `encrypted` is set per room. Marking a room encrypted only means something when [End-to-End Encryption support](#end-to-end-encryption-support) is switched on, which it is not by default."
  173. msgstr ""
  174. #: ../../../docs/configuring-playbook-bot-meowlnir.md:111
  175. msgid "Who can command a bot"
  176. msgstr ""
  177. #: ../../../docs/configuring-playbook-bot-meowlnir.md:113
  178. msgid "**Management room membership alone is not enough**, which is different from what [Draupnir](configuring-playbook-bot-draupnir.md) does, where everyone in the management room can issue commands."
  179. msgstr ""
  180. #: ../../../docs/configuring-playbook-bot-meowlnir.md:115
  181. msgid "Meowlnir decides who may drive a bot from power levels in its management room: anyone who can send the `fi.mau.meowlnir.watched_lists` state event (power level 50 by default), plus the room's creators."
  182. msgstr ""
  183. #: ../../../docs/configuring-playbook-bot-meowlnir.md:117
  184. msgid "Bots which are no longer declared"
  185. msgstr ""
  186. #: ../../../docs/configuring-playbook-bot-meowlnir.md:119
  187. msgid "The bot list (`matrix_bot_meowlnir_bots_custom`) is authoritative. Removing entries from there will make the playbook unregister them with the Meowlnir instance."
  188. msgstr ""
  189. #: ../../../docs/configuring-playbook-bot-meowlnir.md:121
  190. msgid "Removal only adjusts Meowlnir's own records. A removed bot's Matrix user remains activated and stays in the rooms it had joined. A removed management room leaves the room and the bot's membership in it intact - it's just that Meowlnir stops taking commands there."
  191. msgstr ""
  192. #: ../../../docs/configuring-playbook-bot-meowlnir.md:123
  193. msgid "Removal happens under the same `ensure-matrix-users-created` tag that creates bots. It's one Ansible tag for \"synchronizing the bots state\" (creation, changes, and removal)."
  194. msgstr ""
  195. #: ../../../docs/configuring-playbook-bot-meowlnir.md:125
  196. msgid "To turn removal off entirely, set `matrix_bot_meowlnir_bots_pruning_enabled: false`. As a safety measure, the playbook refuses to prune when *no* bots are declared at all; override that with `matrix_bot_meowlnir_bots_pruning_on_empty_roster_enabled: true`."
  197. msgstr ""
  198. #: ../../../docs/configuring-playbook-bot-meowlnir.md:127
  199. msgid "Trialling Meowlnir alongside another bot"
  200. msgstr ""
  201. #: ../../../docs/configuring-playbook-bot-meowlnir.md:129
  202. msgid "Meowlnir has a dry-run mode in which it does everything except take moderation actions:"
  203. msgstr ""
  204. #: ../../../docs/configuring-playbook-bot-meowlnir.md:136
  205. msgid "Dry run does not cover the [synapse-http-antispam](#enabling-synapse-http-antispam-support) integration. It suppresses actions Meowlnir takes itself (bans, server ACLs, rejecting pending invites), but the verdicts it hands back to Synapse still block invites and joins. Leave that integration off while trialling."
  206. msgstr ""
  207. #: ../../../docs/configuring-playbook-bot-meowlnir.md:138
  208. msgid "Do not expect dry run to preview what Meowlnir would do in rooms another policy-list bot already moderates. Meowlnir only acts on users who are *in* a room, and the other bot has already removed everyone its lists match, so the preview comes out empty. Dry run also skips the power level check described under [Protecting a room](#protecting-a-room), so it will not surface a permissions problem either."
  209. msgstr ""
  210. #: ../../../docs/configuring-playbook-bot-meowlnir.md:140
  211. msgid "Abuse reports"
  212. msgstr ""
  213. #: ../../../docs/configuring-playbook-bot-meowlnir.md:142
  214. msgid "Meowlnir can intercept the report endpoints of the client-server API, so that abuse reports are delivered to a management room. This requires integration with the reverse proxy in front of the homeserver, which the playbook sets up for you when using Traefik:"
  215. msgstr ""
  216. #: ../../../docs/configuring-playbook-bot-meowlnir.md:151
  217. msgid "Only the `v3` report endpoints are routed to Meowlnir. Requests to the legacy `r0` endpoints continue to reach the homeserver, because Meowlnir does not serve them."
  218. msgstr ""
  219. #: ../../../docs/configuring-playbook-bot-meowlnir.md:153
  220. msgid "Enabling synapse-http-antispam support"
  221. msgstr ""
  222. #: ../../../docs/configuring-playbook-bot-meowlnir.md:155
  223. msgid "Meowlnir can block invites and joins before they happen. This requires the [synapse-http-antispam](https://github.com/maunium/synapse-http-antispam) module, which the playbook can enable for you:"
  224. msgstr ""
  225. #: ../../../docs/configuring-playbook-bot-meowlnir.md:165
  226. msgid "The playbook wires the module up to a single consumer, so this cannot be enabled at the same time as `matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled`. The playbook fails the run if both are enabled."
  227. msgstr ""
  228. #: ../../../docs/configuring-playbook-bot-meowlnir.md:167
  229. msgid "With the module in place, you can also block invitations to specific users outright, which is useful for accounts that attract spam:"
  230. msgstr ""
  231. #: ../../../docs/configuring-playbook-bot-meowlnir.md:174
  232. msgid "Such an invitation can still be let through case by case with the `!allow-invite` command."
  233. msgstr ""
  234. #: ../../../docs/configuring-playbook-bot-meowlnir.md:176
  235. msgid "End-to-End Encryption support"
  236. msgstr ""
  237. #: ../../../docs/configuring-playbook-bot-meowlnir.md:178
  238. msgid "To let Meowlnir's bots participate in encrypted rooms:"
  239. msgstr ""
  240. #: ../../../docs/configuring-playbook-bot-meowlnir.md:184
  241. msgid "When using Synapse, the playbook turns on the experimental features this depends on (`msc2409_to_device_messages_enabled` and `msc3202_transaction_extensions`) for you."
  242. msgstr ""
  243. #: ../../../docs/configuring-playbook-bot-meowlnir.md:186
  244. msgid "Policy server (MSC4284)"
  245. msgstr ""
  246. #: ../../../docs/configuring-playbook-bot-meowlnir.md:188
  247. msgid "Meowlnir can act as a [policy server](https://github.com/matrix-org/matrix-spec-proposals/pull/4284), letting rooms ask it to vet events before they are accepted:"
  248. msgstr ""
  249. #: ../../../docs/configuring-playbook-bot-meowlnir.md:194
  250. msgid "This exposes `/_matrix/policy` on your Matrix federation endpoint, so that other servers participating in a room can reach it."
  251. msgstr ""
  252. #: ../../../docs/configuring-playbook-bot-meowlnir.md:196
  253. msgid "That only stands the policy server up, though — no room is put behind it until you say so from the management room:"
  254. msgstr ""
  255. #: ../../../docs/configuring-playbook-bot-meowlnir.md:202
  256. msgid "Given no room, `enable` applies to every protected room. Rooms which are not protected are skipped, with `Skipped ... as it is not a protected room`, so [protect a room](#protecting-a-room) before enabling it here. `!policyserver` on its own reports whether the policy server is available and prints its public key, and `!policyserver disable` reverses the change."
  257. msgstr ""
  258. #: ../../../docs/configuring-playbook-bot-meowlnir.md:204
  259. msgid "The playbook derives a stable signing key for you from `matrix_homeserver_generic_secret_key`. If you would rather use an independently generated one, produce it with the command below and set it as `matrix_bot_meowlnir_config_policy_server_signing_key`:"
  260. msgstr ""
  261. #: ../../../docs/configuring-playbook-bot-meowlnir.md:210
  262. msgid "Synapse admin API access (optional)"
  263. msgstr ""
  264. #: ../../../docs/configuring-playbook-bot-meowlnir.md:212
  265. msgid "A few of Meowlnir's features go through Synapse's admin API, not the client-server API — suspending or deactivating users, and deleting rooms during a takedown. Those calls require the caller to be a Synapse **server admin**, which bots are not by default, so they come back as `M_FORBIDDEN` (\"You are not a server admin\"). Nothing else is affected: bans, server ACLs, protecting rooms and watching policy lists all go through the client-server API, where a sufficient power level is the only requirement."
  266. msgstr ""
  267. #: ../../../docs/configuring-playbook-bot-meowlnir.md:214
  268. msgid "To grant that access, point each bot at a token belonging to a server admin:"
  269. msgstr ""
  270. #: ../../../docs/configuring-playbook-bot-meowlnir.md:221
  271. msgid "The key is the bot the token is used for; the token itself belongs to an administrator account, not to the bot."
  272. msgstr ""
  273. #: ../../../docs/configuring-playbook-bot-meowlnir.md:223
  274. msgid "If you have more than one management room, note that room bans are only processed in the one named by `matrix_bot_meowlnir_config_meowlnir_room_ban_room`, and ignored elsewhere."
  275. msgstr ""
  276. #: ../../../docs/configuring-playbook-bot-meowlnir.md:225
  277. msgid "Where the token comes from depends on how your homeserver authenticates. Ordinarily you [obtain an access token](obtaining-access-tokens.md) for an account which is a Synapse server admin. When [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) is enabled, Synapse no longer decides who is an admin, so the token has to be issued by MAS with admin privileges:"
  278. msgstr ""
  279. #: ../../../docs/configuring-playbook-bot-meowlnir.md:231
  280. msgid "Note that bot users are created by the appservice and are not known to Matrix Authentication Service, so the token cannot be issued for the bot itself — use an administrator account."
  281. msgstr ""
  282. #: ../../../docs/configuring-playbook-bot-meowlnir.md:233
  283. msgid "Access to the Synapse database (optional)"
  284. msgstr ""
  285. #: ../../../docs/configuring-playbook-bot-meowlnir.md:235
  286. msgid "Some room takedown features rely on Meowlnir reading room IDs directly from the Synapse database. Upstream expects a user with read-only permissions, which the playbook does not create. Enabling the integration below hands Meowlnir the same credentials Synapse itself uses, which also grant write access:"
  287. msgstr ""
  288. #: ../../../docs/configuring-playbook-bot-meowlnir.md:241
  289. msgid "If you would rather not do that, create a read-only Postgres user yourself and point Meowlnir at it with `matrix_bot_meowlnir_synapse_database_uri`."
  290. msgstr ""
  291. #: ../../../docs/configuring-playbook-bot-meowlnir.md:243
  292. msgid "Adopting an existing Meowlnir installation"
  293. msgstr ""
  294. #: ../../../docs/configuring-playbook-bot-meowlnir.md:245
  295. msgid "If you already run Meowlnir outside the playbook and want to bring it under this role, two things need attention before the first run."
  296. msgstr ""
  297. #: ../../../docs/configuring-playbook-bot-meowlnir.md:247
  298. msgid "Your bots exist in Meowlnir's database but not in your `vars.yml` file, and [pruning](#bots-which-are-no-longer-declared) is on by default, so the first run would remove them. Declare them in `matrix_bot_meowlnir_bots_custom` — with `management_room_auto_create: false` and their existing rooms under `management_rooms` — or set `matrix_bot_meowlnir_bots_pruning_enabled: false`."
  299. msgstr ""
  300. #: ../../../docs/configuring-playbook-bot-meowlnir.md:249
  301. msgid "If the installation uses encryption, also copy the `pickle_key` from its old configuration file into `matrix_bot_meowlnir_config_encryption_pickle_key`. The crypto store cannot be read with a different key than it was written with, so leaving the playbook's default in place costs your bots their existing encryption sessions."
  302. msgstr ""
  303. #: ../../../docs/configuring-playbook-bot-meowlnir.md:251
  304. msgid "Extending the configuration"
  305. msgstr ""
  306. #: ../../../docs/configuring-playbook-bot-meowlnir.md:253
  307. msgid "There are some additional things you may wish to configure about the bot."
  308. msgstr ""
  309. #: ../../../docs/configuring-playbook-bot-meowlnir.md:255
  310. msgid "Take a look at:"
  311. msgstr ""
  312. #: ../../../docs/configuring-playbook-bot-meowlnir.md:257
  313. msgid "`roles/custom/matrix-bot-meowlnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_meowlnir_configuration_extension_yaml` variable"
  314. msgstr ""
  315. #: ../../../docs/configuring-playbook-bot-meowlnir.md:260
  316. msgid "Do not set any of Meowlnir's secrets to the literal value `generate`. Meowlnir re-runs its configuration upgrader on every start, so a `generate` placeholder would produce a brand new secret on every restart. The playbook derives stable values for you, and fails the run if it finds a `generate` placeholder."
  317. msgstr ""
  318. #: ../../../docs/configuring-playbook-bot-meowlnir.md:262
  319. msgid "Installing"
  320. msgstr ""
  321. #: ../../../docs/configuring-playbook-bot-meowlnir.md:264
  322. msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
  323. msgstr ""
  324. #: ../../../docs/configuring-playbook-bot-meowlnir.md:270
  325. msgid "With `management_room_auto_create`, you then have an invitation waiting for you — accept it and start sending commands. If you supplied the management room yourself, carry on from step 3 of [Supplying your own management room](#supplying-your-own-management-room): invite the bot, then give it power level 50 or more."
  326. msgstr ""
  327. #: ../../../docs/configuring-playbook-bot-meowlnir.md:272
  328. msgid "**Notes**:"
  329. msgstr ""
  330. #: ../../../docs/configuring-playbook-bot-meowlnir.md:274
  331. msgid "The `ensure-matrix-users-created` tag is what creates the bots declared in `matrix_bot_meowlnir_bots_custom`, registers their management rooms, and removes the ones you no longer declare. It deliberately does not run as part of `setup-all`, so that installing onto a server whose database you are about to restore from a backup does not write anything."
  332. msgstr ""
  333. #: ../../../docs/configuring-playbook-bot-meowlnir.md:276
  334. msgid "Re-running is safe and idempotent, so adding a bot later is a matter of extending the list and running the same command again."
  335. msgstr ""
  336. #: ../../../docs/configuring-playbook-bot-meowlnir.md:278
  337. msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
  338. msgstr ""
  339. #: ../../../docs/configuring-playbook-bot-meowlnir.md:280
  340. msgid "Usage"
  341. msgstr ""
  342. #: ../../../docs/configuring-playbook-bot-meowlnir.md:282
  343. msgid "You can refer to the upstream [documentation](https://docs.mau.fi/meowlnir/) for a more detailed usage guide."
  344. msgstr ""
  345. #: ../../../docs/configuring-playbook-bot-meowlnir.md:284
  346. msgid "Below is a **non-exhaustive quick-start guide** for the impatient."
  347. msgstr ""
  348. #: ../../../docs/configuring-playbook-bot-meowlnir.md:286
  349. msgid "Inspecting and driving Meowlnir directly"
  350. msgstr ""
  351. #: ../../../docs/configuring-playbook-bot-meowlnir.md:288
  352. msgid "The playbook drives Meowlnir's management API for you based on `matrix_bot_meowlnir_bots_custom`, which is the recommended way. For anything it does not cover, helper scripts are installed under `/matrix/meowlnir/bin`, which find the management secret and reach the API inside the container:"
  353. msgstr ""
  354. #: ../../../docs/configuring-playbook-bot-meowlnir.md:301
  355. msgid "`meowlnir-create-management-room` prints the new room's ID, which you then register with `meowlnir-api PUT /_meowlnir/v1/management_room/<room ID>`."
  356. msgstr ""
  357. #: ../../../docs/configuring-playbook-bot-meowlnir.md:303
  358. msgid "See the upstream [bot creation documentation](https://docs.mau.fi/meowlnir/bot-create.html) for the full set of endpoints. Bear in mind that bots you create this way are not declared in your `vars.yml` file, so the next playbook run will remove them again (see [Bots which are no longer declared](#bots-which-are-no-longer-declared))."
  359. msgstr ""
  360. #: ../../../docs/configuring-playbook-bot-meowlnir.md:305
  361. msgid "If you have enabled encryption, each bot also needs verifying once. That step is left manual because it returns a recovery key you need to store somewhere safe:"
  362. msgstr ""
  363. #: ../../../docs/configuring-playbook-bot-meowlnir.md:311
  364. msgid "Protecting a room"
  365. msgstr ""
  366. #: ../../../docs/configuring-playbook-bot-meowlnir.md:313
  367. msgid "Invite the bot to a room, give it a power level high enough to act (see below), and then tell it to protect the room by sending this command to its management room:"
  368. msgstr ""
  369. #: ../../../docs/configuring-playbook-bot-meowlnir.md:319
  370. msgid "Meowlnir refuses to protect a room unless its power level reaches that room's own `ban` and `redact` levels (50 in a default room). That is only enough for user bans, though: writing `m.room.server_acl` usually requires 100, and without it the server rules in your watched lists have no effect — which is most of what a list like [CME](https://matrix.to/#/%23community-moderation-effort-bl:neko.dev) carries. **Give the bot power level 100** unless you only care about user bans."
  371. msgstr ""
  372. #: ../../../docs/configuring-playbook-bot-meowlnir.md:321
  373. msgid "Set the power level *before* protecting the room. Meowlnir re-sends server ACLs when it starts and when a watched list changes, but not when its own power level goes up subsequently, so raising it afterwards leaves the room without ACLs until you restart the bot (`systemctl restart matrix-bot-meowlnir` or via the playbook's Ansible `start` tag)."
  374. msgstr ""
  375. #: ../../../docs/configuring-playbook-bot-meowlnir.md:323
  376. msgid "Subscribing to a policy list"
  377. msgstr ""
  378. #: ../../../docs/configuring-playbook-bot-meowlnir.md:325
  379. msgid "Policy lists are maintained in Matrix rooms. Popular public ones are:"
  380. msgstr ""
  381. #: ../../../docs/configuring-playbook-bot-meowlnir.md:327
  382. msgid "`#community-moderation-effort-bl:neko.dev`"
  383. msgstr ""
  384. #: ../../../docs/configuring-playbook-bot-meowlnir.md:328
  385. msgid "`#huginn-muninn-active-threats:feline.support`"
  386. msgstr ""
  387. #: ../../../docs/configuring-playbook-bot-meowlnir.md:330
  388. msgid "Subscribe to one by sending the following command to the management room:"
  389. msgstr ""
  390. #: ../../../docs/configuring-playbook-bot-meowlnir.md:336
  391. msgid "The last argument is a shortcode, which you use to refer to the list in later commands."
  392. msgstr ""
  393. #: ../../../docs/configuring-playbook-bot-meowlnir.md:338
  394. msgid "Overriding a policy from someone else's list"
  395. msgstr ""
  396. #: ../../../docs/configuring-playbook-bot-meowlnir.md:340
  397. msgid "This is the main capability Meowlnir has that Draupnir does not."
  398. msgstr ""
  399. #: ../../../docs/configuring-playbook-bot-meowlnir.md:342
  400. msgid "When several watched lists carry a policy for the same user, **the first match wins**, and \"first\" means the order in which the lists are watched. So to be able to override a community list's ban, your own list has to come before it."
  401. msgstr ""
  402. #: ../../../docs/configuring-playbook-bot-meowlnir.md:344
  403. msgid "`!lists subscribe` appends, which makes subscription order the precedence order. Subscribe to your own list first, and to community lists afterwards:"
  404. msgstr ""
  405. #: ../../../docs/configuring-playbook-bot-meowlnir.md:352
  406. msgid "If you have already subscribed in the wrong order, fixing it means editing the `fi.mau.meowlnir.watched_lists` state event in the management room by hand. Newer Meowlnir releases (than `v0.2606.0`) add `!lists subscribe … --insert-before <shortcode>`, which will make reordering a single command."
  407. msgstr ""
  408. #: ../../../docs/configuring-playbook-bot-meowlnir.md:354
  409. msgid "You can then publish an unban policy into your own list, which takes precedence over the community list's ban:"
  410. msgstr ""
  411. #: ../../../docs/configuring-playbook-bot-meowlnir.md:361
  412. msgid "Unlike `!ban`, the `!add-unban` command does not treat its reason as a trailing argument, so a reason containing spaces is discarded. Use a single word (or hyphenate) until that is fixed upstream."
  413. msgstr ""
  414. #: ../../../docs/configuring-playbook-bot-meowlnir.md:364
  415. msgid "An unban policy stops a ban from being **re-applied**; it does not undo one that is already in place unless Meowlnir applied it itself and still has it on record. A ban placed by a human moderator, or by the Draupnir or Mjolnir you are migrating away from, stays. Unban such a user once by hand — from then on the policy keeps them unbanned, while you remain subscribed to the list that banned them."
  416. msgstr ""
  417. #: ../../../docs/configuring-playbook-bot-meowlnir.md:366
  418. msgid "Use `!match @alice:example.com` to see which policies currently apply to a user and which list each came from."
  419. msgstr ""
  420. #: ../../../docs/configuring-playbook-bot-meowlnir.md:369
  421. msgid "Unban policies use a Meowlnir-specific recommendation (`fi.mau.meowlnir.unban`) which is not part of the Matrix specification. If you publish your policy list for other people to subscribe to, subscribers running Draupnir or Mjolnir will ignore your unban policies."
  422. msgstr ""
  423. #: ../../../docs/configuring-playbook-bot-meowlnir.md:371
  424. msgid "There is also a blunter, server-wide escape hatch for policies that are too wide to tolerate at all — `matrix_bot_meowlnir_config_meowlnir_hacky_rule_filter_custom`, which makes Meowlnir ignore any policy matching the listed entities."
  425. msgstr ""
  426. #: ../../../docs/configuring-playbook-bot-meowlnir.md:373
  427. msgid "Troubleshooting"
  428. msgstr ""
  429. #: ../../../docs/configuring-playbook-bot-meowlnir.md:375
  430. msgid "As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by running a command like `journalctl -fu matrix-bot-meowlnir`."
  431. msgstr ""
  432. #: ../../../docs/configuring-playbook-bot-meowlnir.md:377
  433. msgid "If bots appear to do nothing, check that they have an Administrator power level in the rooms they are meant to protect, and that the room has been added with `!rooms protect`."
  434. msgstr ""
  435. #: ../../../docs/configuring-playbook-bot-meowlnir.md:379
  436. msgid "If commands in a management room get no reply at all, check the bot's power level *there* too — it needs at least 50 to record its own configuration."
  437. msgstr ""
  438. #: ../../../docs/configuring-playbook-bot-meowlnir.md:381
  439. msgid "A bare `!lists` returns nothing in a management room which has never had a policy list. That is an upstream bug and it clears as soon as you subscribe to one; `!lists subscribe` works from the start."
  440. msgstr ""