reworked gatus

This commit is contained in:
Erik Grobecker 2024-12-29 14:14:54 +01:00
parent c8b263f67e
commit 2bc1ce5a29
Signed by: Erik
GPG key ID: 80D020D0ABBD3FB2
5 changed files with 139 additions and 55 deletions

5
.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,5 @@
{
"recommendations": [
"gruntfuggly.todo-tree"
]
}

View file

@ -10,3 +10,11 @@ services:
labels:
- "diun.enable=true"
restart: always
networks:
- proxy
networks:
proxy:
external: true
minio:
external: true

View file

@ -3,103 +3,118 @@ storage:
path: /data/data.db
endpoints:
- name: dashy
group: core
- name: homepage
group: exposed
url: "https://grobecker.me"
interval: 5m
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: forgejo
group: microservices
group: exposed
url: "https://git.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: stirling
group: microservices
- name: stirling-pdf
group: exposed
url: "https://pdf.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: memos
group: microservices
group: exposed
url: "https://memos.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: Seafile
group: microservices
- name: seafile
group: exposed
url: "https://files.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: archivebox
group: microservices
group: exposed
url: "https://archive.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: hedgedoc
group: microservices
group: exposed
url: "https://md.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: nextcloud
group: microservices
url: "https://nx41088.your-storageshare.de"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: it-tools
group: microservices
group: exposed
url: "https://tools.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: ntfy
group: microservices
group: exposed
url: "https://ntfy.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: vaultwarden
group: microservices
group: exposed
url: "https://vault.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: mealie
group: exposed
url: "https://rezepte.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: actual-budget
group: exposed
url: "https://actual.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: nextcloud
group: external
url: "https://nx41088.your-storageshare.de"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
# - name: minio
# group: internal
# url: "http://minio:9001"
# conditions:
# - "[STATUS] == 200"
# - name: beszel
# group: exposed
# url: "https://beszel.grobecker.me"
# conditions:
# - "[STATUS] == 200"
# - "[CERTIFICATE_EXPIRATION] > 48h"
# - name: dozzle
# group: exposed
# url: "https://dozzle.grobecker.me"
# conditions:
# - "[STATUS] == 200"
# - "[CERTIFICATE_EXPIRATION] > 48h"
- name: authelia
group: exposed
url: "https://auth.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: webui
group: mail
group: mail-stack
url: "https://mail.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: starttls-smtp
group: mail
group: mail-stack
url: "starttls://mail.grobecker.me:587"
interval: 30m
client:
@ -110,7 +125,7 @@ endpoints:
alerts:
- type: ntfy
- name: tls-imap
group: mail
group: mail-stack
url: "tls://mail.grobecker.me:993"
interval: 30m
client:
@ -122,7 +137,7 @@ endpoints:
- type: ntfy
- name: mail-ipv4-dns-query
url: "8.8.8.8" # Address of the DNS server to use
group: mail
group: mail-stack
dns:
query-name: "mail.grobecker.me"
query-type: "A"
@ -133,7 +148,7 @@ endpoints:
- type: ntfy
- name: mail-ipv6-dns-query
url: "8.8.8.8" # Address of the DNS server to use
group: mail
group: mail-stack
dns:
query-name: "mail.grobecker.me"
query-type: "AAAA"
@ -144,7 +159,7 @@ endpoints:
- type: ntfy
- name: mail-mx-dns-query
url: "8.8.8.8" # Address of the DNS server to use
group: mail
group: mail-stack
dns:
query-name: "grobecker.me"
query-type: "MX"
@ -154,11 +169,9 @@ endpoints:
alerts:
- type: ntfy
alerting:
ntfy:
url: "https://ntfy.grobecker.me"
topic: "status"
priority: 2
default-alert:
failure-threshold: 3
send-on-resolved: true
- name: navidrome
group: media
url: "https://music.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"

53
docs/gatus.md Normal file
View file

@ -0,0 +1,53 @@
# Gatus
## Currently monitored services
- homepage
- forgejo
- stirling-pdf
- memos
- seafile
- archivebox
- hedgedoc
- it-tools
- ntfy
- vaultwarden
- minio
- mealie
- beszel
- dozzle
- actual-budget
- navidrome
- authelia
- nextcloud
- mailcow (several checks)
## Categories
old:
- core
- microservices
- mail
reworked:
- exposed (like what the user can access)
- internal (what the user can't _directly_ access or is meant for admins)
- external (what isn't hosted by me directly)
- mail-stack (an extra category for my mail stuff)
- media (services that are media-related and are only accessible by certain people → **not public**)
## Templates
website:
```yaml
endpoints:
- name: webui
group: mail
url: "https://mail.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
```

View file

@ -14,3 +14,8 @@
- memcached updated (project)
- postgres updated (mealie)
- removed miniflux
- minio:
- removed ports
- added gatus to network
- gatus:
- reworked config (see [here](/docs/gatus.md))