add ntfy
This commit is contained in:
@@ -386,6 +386,12 @@ homepage:
|
|||||||
href: https://stalwart.alexlebens.net
|
href: https://stalwart.alexlebens.net
|
||||||
siteMonitor: http://stalwart.stalwart:80
|
siteMonitor: http://stalwart.stalwart:80
|
||||||
statusStyle: dot
|
statusStyle: dot
|
||||||
|
- Notifications:
|
||||||
|
icon: sh-ntfy.webp
|
||||||
|
description: ntfy
|
||||||
|
href: https://ntfy.alexlebens.net
|
||||||
|
siteMonitor: http://ntfy.ntfy:80
|
||||||
|
statusStyle: dot
|
||||||
- Reverse Proxy:
|
- Reverse Proxy:
|
||||||
icon: sh-traefik.webp
|
icon: sh-traefik.webp
|
||||||
description: Traefik
|
description: Traefik
|
||||||
|
@@ -12,7 +12,6 @@ spec:
|
|||||||
matchLabels:
|
matchLabels:
|
||||||
app: grafana-main
|
app: grafana-main
|
||||||
contentCacheDuration: 1h
|
contentCacheDuration: 1h
|
||||||
contentCacheDuration: 1h
|
|
||||||
folderUID: grafana-folder-system
|
folderUID: grafana-folder-system
|
||||||
resyncPeriod: 1h
|
resyncPeriod: 1h
|
||||||
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/ceph.json
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/ceph.json
|
||||||
@@ -394,11 +393,29 @@ spec:
|
|||||||
matchLabels:
|
matchLabels:
|
||||||
app: grafana-main
|
app: grafana-main
|
||||||
contentCacheDuration: 1h
|
contentCacheDuration: 1h
|
||||||
contentCacheDuration: 1h
|
|
||||||
folderUID: grafana-folder-platform
|
folderUID: grafana-folder-platform
|
||||||
resyncPeriod: 1h
|
resyncPeriod: 1h
|
||||||
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/gitea.json
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/gitea.json
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: grafana.integreatly.org/v1beta1
|
||||||
|
kind: GrafanaDashboard
|
||||||
|
metadata:
|
||||||
|
name: grafana-dashboard-ntfy
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: grafana-dashboard-ntfy
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
instanceSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: grafana-main
|
||||||
|
contentCacheDuration: 1h
|
||||||
|
folderUID: grafana-folder-platform
|
||||||
|
resyncPeriod: 1h
|
||||||
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/ntfy.json
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: grafana.integreatly.org/v1beta1
|
apiVersion: grafana.integreatly.org/v1beta1
|
||||||
kind: GrafanaDashboard
|
kind: GrafanaDashboard
|
||||||
@@ -434,7 +451,7 @@ spec:
|
|||||||
app: grafana-main
|
app: grafana-main
|
||||||
contentCacheDuration: 1h
|
contentCacheDuration: 1h
|
||||||
folderUID: grafana-folder-platform
|
folderUID: grafana-folder-platform
|
||||||
resyncPeriod: 30m
|
resyncPeriod: 1h
|
||||||
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/vault.json
|
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/vault.json
|
||||||
|
|
||||||
---
|
---
|
||||||
|
22
clusters/cl01tl/platform/ntfy/Chart.yaml
Normal file
22
clusters/cl01tl/platform/ntfy/Chart.yaml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: ntfy
|
||||||
|
version: 1.0.0
|
||||||
|
description: Ntfy
|
||||||
|
keywords:
|
||||||
|
- ntfy
|
||||||
|
- notifications
|
||||||
|
- messaging
|
||||||
|
home: https://wiki.alexlebens.dev/s/5bfc09dd-688b-48f0-8d33-b9bf452df98a
|
||||||
|
sources:
|
||||||
|
- https://github.com/binwiederhier/ntfy
|
||||||
|
- https://hub.docker.com/r/binwiederhier/ntfy
|
||||||
|
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
|
||||||
|
maintainers:
|
||||||
|
- name: alexlebens
|
||||||
|
dependencies:
|
||||||
|
- name: app-template
|
||||||
|
alias: ntfy
|
||||||
|
repository: https://bjw-s-labs.github.io/helm-charts/
|
||||||
|
version: 4.0.1
|
||||||
|
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/ntfy.png
|
||||||
|
appVersion: 2.11.0
|
28
clusters/cl01tl/platform/ntfy/templates/http-route.yaml
Normal file
28
clusters/cl01tl/platform/ntfy/templates/http-route.yaml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
|
kind: HTTPRoute
|
||||||
|
metadata:
|
||||||
|
name: http-route-ntfy
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: http-route-ntfy
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
parentRefs:
|
||||||
|
- group: gateway.networking.k8s.io
|
||||||
|
kind: Gateway
|
||||||
|
name: traefik-gateway
|
||||||
|
namespace: traefik
|
||||||
|
hostnames:
|
||||||
|
- ntfy.alexlebens.net
|
||||||
|
rules:
|
||||||
|
- matches:
|
||||||
|
- path:
|
||||||
|
type: PathPrefix
|
||||||
|
value: /
|
||||||
|
backendRefs:
|
||||||
|
- group: ''
|
||||||
|
kind: Service
|
||||||
|
name: ntfy
|
||||||
|
port: 80
|
||||||
|
weight: 100
|
19
clusters/cl01tl/platform/ntfy/templates/service-monitor.yaml
Normal file
19
clusters/cl01tl/platform/ntfy/templates/service-monitor.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: ntfy
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: ntfy
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: ntfy
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
endpoints:
|
||||||
|
- port: metrics
|
||||||
|
interval: 3m
|
||||||
|
scrapeTimeout: 1m
|
||||||
|
path: /metrics
|
106
clusters/cl01tl/platform/ntfy/values.yaml
Normal file
106
clusters/cl01tl/platform/ntfy/values.yaml
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
ntfy:
|
||||||
|
controllers:
|
||||||
|
main:
|
||||||
|
type: deployment
|
||||||
|
replicas: 1
|
||||||
|
strategy: Recreate
|
||||||
|
revisionHistoryLimit: 3
|
||||||
|
containers:
|
||||||
|
main:
|
||||||
|
image:
|
||||||
|
repository: binwiederhier/ntfy
|
||||||
|
tag: v2.11.0
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
args: ["serve", "--cache-file", "/var/cache/ntfy/cache.db"]
|
||||||
|
env:
|
||||||
|
- name: TZ
|
||||||
|
value: US/Central
|
||||||
|
- name: NTFY_BASE_URL
|
||||||
|
value: https://ntfy.alexlebens.net
|
||||||
|
- name: NTFY_LISTEN_HTTP
|
||||||
|
value: :80
|
||||||
|
- name: NTFY_CACHE_FILE
|
||||||
|
value: /var/lib/ntfy/cache.db
|
||||||
|
- name: NTFY_CACHE_DURATION
|
||||||
|
value: 36h
|
||||||
|
- name: NTFY_CACHE_STARTUP_QUERIES
|
||||||
|
value: |
|
||||||
|
pragma journal_mode = WAL;
|
||||||
|
pragma synchronous = normal;
|
||||||
|
pragma temp_store = memory;
|
||||||
|
pragma busy_timeout = 15000;
|
||||||
|
vacuum;
|
||||||
|
- name: NTFY_BEHIND_PROXY
|
||||||
|
value: true
|
||||||
|
- name: NTFY_ATTACHMENT_CACHE_DIR
|
||||||
|
value: /var/lib/ntfy/attachments
|
||||||
|
- name: NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT
|
||||||
|
value: 4G
|
||||||
|
- name: NTFY_ATTACHMENT_FILE_SIZE_LIMIT
|
||||||
|
value: 15M
|
||||||
|
- name: NTFY_ATTACHMENT_EXPIRY_DURATION
|
||||||
|
value: 36h
|
||||||
|
- name: NTFY_ENABLE_SIGNUP
|
||||||
|
value: true
|
||||||
|
- name: NTFY_ENABLE_LOGIN
|
||||||
|
value: true
|
||||||
|
- name: NTFY_ENABLE_RESERVATIONS
|
||||||
|
value: false
|
||||||
|
- name: NTFY_UPSTREAM_BASE_URL
|
||||||
|
value: https://ntfy.sh
|
||||||
|
# - name: NTFY_UPSTREAM_ACCESS_TOKEN
|
||||||
|
# value: ""
|
||||||
|
# - name: NTFY_WEB_PUSH_PUBLIC_KEY
|
||||||
|
# value: ""
|
||||||
|
# - name: NTFY_WEB_PUSH_PRIVATE_KEY
|
||||||
|
# value: ""
|
||||||
|
# - name: NTFY_WEB_PUSH_FILE
|
||||||
|
# value: /var/lib/ntfy/webpush.db
|
||||||
|
# - name: NTFY_WEB_PUSH_EMAIL_ADDRESS
|
||||||
|
# value: ""
|
||||||
|
- name: NTFY_METRICS_LISTEN_HTTP
|
||||||
|
value: 9090
|
||||||
|
- name: NTFY_LOG_LEVEL
|
||||||
|
value: info
|
||||||
|
probes:
|
||||||
|
liveness:
|
||||||
|
enabled: true
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /usr/bin/env
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1
|
||||||
|
failureThreshold: 5
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
periodSeconds: 60
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 10
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 128Mi
|
||||||
|
service:
|
||||||
|
main:
|
||||||
|
controller: main
|
||||||
|
ports:
|
||||||
|
http:
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
protocol: HTTP
|
||||||
|
metrics:
|
||||||
|
port: 9090
|
||||||
|
targetPort: 9090
|
||||||
|
protocol: HTTP
|
||||||
|
persistence:
|
||||||
|
cache:
|
||||||
|
storageClass: ceph-block
|
||||||
|
accessMode: ReadWriteOnce
|
||||||
|
size: 5Gi
|
||||||
|
advancedMounts:
|
||||||
|
main:
|
||||||
|
main:
|
||||||
|
- path: /var/cache/ntfy
|
||||||
|
readOnly: false
|
@@ -131,6 +131,7 @@ blocky:
|
|||||||
mail IN CNAME traefik-cl01tl
|
mail IN CNAME traefik-cl01tl
|
||||||
minio-directus IN CNAME traefik-cl01tl
|
minio-directus IN CNAME traefik-cl01tl
|
||||||
minio-outline IN CNAME traefik-cl01tl
|
minio-outline IN CNAME traefik-cl01tl
|
||||||
|
ntfy IN CNAME traefik-cl01tl
|
||||||
ollama IN CNAME traefik-cl01tl
|
ollama IN CNAME traefik-cl01tl
|
||||||
overseerr IN CNAME traefik-cl01tl
|
overseerr IN CNAME traefik-cl01tl
|
||||||
pgadmin IN CNAME traefik-cl01tl
|
pgadmin IN CNAME traefik-cl01tl
|
||||||
|
@@ -106,6 +106,7 @@ customDNS:
|
|||||||
mail IN CNAME traefik-cl01tl
|
mail IN CNAME traefik-cl01tl
|
||||||
minio-directus IN CNAME traefik-cl01tl
|
minio-directus IN CNAME traefik-cl01tl
|
||||||
minio-outline IN CNAME traefik-cl01tl
|
minio-outline IN CNAME traefik-cl01tl
|
||||||
|
ntfy IN CNAME traefik-cl01tl
|
||||||
ollama IN CNAME traefik-cl01tl
|
ollama IN CNAME traefik-cl01tl
|
||||||
overseerr IN CNAME traefik-cl01tl
|
overseerr IN CNAME traefik-cl01tl
|
||||||
pgadmin IN CNAME traefik-cl01tl
|
pgadmin IN CNAME traefik-cl01tl
|
||||||
|
@@ -106,6 +106,7 @@ customDNS:
|
|||||||
mail IN CNAME traefik-cl01tl
|
mail IN CNAME traefik-cl01tl
|
||||||
minio-directus IN CNAME traefik-cl01tl
|
minio-directus IN CNAME traefik-cl01tl
|
||||||
minio-outline IN CNAME traefik-cl01tl
|
minio-outline IN CNAME traefik-cl01tl
|
||||||
|
ntfy IN CNAME traefik-cl01tl
|
||||||
ollama IN CNAME traefik-cl01tl
|
ollama IN CNAME traefik-cl01tl
|
||||||
overseerr IN CNAME traefik-cl01tl
|
overseerr IN CNAME traefik-cl01tl
|
||||||
pgadmin IN CNAME traefik-cl01tl
|
pgadmin IN CNAME traefik-cl01tl
|
||||||
|
Reference in New Issue
Block a user