reworked gatus
This commit is contained in:
parent
c8b263f67e
commit
2bc1ce5a29
5 changed files with 139 additions and 55 deletions
5
.vscode/extensions.json
vendored
Normal file
5
.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
"gruntfuggly.todo-tree"
|
||||||
|
]
|
||||||
|
}
|
|
@ -10,3 +10,11 @@ services:
|
||||||
labels:
|
labels:
|
||||||
- "diun.enable=true"
|
- "diun.enable=true"
|
||||||
restart: always
|
restart: always
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
|
minio:
|
||||||
|
external: true
|
||||||
|
|
|
@ -3,103 +3,118 @@ storage:
|
||||||
path: /data/data.db
|
path: /data/data.db
|
||||||
|
|
||||||
endpoints:
|
endpoints:
|
||||||
- name: dashy
|
- name: homepage
|
||||||
group: core
|
group: exposed
|
||||||
url: "https://grobecker.me"
|
url: "https://grobecker.me"
|
||||||
interval: 5m
|
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
|
|
||||||
- name: forgejo
|
- name: forgejo
|
||||||
group: microservices
|
group: exposed
|
||||||
url: "https://git.grobecker.me"
|
url: "https://git.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
alerts:
|
- name: stirling-pdf
|
||||||
- type: ntfy
|
group: exposed
|
||||||
- name: stirling
|
|
||||||
group: microservices
|
|
||||||
url: "https://pdf.grobecker.me"
|
url: "https://pdf.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
alerts:
|
|
||||||
- type: ntfy
|
|
||||||
- name: memos
|
- name: memos
|
||||||
group: microservices
|
group: exposed
|
||||||
url: "https://memos.grobecker.me"
|
url: "https://memos.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
alerts:
|
- name: seafile
|
||||||
- type: ntfy
|
group: exposed
|
||||||
- name: Seafile
|
|
||||||
group: microservices
|
|
||||||
url: "https://files.grobecker.me"
|
url: "https://files.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
alerts:
|
|
||||||
- type: ntfy
|
|
||||||
- name: archivebox
|
- name: archivebox
|
||||||
group: microservices
|
group: exposed
|
||||||
url: "https://archive.grobecker.me"
|
url: "https://archive.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
alerts:
|
|
||||||
- type: ntfy
|
|
||||||
- name: hedgedoc
|
- name: hedgedoc
|
||||||
group: microservices
|
group: exposed
|
||||||
url: "https://md.grobecker.me"
|
url: "https://md.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[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
|
- name: it-tools
|
||||||
group: microservices
|
group: exposed
|
||||||
url: "https://tools.grobecker.me"
|
url: "https://tools.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
alerts:
|
|
||||||
- type: ntfy
|
|
||||||
- name: ntfy
|
- name: ntfy
|
||||||
group: microservices
|
group: exposed
|
||||||
url: "https://ntfy.grobecker.me"
|
url: "https://ntfy.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
alerts:
|
|
||||||
- type: ntfy
|
|
||||||
- name: vaultwarden
|
- name: vaultwarden
|
||||||
group: microservices
|
group: exposed
|
||||||
url: "https://vault.grobecker.me"
|
url: "https://vault.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
alerts:
|
- name: mealie
|
||||||
- type: ntfy
|
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
|
- name: webui
|
||||||
group: mail
|
group: mail-stack
|
||||||
url: "https://mail.grobecker.me"
|
url: "https://mail.grobecker.me"
|
||||||
conditions:
|
conditions:
|
||||||
- "[STATUS] == 200"
|
- "[STATUS] == 200"
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
- name: starttls-smtp
|
- name: starttls-smtp
|
||||||
group: mail
|
group: mail-stack
|
||||||
url: "starttls://mail.grobecker.me:587"
|
url: "starttls://mail.grobecker.me:587"
|
||||||
interval: 30m
|
interval: 30m
|
||||||
client:
|
client:
|
||||||
|
@ -110,7 +125,7 @@ endpoints:
|
||||||
alerts:
|
alerts:
|
||||||
- type: ntfy
|
- type: ntfy
|
||||||
- name: tls-imap
|
- name: tls-imap
|
||||||
group: mail
|
group: mail-stack
|
||||||
url: "tls://mail.grobecker.me:993"
|
url: "tls://mail.grobecker.me:993"
|
||||||
interval: 30m
|
interval: 30m
|
||||||
client:
|
client:
|
||||||
|
@ -122,7 +137,7 @@ endpoints:
|
||||||
- type: ntfy
|
- type: ntfy
|
||||||
- name: mail-ipv4-dns-query
|
- name: mail-ipv4-dns-query
|
||||||
url: "8.8.8.8" # Address of the DNS server to use
|
url: "8.8.8.8" # Address of the DNS server to use
|
||||||
group: mail
|
group: mail-stack
|
||||||
dns:
|
dns:
|
||||||
query-name: "mail.grobecker.me"
|
query-name: "mail.grobecker.me"
|
||||||
query-type: "A"
|
query-type: "A"
|
||||||
|
@ -133,7 +148,7 @@ endpoints:
|
||||||
- type: ntfy
|
- type: ntfy
|
||||||
- name: mail-ipv6-dns-query
|
- name: mail-ipv6-dns-query
|
||||||
url: "8.8.8.8" # Address of the DNS server to use
|
url: "8.8.8.8" # Address of the DNS server to use
|
||||||
group: mail
|
group: mail-stack
|
||||||
dns:
|
dns:
|
||||||
query-name: "mail.grobecker.me"
|
query-name: "mail.grobecker.me"
|
||||||
query-type: "AAAA"
|
query-type: "AAAA"
|
||||||
|
@ -144,7 +159,7 @@ endpoints:
|
||||||
- type: ntfy
|
- type: ntfy
|
||||||
- name: mail-mx-dns-query
|
- name: mail-mx-dns-query
|
||||||
url: "8.8.8.8" # Address of the DNS server to use
|
url: "8.8.8.8" # Address of the DNS server to use
|
||||||
group: mail
|
group: mail-stack
|
||||||
dns:
|
dns:
|
||||||
query-name: "grobecker.me"
|
query-name: "grobecker.me"
|
||||||
query-type: "MX"
|
query-type: "MX"
|
||||||
|
@ -154,11 +169,9 @@ endpoints:
|
||||||
alerts:
|
alerts:
|
||||||
- type: ntfy
|
- type: ntfy
|
||||||
|
|
||||||
alerting:
|
- name: navidrome
|
||||||
ntfy:
|
group: media
|
||||||
url: "https://ntfy.grobecker.me"
|
url: "https://music.grobecker.me"
|
||||||
topic: "status"
|
conditions:
|
||||||
priority: 2
|
- "[STATUS] == 200"
|
||||||
default-alert:
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
failure-threshold: 3
|
|
||||||
send-on-resolved: true
|
|
||||||
|
|
53
docs/gatus.md
Normal file
53
docs/gatus.md
Normal 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"
|
||||||
|
```
|
|
@ -14,3 +14,8 @@
|
||||||
- memcached updated (project)
|
- memcached updated (project)
|
||||||
- postgres updated (mealie)
|
- postgres updated (mealie)
|
||||||
- removed miniflux
|
- removed miniflux
|
||||||
|
- minio:
|
||||||
|
- removed ports
|
||||||
|
- added gatus to network
|
||||||
|
- gatus:
|
||||||
|
- reworked config (see [here](/docs/gatus.md))
|
||||||
|
|
Loading…
Reference in a new issue