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\
|
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).
|
||||||
|
|
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
|
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
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…
Add table
Reference in a new issue