config.yaml configuration as a Nix attribute set. Configuration options should match those described in the example configuration. Get an example configuration by executing mautrix-signal -c example.yaml --generate-example-config
Secret tokens should be specified using environmentFile instead of this world-readable attribute set.
Declarations
Type
JSON value
Default
{
appservice = {
as_token = "";
bot = {
displayname = "Signal Bridge Bot";
username = "signalbot";
};
hostname = "[::]";
hs_token = "";
id = "signal";
port = 29328;
username_template = "signal_{{.}}";
};
bridge = {
command_prefix = "!signal";
permissions = {
"*" = "relay";
};
relay = {
enabled = true;
};
};
database = {
type = "sqlite3";
uri = "file:/var/lib/mautrix-signal/mautrix-signal.db?_txlock=immediate";
};
direct_media = {
server_key = "";
};
double_puppet = {
secrets = { };
servers = { };
};
encryption = {
pickle_key = "";
};
homeserver = {
address = "http://localhost:8448";
};
logging = {
min_level = "info";
writers = [
{
format = "pretty-colored";
time_format = " ";
type = "stdout";
}
];
};
network = {
displayname_template = "{{or .ProfileName .PhoneNumber \"Unknown user\"}}";
};
provisioning = {
shared_secret = "";
};
public_media = {
signing_key = "";
};
}
Example
{
appservice = {
ephemeral_events = false;
id = "signal";
};
backfill = {
enabled = true;
};
bridge = {
mute_only_on_create = false;
permissions = {
"example.com" = "user";
};
private_chat_portal_meta = true;
};
database = {
type = "postgres";
uri = "postgresql:///mautrix_signal?host=/run/postgresql";
};
encryption = {
allow = true;
default = true;
pickle_key = "$ENCRYPTION_PICKLE_KEY";
require = true;
};
homeserver = {
address = "http://[::1]:8008";
domain = "my-domain.tld";
};
matrix = {
message_status_events = true;
};
provisioning = {
shared_secret = "disable";
};
}