3.9 KiB
Maubot
Maubot is a plugin-based bot framework for Matrix.
Configuration
-
If you want to use PostgreSQL instead of SQLite, do this:
{ services.maubot.settings.database = "postgresql://maubot@localhost/maubot"; }
If the PostgreSQL connection requires a password, you will have to add it later on step 8.
-
If you plan to expose your Maubot interface to the web, do something like this:
{ services.nginx.virtualHosts."matrix.example.org".locations = { "/_matrix/maubot/" = { proxyPass = "http://127.0.0.1:${toString config.services.maubot.settings.server.port}"; proxyWebsockets = true; }; }; services.maubot.settings.server.public_url = "matrix.example.org"; # do the following only if you want to use something other than /_matrix/maubot... services.maubot.settings.server.ui_base_path = "/another/base/path"; }
-
Optionally, set
services.maubot.pythonPackages
to a list of python3 packages to make available for Maubot plugins. -
Optionally, set
services.maubot.plugins
to a list of Maubot plugins (full list available at https://plugins.maubot.xyz/):{ services.maubot.plugins = with config.services.maubot.package.plugins; [ reactbot # This will only change the default config! After you create a # plugin instance, the default config will be copied into that # instance's config in Maubot's database, and further base config # changes won't affect the running plugin. (rss.override { base_config = { update_interval = 60; max_backoff = 7200; spam_sleep = 2; command_prefix = "rss"; admins = [ "@chayleaf:pavluk.org" ]; }; }) ]; # ...or... services.maubot.plugins = config.services.maubot.package.plugins.allOfficialPlugins; # ...or... services.maubot.plugins = config.services.maubot.package.plugins.allPlugins; # ...or... services.maubot.plugins = with config.services.maubot.package.plugins; [ (weather.override { # you can pass base_config as a string base_config = '' default_location: New York default_units: M default_language: show_link: true show_image: false ''; }) ]; }
-
Start Maubot at least once before doing the following steps (it's necessary to generate the initial config).
-
If your PostgreSQL connection requires a password, add
database: postgresql://user:password@localhost/maubot
to/var/lib/maubot/config.yaml
. This overrides the Nix-provided config. Even then, don't remove thedatabase
line from Nix config so the module knows you use PostgreSQL! -
To create a user account for logging into Maubot web UI and configuring it, generate a password using the shell command
mkpasswd -R 12 -m bcrypt
, and edit/var/lib/maubot/config.yaml
with the following:admins: admin_username: $2b$12$g.oIStUeUCvI58ebYoVMtO/vb9QZJo81PsmVOomHiNCFbh0dJpZVa
Where
admin_username
is your username, and$2b...
is the bcrypted password. -
Optional: if you want to be able to register new users with the Maubot CLI (
mbc
), and your homeserver is private, add your homeserver's registration key to/var/lib/maubot/config.yaml
:homeservers: matrix.example.org: url: https://matrix.example.org secret: your-very-secret-key
-
Restart Maubot after editing
/var/lib/maubot/config.yaml
,and Maubot will be available athttps://matrix.example.org/_matrix/maubot
. If you want to use thembc
CLI, it's available using themaubot
package (nix-shell -p maubot
).