386 lines
10 KiB
YAML
386 lines
10 KiB
YAML
gatus:
|
|
deployment:
|
|
strategy: Recreate
|
|
readinessProbe:
|
|
enabled: true
|
|
livenessProbe:
|
|
enabled: true
|
|
image:
|
|
repository: ghcr.io/twin/gatus
|
|
tag: v5.20.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
|
|
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"
|