387 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			387 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| gatus:
 | |
|   deployment:
 | |
|     strategy: Recreate
 | |
|   readinessProbe:
 | |
|     enabled: true
 | |
|   livenessProbe:
 | |
|     enabled: true
 | |
|   image:
 | |
|     repository: ghcr.io/twin/gatus
 | |
|     tag: v5.21.0
 | |
|   annotations:
 | |
|     reloader.stakater.com/auto: "true"
 | |
|   service:
 | |
|     type: ClusterIP
 | |
|     port: 80
 | |
|     targetPort: 8080
 | |
|     portName: http
 | |
|   ingress:
 | |
|     enabled: false
 | |
|   env:
 | |
|     NTFY_TOKEN:
 | |
|       valueFrom:
 | |
|         secretKeyRef:
 | |
|           name: gatus-config-secret
 | |
|           key: NTFY_TOKEN
 | |
|     OIDC_CLIENT_ID:
 | |
|       valueFrom:
 | |
|         secretKeyRef:
 | |
|           name: gatus-oidc-secret
 | |
|           key: OIDC_CLIENT_ID
 | |
|     OIDC_CLIENT_SECRET:
 | |
|       valueFrom:
 | |
|         secretKeyRef:
 | |
|           name: gatus-oidc-secret
 | |
|           key: OIDC_CLIENT_SECRET
 | |
|     POSTGRES_USER:
 | |
|       valueFrom:
 | |
|         secretKeyRef:
 | |
|           name: gatus-postgresql-17-cluster-app
 | |
|           key: username
 | |
|     POSTGRES_PASSWORD:
 | |
|       valueFrom:
 | |
|         secretKeyRef:
 | |
|           name: gatus-postgresql-17-cluster-app
 | |
|           key: password
 | |
|     POSTGRES_HOST:
 | |
|       valueFrom:
 | |
|         secretKeyRef:
 | |
|           name: gatus-postgresql-17-cluster-app
 | |
|           key: host
 | |
|     POSTGRES_PORT:
 | |
|       valueFrom:
 | |
|         secretKeyRef:
 | |
|           name: gatus-postgresql-17-cluster-app
 | |
|           key: port
 | |
|     POSTGRES_DB:
 | |
|       valueFrom:
 | |
|         secretKeyRef:
 | |
|           name: gatus-postgresql-17-cluster-app
 | |
|           key: dbname
 | |
|   resources:
 | |
|     requests:
 | |
|       cpu: 10m
 | |
|       memory: 128Mi
 | |
|   persistence:
 | |
|     enabled: true
 | |
|     size: 1Gi
 | |
|     mountPath: /data
 | |
|     accessModes:
 | |
|       - ReadWriteOnce
 | |
|     finalizers:
 | |
|       - kubernetes.io/pvc-protection
 | |
|     storageClassName: ceph-block
 | |
|   serviceMonitor:
 | |
|     enabled: true
 | |
|     interval: 1m
 | |
|     path: /metrics
 | |
|     scheme: http
 | |
|     scrapeTimeout: 30s
 | |
|   networkPolicy:
 | |
|     enabled: false
 | |
|   config:
 | |
|     metrics: true
 | |
|     connectivity:
 | |
|       checker:
 | |
|         target: 1.1.1.1:53
 | |
|         interval: 60s
 | |
|     alerting:
 | |
|       ntfy:
 | |
|         topic: "gatus-alerts"
 | |
|         priority: 3
 | |
|         url: http://ntfy.ntfy
 | |
|         token: ${NTFY_TOKEN}
 | |
|         default-alert:
 | |
|           failure-threshold: 5
 | |
|           send-on-resolved: true
 | |
|         click: "https://gatus.alexlebens.net"
 | |
|     security:
 | |
|       oidc:
 | |
|         issuer-url: https://authentik.alexlebens.net/application/o/gatus/
 | |
|         client-id: ${OIDC_CLIENT_ID}
 | |
|         client-secret: ${OIDC_CLIENT_SECRET}
 | |
|         redirect-url: https://gatus.alexlebens.net/authorization-code/callback
 | |
|         scopes: [openid]
 | |
|     storage:
 | |
|       type: postgres
 | |
|       path: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}?sslmode=disable"
 | |
|     default-endpoint: &defaults
 | |
|       group: core
 | |
|       conditions:
 | |
|         - "[STATUS] == 200"
 | |
|         - "[CERTIFICATE_EXPIRATION] > 240h"
 | |
|       interval: 30s
 | |
|       alerts:
 | |
|         - type: ntfy
 | |
| 
 | |
|     endpoints:
 | |
|       - name: plex
 | |
|         url: http://plex.alexlebens.net
 | |
|         <<: *defaults
 | |
|         conditions:
 | |
|           - "[STATUS] == 401"
 | |
|       - name: overseerr
 | |
|         url: https://overseerr.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: jellyfin
 | |
|         url: https://jellyfin.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: yamtrack
 | |
|         url: https://yamtrack.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: tubearchivist
 | |
|         url: https://tubearchivist.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: immich
 | |
|         url: https://immich.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: photoview
 | |
|         url: https://photoview.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: audiobookshelf
 | |
|         url: https://audiobookshelf.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: calibre
 | |
|         url: https://calibre.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: home-assistant
 | |
|         url: https://home-assistant.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: actual
 | |
|         url: https://actual.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: eigenfocus
 | |
|         url: https://eigenfocus.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: ollama
 | |
|         url: https://ollama.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: searxng
 | |
|         url: https://searxng.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: roundcube
 | |
|         url: https://mail.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: kiwix
 | |
|         url: https://kiwix.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: gitea
 | |
|         url: https://gitea.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: home-assistant-code-server
 | |
|         url: https://home-assistant-code-server.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: argocd
 | |
|         url: https://argocd.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: argo-workflows
 | |
|         url: https://argo-workflows.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: headlamp
 | |
|         url: https://headlamp.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: hubble
 | |
|         url: https://hubble.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: grafana
 | |
|         url: https://grafana.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: prometheus
 | |
|         url: https://prometheus.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: alertmanager
 | |
|         url: https://alertmanager.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: tautulli
 | |
|         url: https://tautulli.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: jellystat
 | |
|         url: https://jellystat.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: authentik
 | |
|         url: https://authentik.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: stalwart
 | |
|         url: https://stalwart.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: traefik-cl01tl
 | |
|         url: https://traefik-cl01tl.alexlebens.net/dashboard/#/
 | |
|         <<: *defaults
 | |
|       - name: harbor
 | |
|         url: https://harbor.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: unifi
 | |
|         url: https://unifi.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: synology
 | |
|         url: https://synology.alexlebens.net
 | |
|         <<: *defaults
 | |
|         client:
 | |
|           insecure: true
 | |
|         conditions:
 | |
|           - "[CONNECTED] == true"
 | |
|       - name: hdhr
 | |
|         url: http://hdhr.alexlebens.net
 | |
|         <<: *defaults
 | |
|         conditions:
 | |
|           - "[STATUS] == 200"
 | |
|       - name: pikvm
 | |
|         url: https://pikvm.alexlebens.net/login/
 | |
|         <<: *defaults
 | |
|         client:
 | |
|           insecure: true
 | |
|         conditions:
 | |
|           - "[CONNECTED] == true"
 | |
|       - name: shelly
 | |
|         url: http://it05sp.alexlebens.net
 | |
|         <<: *defaults
 | |
|         conditions:
 | |
|           - "[STATUS] == 200"
 | |
|       - name: ceph
 | |
|         url: https://ceph.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: pgadmin
 | |
|         url: https://pgadmin.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: whodb
 | |
|         url: https://whodb.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: vault
 | |
|         url: https://vault.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: sonarr
 | |
|         url: https://sonarr.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: sonarr-4k
 | |
|         url: https://sonarr-4k.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: sonarr-anime
 | |
|         url: https://sonarr-anime.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: radarr
 | |
|         url: https://radarr.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: radarr-4k
 | |
|         url: https://radarr-4k.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: radarr-anime
 | |
|         url: https://radarr-anime.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: radarr-standup
 | |
|         url: https://radarr-standup.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: lidarr
 | |
|         url: https://lidarr.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: lidatube
 | |
|         url: https://lidatube.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: slskd
 | |
|         url: https://slskd.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: qbittorrent
 | |
|         url: https://qbittorrent.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: prowlarr
 | |
|         url: https://prowlarr.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: bazarr
 | |
|         url: https://bazarr.alexlebens.net
 | |
|         <<: *defaults
 | |
|         conditions:
 | |
|           - "[STATUS] == 401"
 | |
|       - name: huntarr
 | |
|         url: https://huntarr.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: calibre-downloader
 | |
|         url: https://calibre-downloader.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: tdarr
 | |
|         url: https://tdarr.alexlebens.net
 | |
|         <<: *defaults
 | |
|       - name: www
 | |
|         url: https://www.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|       - name: directus
 | |
|         url: https://directus.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|       - name: postiz
 | |
|         url: https://postiz.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         interval: 120s
 | |
|         group: external
 | |
|       - name: matrix
 | |
|         url: https://chat.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|       - name: outline
 | |
|         url: https://wiki.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|       - name: vaultwarden
 | |
|         url: https://passwords.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|       - name: karakeep
 | |
|         url: https://karakeep.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|       - name: freshrss
 | |
|         url: https://rss.alexlebens.dev/i/
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|         conditions:
 | |
|           - "[STATUS] == 401"
 | |
|       - name: gitea-external
 | |
|         url: https://gitea.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|       - name: codeserver
 | |
|         url: https://codeserver.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|       - name: public homepage
 | |
|         url: https://home.alexlebens.dev
 | |
|         <<: *defaults
 | |
|         group: external
 | |
|       - name: discord
 | |
|         group: public
 | |
|         url: https://discord.com/app
 | |
|         conditions:
 | |
|           - "[STATUS] == 200"
 | |
|           - "[RESPONSE_TIME] < 400"
 | |
|         interval: 10s
 | |
|       - name: reddit
 | |
|         group: public
 | |
|         url: https://reddit.com
 | |
|         conditions:
 | |
|           - "[STATUS] == 200"
 | |
|           - "[RESPONSE_TIME] < 400"
 | |
|         interval: 10s
 | |
| 
 | |
| postgres-17-cluster:
 | |
|   mode: standalone
 | |
|   cluster:
 | |
|     storage:
 | |
|       storageClass: local-path
 | |
|     walStorage:
 | |
|       storageClass: local-path
 | |
|     monitoring:
 | |
|       enabled: true
 | |
|       prometheusRule:
 | |
|         enabled: true
 | |
|   recovery:
 | |
|     method: objectStore
 | |
|     objectStore:
 | |
|       endpointURL: https://nyc3.digitaloceanspaces.com
 | |
|       destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/gatus/gatus-postgresql-17-cluster
 | |
|       recoveryIndex: 1
 | |
|   backup:
 | |
|     enabled: true
 | |
|     endpointURL: https://nyc3.digitaloceanspaces.com
 | |
|     destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/gatus/gatus-postgresql-17-cluster
 | |
|     backupIndex: 1
 | |
|     retentionPolicy: "7d"
 |