Compare commits
6 commits
e65092eaea
...
2bc1ce5a29
Author | SHA1 | Date | |
---|---|---|---|
2bc1ce5a29 | |||
c8b263f67e | |||
d5e324a93f | |||
8d87d0f973 | |||
75486bfda1 | |||
8b12a5391f |
10 changed files with 327 additions and 4 deletions
5
.vscode/extensions.json
vendored
Normal file
5
.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"recommendations": [
|
||||
"gruntfuggly.todo-tree"
|
||||
]
|
||||
}
|
|
@ -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).
|
||||
|
|
8
docker/archive/shiori/compose.yml
Normal file
8
docker/archive/shiori/compose.yml
Normal 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
20
docker/gatus/compose.yml
Normal 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
|
177
docker/gatus/config/config.yaml
Normal file
177
docker/gatus/config/config.yaml
Normal 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"
|
|
@ -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
6
docs/INDEX.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Documentation
|
||||
|
||||
## Services
|
||||
|
||||
- Gatus\
|
||||
Easily written status-site with cool features like Cert-checking
|
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"
|
||||
```
|
5
updates/.template
Normal file
5
updates/.template
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Changes
|
||||
|
||||
## Raspi
|
||||
|
||||
## Hetzner
|
21
updates/2024-12-29.md
Normal file
21
updates/2024-12-29.md
Normal 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))
|
Loading…
Reference in a new issue