diff --git a/roles/jabber-frontend/meta/main.yml b/roles/jabber-frontend/meta/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f1ad4172678530117967095ac9e125aff77f13cf
--- /dev/null
+++ b/roles/jabber-frontend/meta/main.yml
@@ -0,0 +1,5 @@
+---
+
+dependencies:
+  - { role: account-automation-frontend }
+
diff --git a/roles/prosody/templates/prosody.cfg.lua.j2 b/roles/prosody/templates/prosody.cfg.lua.j2
index ac81b1084af87aafb9775fcdacb64f5c9d98f87b..7d690335ca7e42b0bd011a7afe2c13b2ababb4b2 100644
--- a/roles/prosody/templates/prosody.cfg.lua.j2
+++ b/roles/prosody/templates/prosody.cfg.lua.j2
@@ -37,6 +37,7 @@ modules_enabled = {
             --"admin_telnet"; -- Opens telnet console interface on localhost port 5582
 
     -- HTTP modules
+            "http"; -- Needed to serve the metrics
             "http_files"; -- Serve static files from a directory over HTTP
             -- "http_upload"; -- Enable XEP-0363 which let clients upload files over HTTP
             "http_upload_external"; -- Enable XEP-0363, which lets clients upload files over HTTP to an external web server.
@@ -55,8 +56,22 @@ modules_enabled = {
 
     -- System-level modules
             "net_proxy";
+
+    -- Metrics
+            "http_openmetrics";
 }
 
+-- statistics and metrics
+http_ports = { 5282 }
+--- The http_openmetrics module exposes the metrics gathered by this internal
+--- mechanism
+statistics = "internal"
+-- this is fine iff we have only one Prometheus instance
+statistics_interval = "manual"
+
+-- This is needed to allow external services to query the openmetrics endpoint
+openmetrics_allowed_cidr = "0.0.0.0/0"
+
 allow_registration = false
 archive_expires_after = "1w"
 
@@ -141,3 +156,5 @@ Component "conference.jabber.{{ domain }}" "muc"
 Component "proxy.jabber.{{ domain }}" "proxy65"
 
 {% endfor %}
+
+-- vim:set syntax=lua:
diff --git a/services.im.yml b/services.im.yml
index db59e069e9cae5e63e440d25dac33f79391e18a3..f766cb56046c8ac7d818f31949a02e467935e69e 100644
--- a/services.im.yml
+++ b/services.im.yml
@@ -12,6 +12,7 @@ jabber:
         - 5222
         - 5269
         - 5280
+        - 5282
         - 15222
         - 15269
         - 15280
@@ -43,6 +44,8 @@ jabber:
           public: 5269
         - internal: 15280
           public: 5280
+        - internal: 5282
+          public: 5282
 
   datasets:
     - name: data
@@ -59,5 +62,9 @@ jabber:
       params:
         compress: true
 
+  monitoring_endpoints:
+    - port: 5282
+      scheme: http
+
   systemd_services:
     - replds@acme.service