diff --git a/apps/base/miniflux/database.yaml b/apps/base/miniflux/database.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8332e1936f5a8820d66038885dcf8ca2fa953a72
--- /dev/null
+++ b/apps/base/miniflux/database.yaml
@@ -0,0 +1,38 @@
+apiVersion: "acid.zalan.do/v1"
+kind: postgresql
+metadata:
+  name: miniflux-postgres
+spec:
+  teamId: "miniflux"
+  volume:
+    size: 1Gi
+  numberOfInstances: 1
+  users:
+    miniflux:
+    - superuser
+    - createdb
+  databases:
+    miniflux: miniflux
+  postgresql:
+    version: "15"
+---
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+  name: allow-from-miniflux-to-database
+spec:
+  policyTypes:
+  - Ingress
+  ingress:
+  - from:
+    - podSelector:
+        matchLabels: {}
+    ports:
+    - port: 5432
+      protocol: TCP
+  podSelector:
+    matchExpressions:
+      - key: application
+        operator: In
+        values:
+          - spilo
\ No newline at end of file
diff --git a/apps/base/miniflux/deployment.yaml b/apps/base/miniflux/deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7a33d9ea2c7da839f6f51dc648da7212495fd9ab
--- /dev/null
+++ b/apps/base/miniflux/deployment.yaml
@@ -0,0 +1,87 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: miniflux
+spec:
+  replicas: 1
+  selector:
+    matchLabels: {}
+  strategy:
+    type: RollingUpdate
+  template:
+    spec:
+      serviceAccountName: miniflux
+      containers:
+        - image: ghcr.io/miniflux/miniflux:2.0.51-distroless
+          name: miniflux
+          env:
+            - name: RUN_MIGRATIONS
+              value: "1"
+            - name: PGHOST
+              value: miniflux-postgres.miniflux.svc.cluster.local
+            - name: PGUSER
+              valueFrom:
+                secretKeyRef:
+                  name: miniflux.miniflux-postgres.credentials.postgresql.acid.zalan.do
+                  key: username
+            - name: PGPASSWORD
+              valueFrom:
+                secretKeyRef:
+                  name: miniflux.miniflux-postgres.credentials.postgresql.acid.zalan.do
+                  key: password
+          resources:
+            requests:
+              cpu: 100m
+              memory: 256Mi
+            limits:
+              cpu: "1"
+              memory: "512Mi"
+          ports:
+            - name: http
+              containerPort: 8080
+              protocol: TCP
+          readinessProbe:
+            exec:
+              command:
+                - /usr/bin/miniflux
+                - -healthcheck
+                - auto
+          securityContext:
+            allowPrivilegeEscalation: false
+            capabilities:
+              drop:
+                - ALL
+      securityContext:
+        runAsNonRoot: true
+        seccompProfile:
+          type: RuntimeDefault
+      topologySpreadConstraints:
+        - maxSkew: 1
+          topologyKey: kubernetes.io/hostname
+          whenUnsatisfiable: DoNotSchedule
+          labelSelector:
+            matchLabels: {}
+          matchLabelKeys:
+            - pod-template-hash
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: miniflux
+spec:
+  type: ClusterIP
+  selector: {}
+  ports:
+    - name: http
+      protocol: TCP
+      port: 80
+      targetPort: http
+---
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+  name: miniflux
+spec:
+  maxUnavilable: 1
+  selector:
+    matchLabels: {}
diff --git a/apps/base/miniflux/kustomization.yaml b/apps/base/miniflux/kustomization.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e5d2a426481aeb4b5f1b965d8e1bb3e5f8286f49
--- /dev/null
+++ b/apps/base/miniflux/kustomization.yaml
@@ -0,0 +1,16 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+namespace: miniflux
+resources:
+  - namespace.yaml
+  - deployment.yaml
+  - database.yaml
+  - serviceaccount.yaml
+  - ../../../shared/networkpolicies/allow-from-ingress.yaml
+  - ../../../shared/networkpolicies/allow-from-database.yaml
+
+commonLabels:
+  app.kubernetes.io/name: miniflux
+
+components:
+  - ../../../shared/components/namespace-restricted
\ No newline at end of file
diff --git a/apps/base/miniflux/namespace.yaml b/apps/base/miniflux/namespace.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b960a5b793ad4139648c9208abfee06b61c605df
--- /dev/null
+++ b/apps/base/miniflux/namespace.yaml
@@ -0,0 +1,5 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: blog
+  labels: {}
\ No newline at end of file
diff --git a/apps/base/miniflux/serviceaccount.yaml b/apps/base/miniflux/serviceaccount.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..207b7fa856e09677ad8913f81dc5b1242006b094
--- /dev/null
+++ b/apps/base/miniflux/serviceaccount.yaml
@@ -0,0 +1,6 @@
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: miniflux
+automountServiceAccountToken: false
\ No newline at end of file
diff --git a/apps/k8s01/miniflux/certificate.yaml b/apps/k8s01/miniflux/certificate.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..4ed817f96cf4968ee80742f47c13bba68ea41795
--- /dev/null
+++ b/apps/k8s01/miniflux/certificate.yaml
@@ -0,0 +1,63 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+    name: miniflux-tls
+spec:
+    dnsNames:
+        - ENC[AES256_GCM,data:PIVJFIhlhbrRoMKUX5ULQ35t/9rBDXyRFpZgrupC,iv:q66nNgQjcSDJVBKxiN7wzgLedYQvX5YuGnxpKJTiwys=,tag:/8Ktw4JoC8LM19+/rZY3IA==,type:str]
+    issuerRef:
+        name: letsencrypt
+        kind: ClusterIssuer
+    secretName: ingress-miniflux-tls
+sops:
+    kms: []
+    gcp_kms: []
+    azure_kv: []
+    hc_vault: []
+    age: []
+    lastmodified: "2024-02-04T23:11:32Z"
+    mac: ENC[AES256_GCM,data:RQAUP+NLw6sLde1wPJ9hln4D7SKppW2lG4AmDVVgPWM0KJfA1jkpz1dvEVbEf3jq3sx/1ro114RxkZoS5G/UAzA+AnS4Oza4YOvcWY7xTOj6StuqPx+yw3C8DIq5r3KRl/vWN56QXCdl+KISR0y3bxTt7Y3EtFd/PrOSb/MpSNM=,iv:TEsUmHmJpdYgsS6XXS9SNEvTcnxSLaebmbhs30Jc8qQ=,tag:H2oWsqN+G5SIvVe2m83CAw==,type:str]
+    pgp:
+        - created_at: "2022-01-21T18:13:48Z"
+          enc: |-
+            -----BEGIN PGP MESSAGE-----
+
+            wcFMA7kpg2bgzVHcAQ/+IG1TAuVEGzcWHg38roMiVRzgWKGSFwKWomqbuHrI5chZ
+            yWb9+L1THbckzT/azkmT+0I7KLuy7leN0MgENBMJ1UrHzLw5Sc267soVNft0ssvx
+            tEGIApqGgnVVoxALe0muynNBg3hJ94RzmgjgfWyQLdYxyq2WKusafGMeZVEDW4GV
+            R02O6MHYyect0i0F2RZRY03nILbiriZTIImVMdP3AcVu92fbTJk6/DKz0STWsVWK
+            8PmSy2C/dtZQXt9+F/xDXRwUmjE0WlUsdcraDMGX6CUYQenXzarOGEx8fWuFfVJk
+            WdUUB5WE7YjoXEoCN1/bLMsGzWTCOrHVUXufeowaKeiwX/mr9vsf1gbfsiaTfxcq
+            BcCT7KxAFomHA6rdeAd+Lcseg+cbGxKZNiG5yjdJEsOvqa+eXQ0RF1Nziq0DapBn
+            rAnh3QYRWuE8lB9WsKb+gI+J0eLtAJd6cqQcORfhpSG1e6vQHLbGrkv/RYJ+lX/6
+            rTkpNE9sinLHz+X3rPAGY362/wexeZszRbtEcWJVGNpATEQNViQfpZoUgESxZ0Ax
+            TgDMfHztbvqkenwLefN7GEsRAiKXkIo5zzZ3tBMltJEFYwKJ7I+8RoTzZfDQmu8N
+            Keo58QQZ/ZgyKeWqeCyvAf8Fm7yeZxCD2Io9ZGYmtSLc+p7hvxt1gPPqZTSd6tfS
+            UQFKjoz1drNOuk1gWBK6MFYwLvLpwzWTQg1Z3e46CSkP8eRYvuFqMRzrksi5TecA
+            n3ZABsoIRIYz4fUMn/VFK6hlQ0jgRzhO/Fpf9qiWpJDPsg==
+            =/Bxq
+            -----END PGP MESSAGE-----
+          fp: 286791FB6648539775DB31B8FCB98C2A3EC6F601
+        - created_at: "2022-01-21T18:13:48Z"
+          enc: |
+            -----BEGIN PGP MESSAGE-----
+
+            hQIMA4oYbIHZIrAPAQ/6AzWmuFdkDO05b5jctWs4uajFEtSTKABuLLAl4PCOtbHK
+            KzTcqKv5OAuge3Zrx7EtN9Ls5Y2AYH3szFuhPYdqCNEGFl5IFYLehfRjDm/2VnL7
+            7pEMEApOCcc5UHeiXnTG235DIWIJPGQ5i3gpuQ8uaYtxlBiYlF7TGgAezIWaD2/F
+            inVH+B+mJDI2zP2E5JR5lBV8QfzoMYMFII6ZKKCTlombKJCF7kUcXcApU+rCcwKQ
+            AETde0FitrHxr+BwGfaDfKMnVXkzAf1VLsfuj7ChoZ1E08uB4tVLTgaC4xmMKEM7
+            JZbfO/wQ7lAGi+vGoJXR+HgqSxgM3e0rQHj/O4VV7aDUw9TTN/7FAeR5App4AGJl
+            JfxnKzB3j9O4H/kwaaw1QboQbFvr/dGy1T5TmQ/CmTfATpJuDI4pGQS8U4j9Fx2P
+            cSkAjGU4roQLCPlW7kyg8Kr1Im8hG8/9Bfw8UGW8Gq9koflZgSHEj+4GSyTgAEE1
+            dEpYyACc43XeOt8MoAWBTWP67LaRMxi6EPBGgMl3Z+DE+syEeJcW2kpX1MxFihSL
+            vEh1XL5JHs9oxU98WnW+DWJ1t1UxBd8q74SoqTL2al3q2JtiIcv6yxrI2cXnjzFj
+            e0TMJ8KWBEq3dZ0pISzn6PVUpTsjsu5oM7UYCxv6h63FvkUkgk/+UfsFMZM7BhPU
+            ZgEJAhC7qcJaCRfODlYxG1mHlYgQrBOuoQly8KWztvCVfGObRrr5hKzKfucRNSw7
+            Bqped4pJrsSn6rIOShAIIxIyP1cT0Fs+Y01NZxwU+1t/jzC16sVMeVfeJCT5ASjp
+            J22N7mBf9g==
+            =Kklm
+            -----END PGP MESSAGE-----
+          fp: B137EE1549DFAF960DD1E2B15147025FB9F09E07
+    encrypted_regex: ^(data|stringData|email|dnsZones?|dnsNames?|hosts?|tang|externalURL)$
+    version: 3.7.3
diff --git a/apps/k8s01/miniflux/database-patch.yaml b/apps/k8s01/miniflux/database-patch.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..32d8e7cdfd6f11d43be02519c2a8e1f64773373b
--- /dev/null
+++ b/apps/k8s01/miniflux/database-patch.yaml
@@ -0,0 +1,6 @@
+apiVersion: "acid.zalan.do/v1"
+kind: postgresql
+metadata:
+  name: miniflux-postgres
+spec:
+  numberOfInstances: 2
diff --git a/apps/k8s01/miniflux/deployment-patch.yaml b/apps/k8s01/miniflux/deployment-patch.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a5347d0fac93884054e8888b6d82caf5ab952282
--- /dev/null
+++ b/apps/k8s01/miniflux/deployment-patch.yaml
@@ -0,0 +1,28 @@
+- op: add
+  path: /spec/template/spec/containers/0/envFrom
+  value: []
+- op: add
+  path: /spec/template/spec/containers/0/envFrom/-
+  value:
+    secretRef:
+      name: miniflux-config
+- op: add
+  path: /spec/template/spec/containers/0/volumeMounts
+  value: []
+- op: add
+  path: /spec/template/spec/containers/0/volumeMounts/-
+  value:
+    name: oauth2-config
+    mountPath: /run/miniflux/secrets/
+    readOnly: true
+- op: add
+  path: /spec/template/spec/volumes
+  value: []
+- op: add
+  path: /spec/template/spec/volumes/-
+  value:
+    name: oauth2-config
+    secret:
+      secretName: miniflux-oauth2
+      optional: false
+    
\ No newline at end of file
diff --git a/apps/k8s01/miniflux/ingress.yaml b/apps/k8s01/miniflux/ingress.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..05dc3f98255fde8c18127af78d8351653413e434
--- /dev/null
+++ b/apps/k8s01/miniflux/ingress.yaml
@@ -0,0 +1,76 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+    name: miniflux
+    annotations:
+        forecastle.stakater.com/expose: "true"
+        forecastle.stakater.com/appName: Miniflux
+        forecastle.stakater.com/group: Apps
+spec:
+    rules:
+        - host: ENC[AES256_GCM,data:dSEXU4xHC8hepujV1ZzaP2nONnbGVYuHLs39mjgC,iv:inr61pJ3wd5LWpqQiJZ2aucyaVpYoFtNQaHjklzQn/k=,tag:K0OOqNOdFnIn4oaLPPsGxQ==,type:str]
+          http:
+            paths:
+                - backend:
+                    service:
+                        name: miniflux
+                        port:
+                            name: http
+                  path: /
+                  pathType: Prefix
+    tls:
+        - hosts:
+            - ENC[AES256_GCM,data:KhVWWd2D1piobvN8W54JmO1o+E/q6sXtmt2JP2fn,iv:5A75dpy/OzB95BVfxvyDxtAJmbQzc1gwD1FhRU2cSPU=,tag:13fUVv3iJ+QEp2IAmDqu+g==,type:str]
+          secretName: ingress-miniflux-tls
+sops:
+    kms: []
+    gcp_kms: []
+    azure_kv: []
+    hc_vault: []
+    age: []
+    lastmodified: "2024-02-04T23:11:39Z"
+    mac: ENC[AES256_GCM,data:L+f+R5suXNf2VaTEz+NhLAqAHnGYv1OZ+4Sevb+xH9XCI0bZo9XedsrRnO17hyBjydJJ/NWbnhoir3lKoPgdb8VlH5IAgdtUx58GPCsedN6fS7rzZ+S+pXYKI2hbUhqTCzr4F9b81oNnvStYE7tIyC8fFXQZgJuzDDzmE9k2WgA=,iv:NK8kHdRpWbCFHbriAFYpT63mi5cvNf0Yi0JD2+gdp0w=,tag:PrECmSv3a2Tc8myD1AJwDw==,type:str]
+    pgp:
+        - created_at: "2022-11-21T23:23:18Z"
+          enc: |-
+            -----BEGIN PGP MESSAGE-----
+
+            wcFMA7kpg2bgzVHcARAAsBmSVlkEOFbQFLJ1AgsE9kAbwc3M0JDE1xQ/1hv6Gbpx
+            vtdSxwGnP5gIJ92peux+lQwR6COdpxOXFPJInh3g8nlKC1Rai6otIrXPuV/wc81/
+            CShqXUeOKuWjmS5k/O9saJjaCEghJ+WNjnkcOkxhuZoIZk7e3FgHwMfnQsoGA5Cu
+            Ry5PDXRPE92Zz0eA3sh0ycdOiMaTbGomJ7cUf0GflsqOpDh7iSPqcrmN5QPxNTDh
+            ZoO1I0IS8akUQGxK7hS887TJKaAtXWAQNugBPFZhfCGl6q//dq1ZVMfH3Npzv+Jw
+            nIDviLEex+TOQjBORFWMb8DGubP+dr+WOCtuPlKsYKg2zi6hYXM21LWl/7uHj+Mk
+            AWlDkSgjMF2Vk3VhGny9thycwOYN506lQONPu9iQLBcVZHK6l01eiyfh7rDM8agt
+            xB3YPWqPACISgj9gnJFCnly8eJaYdejgIUBuwFSesIt3O1xM4k1ghZkNBVLZdlrj
+            ejOOheAOcEGgS7moPX2rJZ6jZqn+7x7GnAtPj6VQX1U+6MJxMYmF8Ej0aTsFafn1
+            7kPpheEauIBv8RuFV7sBYvUonoxeWNEeD3h4fRQSAwq5O2aYlso/VrA9lmecroi0
+            0IuCbjL9ZklZYchSUAh/1mGloh79iGJcCYgDBPel/lZjrCJNMiSGcX2iCctJBQLS
+            UQHlmtT6NAy5/3eDia7LGIbmplivGVuvAIjUC20QcWDoGw02WsGvdlNdv12JHQY5
+            PhGmgS565cInYmhr7Nbv4i+p/vON2kWA5liU7LZ5a8nUuA==
+            =gn0m
+            -----END PGP MESSAGE-----
+          fp: 286791FB6648539775DB31B8FCB98C2A3EC6F601
+        - created_at: "2022-11-21T23:23:18Z"
+          enc: |
+            -----BEGIN PGP MESSAGE-----
+
+            hQIMA4oYbIHZIrAPAQ//ZCm4SMaNG0O5p99rsyHMyny6u4wfKiNL7USGKXn3cX5i
+            U9ZGxc31sZB45TasFjFQQ/e9hdVtrIRdrIKrNKEdPfRdw5zdjm5/Uwje49RAizsY
+            CyG9u6y+p/QVLHq2Wjd90VylFruqPA4MdhYB9fafH1PWaQe9L5k9877GPKbIsVWT
+            aAD3IrW98d8NCm0z8C8JdMTYHjbZnpejFLqJtpj8ff/E42G9Q9qJexP3jLE3KnKO
+            VJOOoYjDHpeWxG3x9kBvEvMrAAsKuGagAxrrgrzROVFw72AP17MLcrVToCzKy8Y4
+            LSV5aqSR5o5wA5AAwJa8gjhi43KNtPZX+3KExX+fyIJPVpgF3UaAGcrC5h3bIUjL
+            yE5tbn3CXkwQm0HtfB5pI4PEUC36zqrqoTpZ8SLbA+xZK6FtmeBLH1DQtB1iJBeC
+            vsQECQfQ9ZbnPq++eoAHZkVsiDrDkmpHxeS66owdKuLTvZPxx8jPGqAVtQmFTEJn
+            Uh3dFVmvzGJYPfqH6sOwxZhOeX1ESaKjY2+e+wW9q2kvMSOwvzWvOOqiP+90fWr3
+            xlgkXx2FTuMIAxTdUUE3dnRc9ViqTUCd/MZkZACNYKSfs7fZzULOwW8vQAXEQqq0
+            ZmmVUV1cJt6EXX+qhB4JkDftI8FqYfGE1NwEDlXdlZznV8pg1FHAPoHD8pAG11vU
+            aAEJAhCRjh6jPG2xGIxp9DG3hw0Z5QRaHmL9vecYIPHaRpf434MlW78/dP2z3yQ3
+            RuXZrfGr3KBhhAPLFMo6iCfYyrJ3xeto0vlHsRzyZJ0ldniKvuXGUQCqu+AFwI1H
+            0/W950Z/5NVd
+            =8WwG
+            -----END PGP MESSAGE-----
+          fp: B137EE1549DFAF960DD1E2B15147025FB9F09E07
+    encrypted_regex: ^(data|stringData|email|dnsZones?|dnsNames?|.*(H|h)osts?|tang|externalURL|.*-secret|.*-url|.*Secrets?|.*-domain|password|subjects|node|apiURL|.*(S|s)erverNames?|.*SecretKey|externalName)$
+    version: 3.7.3
diff --git a/apps/k8s01/miniflux/kustomization.yaml b/apps/k8s01/miniflux/kustomization.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..06795ab036882e9fd8dd3b90385ab7b55a5713bf
--- /dev/null
+++ b/apps/k8s01/miniflux/kustomization.yaml
@@ -0,0 +1,21 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+namespace: miniflux
+resources:
+  - ../../base/miniflux
+  - certificate.yaml
+  - slo.yaml
+  - ingress.yaml
+  - ../../../shared/resourcequotas/default.yaml
+patches:
+- path: database-patch.yaml
+- path: deployment-patch.yaml
+  target:
+    group: apps
+    version: v1
+    kind: Deployment
+    name: miniflux
+
+commonLabels:
+  app.kubernetes.io/name: miniflux
+  app.kubernetes.io/instance: miniflux
\ No newline at end of file
diff --git a/apps/k8s01/miniflux/secret.yaml b/apps/k8s01/miniflux/secret.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f2eb2ddf05beaa8ded738d2d23b078721c3a0343
--- /dev/null
+++ b/apps/k8s01/miniflux/secret.yaml
@@ -0,0 +1,123 @@
+apiVersion: v1
+kind: Secret
+metadata:
+    name: miniflux-config
+type: Opaque
+stringData:
+    OAUTH2_OIDC_DISCOVERY_ENDPOINT: ENC[AES256_GCM,data:LPdHWyF8gKzn+vP3Eyv4xSbcdUfGGOSoP/4wV0wWNm9AGKH9Uku0u4hOFr6bFcU0vcPm63ufcP0=,iv:/aixCgGYiXwMZlQ45FeGu1cYT7blUNkEJt4M631SInE=,tag:FzkE1xKsd8+PCz5I4wGG9g==,type:str]
+    OAUTH2_REDIRECT_URL: ENC[AES256_GCM,data:P2CRt6tUafc1OA3C5vQuWhc17JIAeY8XSVCjkn0uiWXd2AZTNo9C5Iaqq7MLZQr6jwnbrVfV9orrU1E=,iv:KG9X/JToBgs2A3r6cgJgIt036oH+9d1Qh+9VVLXq7cA=,tag:IjkV8fT4sxYEsuqRUATGyw==,type:str]
+    OAUTH2_CLIENT_SECRET_FILE: ENC[AES256_GCM,data:Ga3GMNN6j1eK6NZqcM7l7NMl+g8KR/p2U64EQwpdKMjLz54=,iv:pTqNOUxms7cuipd6CM4pq9zl3azVywi8wNt32dc35q0=,tag:fV7zXi9GGcAUOU91yXNbLg==,type:str]
+    OAUTH2_CLIENT_ID_FILE: ENC[AES256_GCM,data:JOQRsoODMtm6dg1f9yYQg1OnFOAt2951raCWsaNsDg==,iv:If+1mPzQ5lJ2yBxIAhLd+q+fvr5tiFErSoJw7I1oibE=,tag:JTvtX7VHtMUR6yeD1IzIqw==,type:str]
+sops:
+    kms: []
+    gcp_kms: []
+    azure_kv: []
+    hc_vault: []
+    age: []
+    lastmodified: "2024-02-04T23:40:55Z"
+    mac: ENC[AES256_GCM,data:GTIJ4Ttl9KM+1m/8Mr3wQb9UzTY0vZzRyCxpqRiu0nUoRUpLh1PlRgqnjGfGWnTwbnV2iCk5RypLRrbpRipWUI/eMfTdelhVw2FwutTVwwAL+12o/rHQ4HCNztpTu6NML7vn4PZ0Sa3gOfbVTdRn2eaZecPhHJjtVUea2q0edq0=,iv:pvLpJxgaPuVtuseWA7jzTuVveGJhNHZ6Doc5EXMM9Eo=,tag:YwkvT5Wbq+zJGLNhrck+Hg==,type:str]
+    pgp:
+        - created_at: "2022-03-22T22:26:35Z"
+          enc: |-
+            -----BEGIN PGP MESSAGE-----
+
+            wcFMA7kpg2bgzVHcARAApcdDAfEgx93xGtkm4f7xTuRhvUyl8lw85rIHbWcAveYU
+            ayU88OLaoQyeZDZkOXbtxMHpry8GbId6vPAJ7KflT2eMP0A4uQGSSCQO6+5QcaYg
+            sbO/zT4vdprN7icLbvmmoK2Dh+hOo5Z7/7YGmdJfaaATzT2BGL/cVS1bonI83vXR
+            lzlW/DglIe7oNEKGVT5vWR5uGvq/dJwSRe/34eutEnJuV30imxHOcpxy3uXJFFXJ
+            3eKTk8dNLz3UE3IeUjbFdPFZYU+grOAOOCZRK0IOYFn+SF7E3dewgiwEdaXzz3gK
+            /6aEMEmf5vyVqn9jOaqZhKRqE7tW5HnhwIIlxcMPhkLVZvYf4F2EDA5f12C2hdp0
+            s7fFhU7v5GgFaHMJuaWVPxDnWTrNIst9bgeJv/N4RVfrLifrZJcqa9lE8ou0iCr5
+            dLi9d6UjsgWAREIViz+Uz7dJQ9QeJ6PGYgg/xgf0ihJFG7sx+TBG58DKb3G3tyUV
+            8hfK8Ou9m+zYnd13mJ2mV3rY0rmXusT+NcqTG2G4bBG5NimGpJS3rO7tAjjp/8sN
+            hMM46ay0vVTUXx1FwmjUFDG1e4sc7fKxTaCBizMjeUfZpAOiy/10YQmrFHBsftpo
+            K5j0nFMoG9NeO+2ffEmLhRtxvMe3WpINk7du3F624rYIGCB0aNUP69FCeJKuUQHS
+            5gH5AwnxOAtQakDksfLxJhUG1NlaS0iAFkZkTTibvOJwsY9L/scDDQlseb5zBKaZ
+            sOPwmn6hL4KavxF9BPG33ILkZKbkcvlaTlAMMY3iBs+MZeIB4+i/AA==
+            =SQqg
+            -----END PGP MESSAGE-----
+          fp: 286791FB6648539775DB31B8FCB98C2A3EC6F601
+        - created_at: "2022-03-22T22:26:35Z"
+          enc: |
+            -----BEGIN PGP MESSAGE-----
+
+            hQIMA4oYbIHZIrAPAQ//fGGoDT5KfsG/o6r5xhDHSc0IFH6zT2TFIB6TuA5SwHfV
+            8t3IeKD0bE//4f8AxGAVocw+AetolwrQL/Tl+n0UV9P44Jeh5VlCAGltHcowR53o
+            zdjS3+i9K3OOvQFhF+aYrPcnc+aTn9KbptHCam0w+Lr2UkYSAPAZHsBcoMp24mHX
+            6A+5kP1kaRzFzEn4TCNeTt13W1AsJIoSagkBWfYRBkRPk1OzGOuYqX6yeqj7a0kM
+            8uiloTQgWOiBSOyRtxUJi87CTrMXyb0F2E9HMyhgRnzF0YX0ZU0UVG8MNdRL8eFD
+            WYY68OK7DQw3zlJubscYQ2jltxKcq5g9qUCw/sXaNurtohIx9UeaHtfp036EMb22
+            5StgGEnBirUzfSrQGT3kuj20lcMtQAr/d1UsmQNjB36eOZSrx0m80pO8JVYL62/O
+            HLYnAHU52aAPtE7brNEVg4yRLCbWyVY3Z3H9OaTVXwNIMFoMEgkHHnNlsb+1ZnhV
+            cStKMO3H6W8eXQi3VGIVNhuC1ltsxHQL1I22Kr41JEnuaB9Jy5bsEbrO4XGyDdte
+            hMI8Gx+0KZAMlKuZKLS6sMa4oVnQTy8w20PtVrrS0zDrQRPpxBrOgzjrNeMj9FpS
+            q/efiCAOBc8eVd8N/7j66UItwrysfmIfsHWfoPotS7F6WmUHeAyoWjfcvTZyd4bU
+            ZgEJAhAtdCnHNvUSl5O9XZuSu51pRwj+O72kZXRSJWv7GTT9dsRfuM5Dy9A/tuVI
+            BuZraI4JyAWb2KbkM6onp3Rh9IcLuzqEYm/ETktxTtO1HlcVPJ2NMcFgTCzaIGX9
+            +rtkG7tPbA==
+            =tvBa
+            -----END PGP MESSAGE-----
+          fp: B137EE1549DFAF960DD1E2B15147025FB9F09E07
+    encrypted_regex: ^(data|stringData|email|dnsZones?|dnsNames?|hosts?|tang|externalURL|.*-secret|.*-url|.*Secrets?|.*-domain|password|subjects|node|apiURL|.*(S|s)erverNames?|.*SecretKey)$
+    version: 3.7.3
+---
+apiVersion: v1
+kind: Secret
+metadata:
+    name: miniflux-oauth2
+type: Opaque
+stringData:
+    client_id: ENC[AES256_GCM,data:UG7l/yGuJIM=,iv:B5nfhOTZ92t5gtm6qgpMBtHvZOiwUhg7ROtktTyocRs=,tag:JsVELl1JYkkTB2Y50RV8Dg==,type:str]
+    client_secret: ENC[AES256_GCM,data:XZAUm0l6p2FjkeW6la6tDcRKmKA8a3cYykm1gv5F58A=,iv:c7At/DkAV71ed7x/LCS2NI6tnX1/E1gy5MuQSjwHBmE=,tag:B86HqNBPFehEWW/kbWUN4g==,type:str]
+sops:
+    kms: []
+    gcp_kms: []
+    azure_kv: []
+    hc_vault: []
+    age: []
+    lastmodified: "2024-02-04T23:40:55Z"
+    mac: ENC[AES256_GCM,data:GTIJ4Ttl9KM+1m/8Mr3wQb9UzTY0vZzRyCxpqRiu0nUoRUpLh1PlRgqnjGfGWnTwbnV2iCk5RypLRrbpRipWUI/eMfTdelhVw2FwutTVwwAL+12o/rHQ4HCNztpTu6NML7vn4PZ0Sa3gOfbVTdRn2eaZecPhHJjtVUea2q0edq0=,iv:pvLpJxgaPuVtuseWA7jzTuVveGJhNHZ6Doc5EXMM9Eo=,tag:YwkvT5Wbq+zJGLNhrck+Hg==,type:str]
+    pgp:
+        - created_at: "2022-03-22T22:26:35Z"
+          enc: |-
+            -----BEGIN PGP MESSAGE-----
+
+            wcFMA7kpg2bgzVHcARAApcdDAfEgx93xGtkm4f7xTuRhvUyl8lw85rIHbWcAveYU
+            ayU88OLaoQyeZDZkOXbtxMHpry8GbId6vPAJ7KflT2eMP0A4uQGSSCQO6+5QcaYg
+            sbO/zT4vdprN7icLbvmmoK2Dh+hOo5Z7/7YGmdJfaaATzT2BGL/cVS1bonI83vXR
+            lzlW/DglIe7oNEKGVT5vWR5uGvq/dJwSRe/34eutEnJuV30imxHOcpxy3uXJFFXJ
+            3eKTk8dNLz3UE3IeUjbFdPFZYU+grOAOOCZRK0IOYFn+SF7E3dewgiwEdaXzz3gK
+            /6aEMEmf5vyVqn9jOaqZhKRqE7tW5HnhwIIlxcMPhkLVZvYf4F2EDA5f12C2hdp0
+            s7fFhU7v5GgFaHMJuaWVPxDnWTrNIst9bgeJv/N4RVfrLifrZJcqa9lE8ou0iCr5
+            dLi9d6UjsgWAREIViz+Uz7dJQ9QeJ6PGYgg/xgf0ihJFG7sx+TBG58DKb3G3tyUV
+            8hfK8Ou9m+zYnd13mJ2mV3rY0rmXusT+NcqTG2G4bBG5NimGpJS3rO7tAjjp/8sN
+            hMM46ay0vVTUXx1FwmjUFDG1e4sc7fKxTaCBizMjeUfZpAOiy/10YQmrFHBsftpo
+            K5j0nFMoG9NeO+2ffEmLhRtxvMe3WpINk7du3F624rYIGCB0aNUP69FCeJKuUQHS
+            5gH5AwnxOAtQakDksfLxJhUG1NlaS0iAFkZkTTibvOJwsY9L/scDDQlseb5zBKaZ
+            sOPwmn6hL4KavxF9BPG33ILkZKbkcvlaTlAMMY3iBs+MZeIB4+i/AA==
+            =SQqg
+            -----END PGP MESSAGE-----
+          fp: 286791FB6648539775DB31B8FCB98C2A3EC6F601
+        - created_at: "2022-03-22T22:26:35Z"
+          enc: |
+            -----BEGIN PGP MESSAGE-----
+
+            hQIMA4oYbIHZIrAPAQ//fGGoDT5KfsG/o6r5xhDHSc0IFH6zT2TFIB6TuA5SwHfV
+            8t3IeKD0bE//4f8AxGAVocw+AetolwrQL/Tl+n0UV9P44Jeh5VlCAGltHcowR53o
+            zdjS3+i9K3OOvQFhF+aYrPcnc+aTn9KbptHCam0w+Lr2UkYSAPAZHsBcoMp24mHX
+            6A+5kP1kaRzFzEn4TCNeTt13W1AsJIoSagkBWfYRBkRPk1OzGOuYqX6yeqj7a0kM
+            8uiloTQgWOiBSOyRtxUJi87CTrMXyb0F2E9HMyhgRnzF0YX0ZU0UVG8MNdRL8eFD
+            WYY68OK7DQw3zlJubscYQ2jltxKcq5g9qUCw/sXaNurtohIx9UeaHtfp036EMb22
+            5StgGEnBirUzfSrQGT3kuj20lcMtQAr/d1UsmQNjB36eOZSrx0m80pO8JVYL62/O
+            HLYnAHU52aAPtE7brNEVg4yRLCbWyVY3Z3H9OaTVXwNIMFoMEgkHHnNlsb+1ZnhV
+            cStKMO3H6W8eXQi3VGIVNhuC1ltsxHQL1I22Kr41JEnuaB9Jy5bsEbrO4XGyDdte
+            hMI8Gx+0KZAMlKuZKLS6sMa4oVnQTy8w20PtVrrS0zDrQRPpxBrOgzjrNeMj9FpS
+            q/efiCAOBc8eVd8N/7j66UItwrysfmIfsHWfoPotS7F6WmUHeAyoWjfcvTZyd4bU
+            ZgEJAhAtdCnHNvUSl5O9XZuSu51pRwj+O72kZXRSJWv7GTT9dsRfuM5Dy9A/tuVI
+            BuZraI4JyAWb2KbkM6onp3Rh9IcLuzqEYm/ETktxTtO1HlcVPJ2NMcFgTCzaIGX9
+            +rtkG7tPbA==
+            =tvBa
+            -----END PGP MESSAGE-----
+          fp: B137EE1549DFAF960DD1E2B15147025FB9F09E07
+    encrypted_regex: ^(data|stringData|email|dnsZones?|dnsNames?|hosts?|tang|externalURL|.*-secret|.*-url|.*Secrets?|.*-domain|password|subjects|node|apiURL|.*(S|s)erverNames?|.*SecretKey)$
+    version: 3.7.3
diff --git a/apps/k8s01/miniflux/slo.yaml b/apps/k8s01/miniflux/slo.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ea03571b1ea53bee0c294f0f15c9eebd167c528f
--- /dev/null
+++ b/apps/k8s01/miniflux/slo.yaml
@@ -0,0 +1,40 @@
+apiVersion: sloth.slok.dev/v1
+kind: PrometheusServiceLevel
+metadata:
+  name: requests-miniflux
+spec:
+  service: "miniflux"
+  slos:
+    - name: "requests-availability"
+      objective: 98
+      description: "Miniflux: SLO based on availability for HTTP request responses."
+      sli:
+        events:
+          errorQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="miniflux",ingress="miniflux",status=~"(5..|429)"}[{{.window}}])) OR vector(0)
+          totalQuery: sum(rate(nginx_ingress_controller_requests{exported_namespace="miniflux",ingress="miniflux"}[{{.window}}])) > 0 OR vector(1)
+      alerting:
+        name: MinifluxHighErrorRate
+        labels:
+          category: "availability"
+        annotations:
+          summary: "High error rate on 'blog' requests responses"
+    - name: "requests-latency"
+      objective: 95
+      description: "Miniflux: SLO based on latency for HTTP request responses. Warns if requests take longer than 250ms. When responses are slower than 200ms they become noticable slow."
+      labels:
+        category: latency
+      sli:
+        events:
+          errorQuery: |
+            (
+              sum(rate(nginx_ingress_controller_request_duration_seconds_count{exported_namespace="miniflux",ingress="miniflux",method!="WATCH"}[{{.window}}]))
+              -
+              sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{exported_namespace="miniflux",ingress="miniflux",le="0.25",verb!="WATCH"}[{{.window}}]))
+            )
+          totalQuery: sum(rate(nginx_ingress_controller_request_duration_seconds_count{exported_namespace="miniflux",ingress="miniflux",method!="WATCH"}[{{.window}}])) > 0 OR vector(1)
+      alerting:
+        name: MinifluxLatencyAlert
+        labels:
+          category: "latency"
+        annotations:
+          summary: "Slow responses on 'miniflux' requests responses. More than 1% take more than 250ms."