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\ This Repo is for everything related to servers administrated by me\
which includes updates to services, which includes updates to services,
new and coming services as well as their respective configurations. 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 href: https://tools.grobecker.me
icon: sh-it-tools icon: sh-it-tools
description: Cool IT-related tools description: Cool IT-related tools
- Miniflux:
href: https://rss.grobecker.me
icon: sh-miniflux.svg
description: RSS-feed reader and aggregator
- RSS Bridge: - RSS Bridge:
href: https://rssb.grobecker.me href: https://rssb.grobecker.me
icon: sh-rss-bridge.svg icon: sh-rss-bridge.svg
@ -45,10 +41,18 @@
href: https://git.grobecker.me href: https://git.grobecker.me
icon: sh-forgejo.svg icon: sh-forgejo.svg
description: Github but better and without Microsoft in it description: Github but better and without Microsoft in it
widgets:
- type: gitea
url: https://git.grobecker.me
key: xxx
- Mailcow: - Mailcow:
href: https://mail.grobecker.me href: https://mail.grobecker.me
icon: sh-mailcow.svg icon: sh-mailcow.svg
description: if you don't like having your mails on another ones server... description: if you don't like having your mails on another ones server...
widgets:
- type: mailcow
url: https://mail.grobecker.me
key: xxx
- Memos: - Memos:
href: https://memos.grobecker.me href: https://memos.grobecker.me
icon: sh-memos.webp icon: sh-memos.webp
@ -57,10 +61,20 @@
href: https://nx41088.your-storageshare.de href: https://nx41088.your-storageshare.de
icon: sh-nextcloud.svg icon: sh-nextcloud.svg
description: Google-Drive-Stack without Google and better description: Google-Drive-Stack without Google and better
widgets:
- type: nextcloud
url: https://nx41088.your-storageshare.de
username: Marethyu
password: xxx
- Mealie: - Mealie:
href: https://rezepte.grobecker.me href: https://rezepte.grobecker.me
icon: sh-mealie.svg icon: sh-mealie.svg
description: collecting recipes like a maniac only to order food somewhere else 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: - Admin:
- Beszel: - Beszel:
@ -75,3 +89,15 @@
href: https://auth.grobecker.me href: https://auth.grobecker.me
icon: sh-authelia.svg icon: sh-authelia.svg
description: confusing users with more authorization options 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))