nixos-configuration/modules/matrix/mautrix-whatsapp.nix
2025-10-06 15:27:56 +02:00

62 lines
1.7 KiB
Nix

{ config, lib, ... }:
let
cfg = config.jalr.matrix;
synapseCfg = config.services.matrix-synapse.settings;
in
lib.mkIf cfg.mautrix-whatsapp.enable {
services.mautrix-whatsapp = {
enable = true;
registerToSynapse = true;
settings = lib.mkForce ({
homeserver = {
address = synapseCfg.public_baseurl;
domain = synapseCfg.server_name;
};
database = {
type = "sqlite3-fk-wal";
uri = "file:/var/lib/mautrix-whatsapp/mautrix-whatsapp.db?_txlock=immediate";
};
appservice = rec {
hostname = "127.0.0.1";
inherit (cfg.mautrix-whatsapp) port;
address = "http://${hostname}:${toString port}";
provisioning.shared_secret = "disable";
id = "whatsapp";
bot = {
username = "whatsappbot";
displayname = "WhatsApp bridge bot";
avatar = "mxc://maunium.net/NeXNQarUbrlYBiPCpprYsRqr";
};
};
whatsapp = {
browser_name = "mx-wa";
os_name = "Mautrix-WhatsApp bridge";
};
bridge = {
command_prefix = "!wa";
delivery_receipts = true;
displayname_template = "{{if .FullName}}{{.FullName}}{{else if .Notify}}{{.Notify}}{{else}}{{.Jid}}{{end}} (WA)";
history_sync = {
backfill = true;
};
identity_change_notices = true;
private_chat_portal_meta = true;
reaction_notices = true;
relay.enable = false;
};
logging = {
file_name_format = null;
min_level = "info";
print_level = "info";
writers = [
{
format = "pretty-colored";
time_format = " ";
type = "stdout";
}
];
};
} // cfg.mautrix-whatsapp.settings);
};
}