storage: type: postgres path: "${GATUS_DATABASE_URL}" web: read-buffer-size: 32768 connectivity: checker: target: 1.1.1.1:53 interval: 60s external-endpoints: - name: Database group: Services token: "${GATUS_TOKEN}" alerts: - type: email - name: Cache group: Services token: "${GATUS_TOKEN}" alerts: - type: email - name: Gatekeeper group: Services token: "${GATUS_TOKEN}" alerts: - type: email endpoints: - name: Domain group: Expirations url: "https://pkmntrade.club" interval: 1h conditions: - "[DOMAIN_EXPIRATION] > 720h" alerts: - type: email - name: Certificate group: Expirations url: "https://pkmntrade.club" interval: 1h conditions: - "[CERTIFICATE_EXPIRATION] > 240h" alerts: - type: email - name: Cloudflare group: DNS url: "1.1.1.1" interval: 60s dns: query-name: "pkmntrade.club" query-type: "A" conditions: - "[DNS_RCODE] == NOERROR" alerts: - type: email - name: Google group: DNS url: "8.8.8.8" interval: 60s dns: query-name: "pkmntrade.club" query-type: "A" conditions: - "[DNS_RCODE] == NOERROR" alerts: - type: email - name: Quad9 group: DNS url: "9.9.9.9" interval: 60s dns: query-name: "pkmntrade.club" query-type: "A" conditions: - "[DNS_RCODE] == NOERROR" alerts: - type: email - name: Load Balancer group: Services url: "http://loba/" interval: 60s conditions: - "[STATUS] == 200" - "[BODY] == OK/HEALTHY" alerts: - type: email - name: Feedback group: Main url: "http://pkmntrade-club-feedback-1:3000/" interval: 60s conditions: - "[STATUS] == 200" alerts: - type: email {{ $all_containers := . }} {{ $web_containers := list }} {{ $web_staging_containers := list }} {{ range $container := $all_containers }} {{ $serviceLabel := index $container.Labels "com.docker.compose.service" }} {{ if eq $serviceLabel "web" }} {{ $web_containers = append $web_containers $container }} {{ end }} {{ if eq $serviceLabel "web-staging" }} {{ $web_staging_containers = append $web_staging_containers $container }} {{ end }} {{ end }} {{ $web_containers = sortObjectsByKeysAsc $web_containers "Name" }} {{ $web_staging_containers = sortObjectsByKeysAsc $web_staging_containers "Name" }} {{ range $container := $web_containers }} {{ $containerNumber := index $container.Labels "com.docker.compose.container-number" }} - name: "Web Worker {{ $containerNumber }}" group: Main url: "http://{{ $container.Name }}:8000/health/" headers: Host: "pkmntrade.club" interval: 60s conditions: - "[STATUS] == 200" # - "[BODY] == OK/HEALTHY" alerts: - type: email {{ end }} {{ range $container := $web_staging_containers }} {{ $containerNumber := index $container.Labels "com.docker.compose.container-number" }} - name: "Web Worker {{ $containerNumber }}" group: Staging url: "http://{{ $container.Name }}:8000/health/" headers: Host: "staging.pkmntrade.club" interval: 60s conditions: - "[STATUS] == 200" # - "[BODY] == OK/HEALTHY" alerts: - type: email {{ end }} alerting: email: from: "${GATUS_SMTP_FROM}" username: "${GATUS_SMTP_USER}" password: "${GATUS_SMTP_PASS}" host: "${GATUS_SMTP_HOST}" port: ${GATUS_SMTP_PORT} to: "${GATUS_SMTP_TO}" client: insecure: false default-alert: enabled: true failure-threshold: 3 success-threshold: 2 send-on-resolved: true