Skip to content

Mautrix meta

services.mautrix-meta.instances

Configuration of multiple mautrix-meta instances. services.mautrix-meta.instances.facebook and services.mautrix-meta.instances.instagram come preconfigured with meta.mode, appservice.id, bot username, display name and avatar.

Type: attribute set of (submodule)

Example

`#!nix '' { facebook = { enable = true; settings = { homeserver.domain = "example.com"; }; };

instagram = {
  enable = true;
  settings = {
    homeserver.domain = "example.com";
  };
};

messenger = {
  enable = true;
  settings = {
    meta.mode = "messenger";
    homeserver.domain = "example.com";
    appservice = {
      id = "messenger";
      bot = {
        username = "messengerbot";
        displayname = "Messenger bridge bot";
        avatar = "mxc://maunium.net/ygtkteZsXnGJLJHRchUwYWak";
      };
    };
  };
};

} ''`

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.instances.<name>.dataDir

Path to the directory with database, registration, and other data for the bridge service. This path is relative to /var/lib, it cannot start with ../ (it cannot be outside of /var/lib).

Type: string

Default

"mautrix-meta-‹name›"

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.instances.<name>.enable

Whether to enable Mautrix-Meta, a Matrix <-> Facebook and Matrix <-> Instagram hybrid puppeting/relaybot bridge. Type: boolean

Default

false

Example

true

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.instances.<name>.environmentFile

File containing environment variables to substitute when copying the configuration out of Nix store to the services.mautrix-meta.dataDir.

Can be used for storing the secrets without making them available in the Nix store.

For example, you can set services.mautrix-meta.settings.appservice.as_token = "$MAUTRIX_META_APPSERVICE_AS_TOKEN" and then specify MAUTRIX_META_APPSERVICE_AS_TOKEN="{token}" in the environment file. This value will get substituted into the configuration file as as token.

Type: null or path

Default

null

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.instances.<name>.registerToSynapse

Whether to add registration file to services.matrix-synapse.settings.app_service_config_files and make Synapse wait for registration service.

Type: boolean

Default

true

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.instances.<name>.registrationFile

Path to the yaml registration file of the appservice.

Type: path

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.instances.<name>.registrationServiceUnit

The registration service that generates the registration file.

Systemd unit (a service or a target) for other services to depend on if they need to be started after mautrix-meta registration service.

This option is useful as the actual parent unit for all matrix-synapse processes changes when configuring workers.

Type: string

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.instances.<name>.serviceDependencies

List of Systemd services to require and wait for when starting the application service.

Type: list of string

Default

'' [ config.registrationServiceUnit ] ++ (lib.lists.optional upperConfig.services.matrix-synapse.enable upperConfig.services.matrix-synapse.serviceUnit) ++ (lib.lists.optional upperConfig.services.matrix-conduit.enable "matrix-conduit.service") ++ (lib.lists.optional upperConfig.services.dendrite.enable "dendrite.service");''

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.instances.<name>.serviceUnit

The systemd unit (a service or a target) for other services to depend on if they need to be started after matrix-synapse.

This option is useful as the actual parent unit for all matrix-synapse processes changes when configuring workers.

Type: string

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.instances.<name>.settings

{file}config.yaml configuration as a Nix attribute set. Configuration options should match those described in example-config.yaml.

Secret tokens should be specified using {option}environmentFile instead

Type: YAML value

Default

`#!nix '' { homeserver = { software = "standard"; address = "https://''${config.settings.homeserver.domain}"; };

appservice = {
  database = {
    type = "sqlite3-fk-wal";
    uri = "file:''${fullDataDir config}/mautrix-meta.db?_txlock=immediate";
  };

  hostname = "localhost";
  port = 29319;
  address = "http://''${config.settings.appservice.hostname}:''${toString config.settings.appservice.port}";
};

bridge = {
  # Require encryption by default to make the bridge more secure
  encryption = {
    allow = true;
    default = true;
    require = true;

    # Recommended options from mautrix documentation
    # for optimal security.
    delete_keys = {
      dont_store_outbound = true;
      ratchet_on_decrypt = true;
      delete_fully_used_on_decrypt = true;
      delete_prev_on_new_session = true;
      delete_on_device_delete = true;
      periodically_delete_expired = true;
      delete_outdated_inbound = true;
    };

    verification_levels = {
      receive = "cross-signed-tofu";
      send = "cross-signed-tofu";
      share = "cross-signed-tofu";
    };
  };
};

logging = {
  min_level = "info";
  writers = lib.singleton {
    type = "stdout";
    format = "pretty-colored";
    time_format = " ";
  };
};

}; ''`

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix

services.mautrix-meta.package

The mautrix-meta package to use. Type: package

Default

pkgs.mautrix-meta

Declared by: https://github.com/nixos/nixpkgs/blob/master/nixos/modules/services/matrix/mautrix-meta.nix