diff --git a/forgejo/kustomization.yaml b/forgejo/kustomization.yaml
index d269c62..1428402 100644
--- a/forgejo/kustomization.yaml
+++ b/forgejo/kustomization.yaml
@@ -21,6 +21,7 @@ resources:
   - resources/db/db.yaml
   - resources/db/user.yaml
   - resources/meilisearch/pvc.yaml
+  - resources/meilisearch/backup.yaml
   - resources/secrets/admin-credentials.yaml
   - resources/secrets/infra-credentials.yaml
   - resources/secrets/meili-credentials.yaml
diff --git a/forgejo/resources/meilisearch/backup.yaml b/forgejo/resources/meilisearch/backup.yaml
new file mode 100644
index 0000000..bd3e3f9
--- /dev/null
+++ b/forgejo/resources/meilisearch/backup.yaml
@@ -0,0 +1,25 @@
+apiVersion: batch/v1
+kind: CronJob
+metadata:
+  name: meilisearch-backup
+spec:
+  schedule: "* */6 * * *"
+  jobTemplate:
+    spec:
+      template:
+        spec:
+          containers:
+            - name: meilisearch-backup
+              image: alpine/curl:latest
+              imagePullPolicy: IfNotPresent
+              command:
+                - /bin/ash
+                - -c
+                - 'curl -X POST -H "Authorization: Bearer ${MEILI_MASTER_KEY}" "${MEILISEARCH_URL}/dumps"'
+              env:
+                - name: MEILISEARCH_URL
+                  value: http://forgejo-indexer-meilisearch.forgejo.svc:7700
+              envFrom:
+                - secretRef:
+                    name: meili-credentials
+          restartPolicy: OnFailure