This commit is contained in:
2025-05-17 18:44:53 -05:00
parent a9220a625a
commit e6571ee77a
9 changed files with 204 additions and 3 deletions

View File

@@ -386,6 +386,12 @@ homepage:
href: https://stalwart.alexlebens.net
siteMonitor: http://stalwart.stalwart:80
statusStyle: dot
- Notifications:
icon: sh-ntfy.webp
description: ntfy
href: https://ntfy.alexlebens.net
siteMonitor: http://ntfy.ntfy:80
statusStyle: dot
- Reverse Proxy:
icon: sh-traefik.webp
description: Traefik

View File

@@ -12,7 +12,6 @@ spec:
matchLabels:
app: grafana-main
contentCacheDuration: 1h
contentCacheDuration: 1h
folderUID: grafana-folder-system
resyncPeriod: 1h
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/system/ceph.json
@@ -394,11 +393,29 @@ spec:
matchLabels:
app: grafana-main
contentCacheDuration: 1h
contentCacheDuration: 1h
folderUID: grafana-folder-platform
resyncPeriod: 1h
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
kind: GrafanaDashboard
@@ -434,7 +451,7 @@ spec:
app: grafana-main
contentCacheDuration: 1h
folderUID: grafana-folder-platform
resyncPeriod: 30m
resyncPeriod: 1h
url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/vault.json
---

View 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

View 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

View 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

View 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

View File

@@ -131,6 +131,7 @@ blocky:
mail IN CNAME traefik-cl01tl
minio-directus IN CNAME traefik-cl01tl
minio-outline IN CNAME traefik-cl01tl
ntfy IN CNAME traefik-cl01tl
ollama IN CNAME traefik-cl01tl
overseerr IN CNAME traefik-cl01tl
pgadmin IN CNAME traefik-cl01tl

View File

@@ -106,6 +106,7 @@ customDNS:
mail IN CNAME traefik-cl01tl
minio-directus IN CNAME traefik-cl01tl
minio-outline IN CNAME traefik-cl01tl
ntfy IN CNAME traefik-cl01tl
ollama IN CNAME traefik-cl01tl
overseerr IN CNAME traefik-cl01tl
pgadmin IN CNAME traefik-cl01tl

View File

@@ -106,6 +106,7 @@ customDNS:
mail IN CNAME traefik-cl01tl
minio-directus IN CNAME traefik-cl01tl
minio-outline IN CNAME traefik-cl01tl
ntfy IN CNAME traefik-cl01tl
ollama IN CNAME traefik-cl01tl
overseerr IN CNAME traefik-cl01tl
pgadmin IN CNAME traefik-cl01tl