diff --git a/modules/services/server/matrix.nix b/modules/services/server/matrix.nix
index 3d49b28..223c5e3 100644
--- a/modules/services/server/matrix.nix
+++ b/modules/services/server/matrix.nix
@@ -75,9 +75,6 @@ in {
             ];
           }
         ];
-        app_service_config_files = [
-            config.age.secrets."services/matrix/whatsapp-registration.yml".path
-        ];
     };
     extraConfigFiles = [
         config.age.secrets."services/matrix/synapse.yml".path
@@ -88,42 +85,7 @@ in {
       matrix-synapse = {
           requires = [ "postgresql.service" ];
       };
-      mautrix-whatsapp = {
-        description = "Matrix <-> WhatsApp bridge";
-        wantedBy = [ "multi-user.target" ];
-        after = [ "network.target" "postgresql.service" "matrix-synapse.service" ];
-        requires = [ "postgresql.service" "matrix-synapse.service" ];
-        script = "${pkgs.mautrix-whatsapp}/bin/mautrix-whatsapp -n --config ${config.age.secrets."services/matrix/mautrix-whatsapp.yml".path}";
-        serviceConfig = {
-          User = "mautrix-whatsapp";
-          Group = "mautrix-whatsapp";
-          Environment = "HOME=/var/lib/mautrix-whatsapp";
-          ReadWritePaths="/var/log/mautrix-whatsapp";
-          NoNewPrivileges=true;
-          MemoryDenyWriteExecute=true;
-          PrivateDevices=true;
-          PrivateTmp=true;
-          ProtectHome=true;
-          ProtectSystem="strict";
-          ProtectControlGroups=true;
-          RestrictSUIDSGID=true;
-          RestrictRealtime=true;
-          LockPersonality=true;
-          ProtectKernelLogs=true;
-          ProtectKernelTunables=true;
-          ProtectHostname=true;
-          ProtectKernelModules=true;
-          PrivateUsers=true;
-          ProtectClock=true;
-          SystemCallArchitectures="native";
-          SystemCallErrorNumber="EPERM";
-          SystemCallFilter="@system-service";
-        };
-      };
   };
-  systemd.tmpfiles.rules = [
-    "d /var/log/mautrix-whatsapp - mautrix-whatsapp mautrix-whatsapp"
-  ];
 
   users = {
     users = {
@@ -226,11 +188,7 @@ in {
               };
               appservice = {
                   hostname = "127.0.0.1";
-                  provisioning.enabled = false;
                   id = "signal";
-                  public = {
-                      enabled = false;
-                  };
               };
 	      database = {
 	        type = "postgres";
@@ -245,37 +203,69 @@ in {
                   };
 	          pickle_key = "$MAUTRIX_SIGNAL_ENCRYPTION_PICKLE_KEY";
               };
+	      backfill = {
+	          enabled = true;
+	      };
               bridge = {
-                  sync_channel_members = true;
-                  startup_sync = true;
-                  public_portals = true;
-                  double_puppet_server_map = {
-                    "kabtop.de" = "https://kabtop.de";
-                  };
-                  private_chat_portal_meta = "default";
-                  backfill = {
-                      disable_notifications = true;
-                  };
                   permissions = {
                       "@kabbone:kabtop.de" = "admin";
                   };
               };
               logging = {
-                  loggers = {
-                    mau = {
-                      level = "WARN";
-                    };
-                    telethon = {
-                      level = "WARN";
-                    };
+	          min-level = "warn";
+		  writers = {
+		      format = "pretty-colored";
+		      type = "stdout";
+		  };
+              };
+          };
+      };
+      mautrix-whatsapp = {
+          enable = true;
+	  registerToSynapse = true;
+          environmentFile = config.age.secrets."services/matrix/mautrix-whatsapp.env".path;
+          settings = {
+              homeserver = {
+                  address = "http://localhost:8008";
+                  domain = "kabtop.de";
+              };
+              appservice = {
+                  hostname = "127.0.0.1";
+                  id = "whatsapp";
+              };
+	      database = {
+	        type = "postgres";
+	        uri = "$MAUTRIX_WHATSAPP_APPSERVICE_DATABASE";
+	      };
+              encryption = {
+                  allow = true;
+                  default = true;
+                  verification_levels = {
+                      receive = "cross-signed-untrusted";
+                      send = "cross-signed-untrusted";
                   };
-                  root = {
-                    handlers = [
-                      "console"
-                    ];
-                    level = "WARN";
+	          pickle_key = "$MAUTRIX_WHATSAPP_ENCRYPTION_PICKLE_KEY";
+              };
+	      network = {
+	          history_sync = {
+		      request_full_sync = true;
+	          };
+	      };
+	      backfill = {
+	          enabled = true;
+	      };
+              bridge = {
+                  permissions = {
+                      "@kabbone:kabtop.de" = "admin";
                   };
               };
+              logging = {
+	          min-level = "warn";
+		  writers = {
+		      format = "pretty-colored";
+		      type = "stdout";
+		  };
+              };
           };
       };
   };
@@ -288,7 +278,7 @@ in {
      file = ../../../secrets/services/matrix/mautrix-telegram.age;
      owner = "mautrix-telegram";
   };
-  age.secrets."services/matrix/mautrix-whatsapp.yml" = {
+  age.secrets."services/matrix/mautrix-whatsapp.env" = {
      file = ../../../secrets/services/matrix/mautrix-whatsapp.age;
      owner = "mautrix-whatsapp";
   };
@@ -296,9 +286,4 @@ in {
      file = ../../../secrets/services/matrix/mautrix-signal.age;
      owner = "mautrix-signal";
   };
-  age.secrets."services/matrix/whatsapp-registration.yml" = {
-     file = ../../../secrets/services/matrix/whatsapp-registration.age;
-     owner = "matrix-synapse";
-  };
-
 }
diff --git a/secrets/secrets.nix b/secrets/secrets.nix
index 36d51bf..1ba880c 100644
--- a/secrets/secrets.nix
+++ b/secrets/secrets.nix
@@ -69,7 +69,7 @@ in
         "services/matrix/synapse.age".publicKeys = servers ++ users;
         "services/matrix/mautrix-telegram.age".publicKeys = servers ++ users;
         "services/matrix/mautrix-whatsapp.age".publicKeys = servers ++ users;
-        "services/matrix/whatsapp-registration.age".publicKeys = servers ++ users;
+        "services/matrix/mautrix-whatsapp.old.age".publicKeys = servers ++ users;
         "services/matrix/mautrix-signal.age".publicKeys = servers ++ users;
         "services/nextcloud/adminpassFile.age".publicKeys = servers ++ users;
         "services/nextcloud/dbpassFile.age".publicKeys = servers ++ users;
diff --git a/secrets/services/matrix/mautrix-whatsapp.age b/secrets/services/matrix/mautrix-whatsapp.age
index 695c1a3..8cd256f 100644
Binary files a/secrets/services/matrix/mautrix-whatsapp.age and b/secrets/services/matrix/mautrix-whatsapp.age differ
diff --git a/secrets/services/matrix/mautrix-whatsapp.old.age b/secrets/services/matrix/mautrix-whatsapp.old.age
new file mode 100644
index 0000000..695c1a3
Binary files /dev/null and b/secrets/services/matrix/mautrix-whatsapp.old.age differ