ntfy: controllers: main: type: deployment replicas: 1 strategy: Recreate containers: main: image: repository: binwiederhier/ntfy tag: v2.21.0@sha256:2b9e12d56a538f4402da51328eeca02696c4b207ab7fbe031c27e51a22ca9b86 args: ["serve"] env: - name: TZ value: America/Chicago - name: NTFY_BASE_URL value: https://ntfy.alexlebens.net - name: NTFY_LISTEN_HTTP value: :80 - name: NTFY_CACHE_DURATION value: 36h - name: NTFY_BEHIND_PROXY value: true - name: NTFY_DATABASE_URL valueFrom: secretKeyRef: name: ntfy-postgresql-18-cluster-app key: uri - name: NTFY_ATTACHMENT_CACHE_DIR valueFrom: secretKeyRef: name: ntfy-config-secret key: attachment-cache-dir - name: NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT value: 10G - name: NTFY_ATTACHMENT_FILE_SIZE_LIMIT value: 150M - name: NTFY_ATTACHMENT_EXPIRY_DURATION value: 72h - name: NTFY_ENABLE_SIGNUP value: false - name: NTFY_ENABLE_LOGIN value: true - name: NTFY_ENABLE_RESERVATIONS value: false - name: NTFY_AUTH_DEFAULT_ACCESS value: deny-all - name: NTFY_METRICS_LISTEN_HTTP value: :9090 - name: NTFY_LOG_LEVEL value: info probes: liveness: enabled: true custom: true spec: httpGet: path: /v1/health port: 80 initialDelaySeconds: 60 periodSeconds: 60 successThreshold: 1 timeoutSeconds: 30 resources: requests: cpu: 10m memory: 40Mi debug: type: deployment replicas: 1 strategy: Recreate containers: main: image: repository: ubuntu tag: resolute-20260312 command: - "sleep" - "infinity" resources: requests: cpu: 10m memory: 32Mi service: main: controller: main ports: http: port: 80 targetPort: 80 metrics: port: 9090 targetPort: 9090 serviceMonitor: main: selector: matchLabels: app.kubernetes.io/name: ntfy app.kubernetes.io/instance: ntfy serviceName: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}' endpoints: - port: metrics interval: 3m scrapeTimeout: 1m path: /metrics route: main: kind: HTTPRoute parentRefs: - group: gateway.networking.k8s.io kind: Gateway name: traefik-gateway namespace: traefik hostnames: - ntfy.alexlebens.net rules: - backendRefs: - name: ntfy port: 80 matches: - path: type: PathPrefix value: / persistence: cache: storageClass: ceph-block accessMode: ReadWriteOnce size: 5Gi advancedMounts: main: main: - path: /var/cache/ntfy readOnly: false postgres-18-cluster: mode: recovery recovery: method: objectStore objectStore: index: 1 backup: objectStore: - name: garage-local index: 1 destinationBucket: postgres-backups externalSecretCredentialPath: /garage/home-infra/postgres-backups isWALArchiver: true scheduledBackups: - name: live-backup suspend: false immediate: true schedule: "0 15 14 * * *" backupName: garage-local