updating to match everything in my homelab.
This commit is contained in:
63
diagrams/notification-architecture.mmd
Normal file
63
diagrams/notification-architecture.mmd
Normal file
@@ -0,0 +1,63 @@
|
||||
```plaintext
|
||||
%% Notification Architecture (ADR-0021)
|
||||
%% C4 Component diagram showing notification sources and hub
|
||||
|
||||
flowchart LR
|
||||
subgraph sources["📤 Notification Sources"]
|
||||
direction TB
|
||||
ci["🔧 Gitea Actions<br/>CI/CD builds"]
|
||||
alertmanager["🔔 Alertmanager<br/>Prometheus alerts"]
|
||||
gatus["❤️ Gatus<br/>Health monitoring"]
|
||||
flux["🔄 Flux<br/>GitOps events"]
|
||||
end
|
||||
|
||||
subgraph hub["📡 Central Hub"]
|
||||
ntfy["📢 ntfy<br/>Notification Server"]
|
||||
end
|
||||
|
||||
subgraph topics["🏷️ Topics"]
|
||||
direction TB
|
||||
t_ci["gitea-ci"]
|
||||
t_alerts["alertmanager-alerts"]
|
||||
t_gatus["gatus"]
|
||||
t_flux["flux"]
|
||||
t_deploy["deployments"]
|
||||
end
|
||||
|
||||
subgraph consumers["📱 Consumers"]
|
||||
direction TB
|
||||
mobile["📱 ntfy App<br/>(iOS/Android)"]
|
||||
bridge["🌉 ntfy-discord<br/>Bridge"]
|
||||
discord["💬 Discord<br/>Webhooks"]
|
||||
end
|
||||
|
||||
%% Source to hub
|
||||
ci -->|"POST"| ntfy
|
||||
alertmanager -->|"webhook"| ntfy
|
||||
gatus -->|"webhook"| ntfy
|
||||
flux -->|"notification-controller"| ntfy
|
||||
|
||||
%% Hub to topics
|
||||
ntfy --> topics
|
||||
|
||||
%% Topics to consumers
|
||||
t_ci --> mobile
|
||||
t_alerts --> mobile
|
||||
t_gatus --> mobile
|
||||
t_flux --> mobile
|
||||
t_deploy --> mobile
|
||||
|
||||
topics --> bridge
|
||||
bridge --> discord
|
||||
|
||||
classDef source fill:#3498db,color:white
|
||||
classDef hub fill:#e74c3c,color:white
|
||||
classDef topic fill:#9b59b6,color:white
|
||||
classDef consumer fill:#27ae60,color:white
|
||||
|
||||
class ci,alertmanager,gatus,flux source
|
||||
class ntfy hub
|
||||
class t_ci,t_alerts,t_gatus,t_flux,t_deploy topic
|
||||
class mobile,bridge,discord consumer
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user