# Maubot A plugin-based Matrix bot system. > Warning: Maubot uses [deprecated `libolm`](https://github.com/mautrix/go/issues/262). View the [*synix* NixOS module on Forgejo](https://git.sid.ovh/sid/synix/tree/master/modules/nixos/maubot). ## References - [GitHub repository](https://github.com/maubot/maubot) ## Sops Provide the following entries to your host's `secrets.yaml`: > Replace `abc123` with your actual secrets as well as `alice` and `bob` with your actual admin user names. ```yaml maubot: admins: alice: abc123 bob: abc123 # ... ``` ## Config This module only works if Matrix Synapse is running on the same machine. See [the module on synix](./matrix-synapse.md). ```nix { imports = [ inputs.synix.nixosModules.maubot inputs.synix.nixosModules.matrix-synapse ]; nixpkgs.config.permittedInsecurePackages = [ "olm-3.2.16" ]; services.maubot = { enable = true; sops = true; admins = [ "alice" "bob" ]; plugins = with config.services.maubot.package.plugins; [ gitlab reminder ]; }; services.matrix-synapse = { enable = true; # ... }; } ``` ## Setup 1. Create a bot: `$ register_new_matrix_user` 1. Login as your admin user: `$ mbc login` 1. Authenticate as bot: `$ mbc auth` 1. Take note of the access token and device ID 1. Visit `https:/EXAMPLE.TLD/_matrix/maubot` 1. Create a client (if not already preset) 1. Create an instance ## Bots ### GitLab > See [Readme on GitHub](https://github.com/maubot/gitlab?tab=readme-ov-file) Create a personal access token with full API access. ``` !gitlab server login https://git.example.com PERSONAL_ACCESS_TOKEN !gitlab webhook add https://git.example.com user/project ``` Check the webhook URL for potential errors. ## Tips ### Upload a profile picture to Matrix ```sh curl -X POST "https://YOUR_HOMESERVER_URL/_matrix/media/v3/upload" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: image/png" \ --data-binary "@/path/to/your/image.png" ``` The respond body contains a valid avatar URL (`mxc://...`).