diff --git a/apps/base/nextcloud/kustomization.yaml b/apps/base/nextcloud/kustomization.yaml
index 1d0c497be167e8a8e546abbfe3ef9e108f6eaf48..4b3fb922c6502bf468de930c9426bf386a4101e5 100644
--- a/apps/base/nextcloud/kustomization.yaml
+++ b/apps/base/nextcloud/kustomization.yaml
@@ -6,6 +6,7 @@ resources:
   - database.yaml
   - repository.yaml
   - release.yaml
+  - monitoring.yaml
   - ../../../shared/networkpolicies/allow-from-same-namespace.yaml
   - ../../../shared/networkpolicies/allow-from-ingress.yaml
   - ../../../shared/networkpolicies/allow-from-database.yaml
diff --git a/apps/base/nextcloud/monitoring.yaml b/apps/base/nextcloud/monitoring.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..2d972162b778a368de43154aff980e9055fb90fb
--- /dev/null
+++ b/apps/base/nextcloud/monitoring.yaml
@@ -0,0 +1,16 @@
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: nextcloud
+  namespace: nextcloud
+spec:
+  endpoints:
+  - honorLabels: true
+    path: /
+    port: metrics
+  jobLabel: app.kubernetes.io/name
+  selector:
+    matchLabels:
+      app.kubernetes.io/component: metrics
+      app.kubernetes.io/instance: nextcloud
+      app.kubernetes.io/name: nextcloud
diff --git a/apps/base/nextcloud/release.yaml b/apps/base/nextcloud/release.yaml
index 982a159bd43421fb05664f161a2710e161fb5369..406e74a3e9897ad58bb537ec25e03820ffa60d43 100644
--- a/apps/base/nextcloud/release.yaml
+++ b/apps/base/nextcloud/release.yaml
@@ -131,6 +131,9 @@ data:
         requests:
           cpu: 100m
           memory: 128Mi
+      service:
+        labels:
+          app.kubernetes.io/component: metrics
     rbac:
       enabled: true
       serviceaccount: