Compare commits

...

6 commits

10 changed files with 327 additions and 4 deletions

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

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

View file

@ -3,3 +3,5 @@
This Repo is for everything related to servers administrated by me\
which includes updates to services,
new and coming services as well as their respective configurations.
See the documentation [here](./docs/INDEX.md).

View file

@ -0,0 +1,8 @@
services:
shiori:
image: ghcr.io/go-shiori/shiori
container_name: shiori
volumes:
- ./data:/shiori
ports:
- 37195:8080

20
docker/gatus/compose.yml Normal file
View file

@ -0,0 +1,20 @@
services:
gatus:
image: twinproduction/gatus
container_name: gatus
ports:
- 53195:8080
volumes:
- ./config:/config
- ./data:/data
labels:
- "diun.enable=true"
restart: always
networks:
- proxy
networks:
proxy:
external: true
minio:
external: true

View file

@ -0,0 +1,177 @@
storage:
type: sqlite
path: /data/data.db
endpoints:
- name: homepage
group: exposed
url: "https://grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: forgejo
group: exposed
url: "https://git.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: stirling-pdf
group: exposed
url: "https://pdf.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: memos
group: exposed
url: "https://memos.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: seafile
group: exposed
url: "https://files.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: archivebox
group: exposed
url: "https://archive.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: hedgedoc
group: exposed
url: "https://md.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: it-tools
group: exposed
url: "https://tools.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: ntfy
group: exposed
url: "https://ntfy.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: vaultwarden
group: exposed
url: "https://vault.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- 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-stack
url: "https://mail.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- name: starttls-smtp
group: mail-stack
url: "starttls://mail.grobecker.me:587"
interval: 30m
client:
timeout: 5s
conditions:
- "[CONNECTED] == true"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: tls-imap
group: mail-stack
url: "tls://mail.grobecker.me:993"
interval: 30m
client:
timeout: 5s
conditions:
- "[CONNECTED] == true"
- "[CERTIFICATE_EXPIRATION] > 48h"
alerts:
- type: ntfy
- name: mail-ipv4-dns-query
url: "8.8.8.8" # Address of the DNS server to use
group: mail-stack
dns:
query-name: "mail.grobecker.me"
query-type: "A"
conditions:
- "[BODY] == 91.107.207.162"
- "[DNS_RCODE] == NOERROR"
alerts:
- type: ntfy
- name: mail-ipv6-dns-query
url: "8.8.8.8" # Address of the DNS server to use
group: mail-stack
dns:
query-name: "mail.grobecker.me"
query-type: "AAAA"
conditions:
- "[BODY] == 2a01:4f8:c012:a8bb::1"
- "[DNS_RCODE] == NOERROR"
alerts:
- type: ntfy
- name: mail-mx-dns-query
url: "8.8.8.8" # Address of the DNS server to use
group: mail-stack
dns:
query-name: "grobecker.me"
query-type: "MX"
conditions:
- "[BODY] == mail.grobecker.me."
- "[DNS_RCODE] == NOERROR"
alerts:
- type: ntfy
- name: navidrome
group: media
url: "https://music.grobecker.me"
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"

View file

@ -23,10 +23,6 @@
href: https://tools.grobecker.me
icon: sh-it-tools
description: Cool IT-related tools
- Miniflux:
href: https://rss.grobecker.me
icon: sh-miniflux.svg
description: RSS-feed reader and aggregator
- RSS Bridge:
href: https://rssb.grobecker.me
icon: sh-rss-bridge.svg
@ -45,10 +41,18 @@
href: https://git.grobecker.me
icon: sh-forgejo.svg
description: Github but better and without Microsoft in it
widgets:
- type: gitea
url: https://git.grobecker.me
key: xxx
- Mailcow:
href: https://mail.grobecker.me
icon: sh-mailcow.svg
description: if you don't like having your mails on another ones server...
widgets:
- type: mailcow
url: https://mail.grobecker.me
key: xxx
- Memos:
href: https://memos.grobecker.me
icon: sh-memos.webp
@ -57,10 +61,20 @@
href: https://nx41088.your-storageshare.de
icon: sh-nextcloud.svg
description: Google-Drive-Stack without Google and better
widgets:
- type: nextcloud
url: https://nx41088.your-storageshare.de
username: Marethyu
password: xxx
- Mealie:
href: https://rezepte.grobecker.me
icon: sh-mealie.svg
description: collecting recipes like a maniac only to order food somewhere else
widgets:
- type: mealie
url: https://rezepte.grobecker.me
key: xxx
version: 2
- Admin:
- Beszel:
@ -75,3 +89,15 @@
href: https://auth.grobecker.me
icon: sh-authelia.svg
description: confusing users with more authorization options
- Gatus:
href: https://gatus.grobecker.me
icon: sh-gatus.svg
description: Uptime monitor which doesn't eat my RAM
widgets:
- type: gatus
url: https://gatus.grobecker.me
- Media:
- Navidrome:
href: https://music.grobecker.me
icon: sh-navidrome.svg

6
docs/INDEX.md Normal file
View file

@ -0,0 +1,6 @@
# Documentation
## Services
- Gatus\
Easily written status-site with cool features like Cert-checking

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"
```

5
updates/.template Normal file
View file

@ -0,0 +1,5 @@
# Changes
## Raspi
## Hetzner

21
updates/2024-12-29.md Normal file
View file

@ -0,0 +1,21 @@
# Changes
## Raspi
- navidrome updated
- mediatracker removed
## Hetzner
- homepage updated
- gatus updated
- memos updated
- ofelia updated (mailcow)
- memcached updated (project)
- postgres updated (mealie)
- removed miniflux
- minio:
- removed ports
- added gatus to network
- gatus:
- reworked config (see [here](/docs/gatus.md))