diff --git a/README.md b/README.md index ccc2e3a..6d994e1 100644 --- a/README.md +++ b/README.md @@ -8,27 +8,30 @@ without building a monitoring system from scratch. ## Architecture -``` - Internet - | - v - +-------------------+ - | Ghaymah Cloud | - +-------------------+ - | | - v v - +------------------+ +------------------+ - | Uptime Kuma | | demo-web-server | - | (container) |-->| (nginx) | - | port 3001 | | port 80 | - +------------------+ +------------------+ - | | - HTTP check Alert on - every 60s Down/Up - | | - v v - Public Status Telegram - Page +```mermaid +flowchart TD + Internet((🌍 Internet)) + + subgraph GhaymahCloud ["☁️ Ghaymah Cloud Environment"] + direction LR + UK["🚀 Uptime Kuma
(Port: 3001)"] + DemoWeb["🌐 demo-web-server
(NGINX :80)"] + end + + Internet --> UK + Internet --> DemoWeb + + UK -- "HTTP Check
(Every 60s)" --> DemoWeb + UK -. "Alert on Down/Up" .-> Telegram{"📱 Telegram Channel"} + UK -. "Exposes" .-> PublicPage(["📊 Public Status Page"]) + + style Internet fill:#f9f9f9,stroke:#333,stroke-width:2px; + style Telegram fill:#2CA5E0,stroke:#fff,stroke-width:2px,color:#fff; + style PublicPage fill:#4CAF50,stroke:#fff,stroke-width:2px,color:#fff; + classDef cloud fill:#f0f8ff,stroke:#4a90e2,stroke-width:2px,stroke-dasharray: 5 5; + classDef container fill:#ffffff,stroke:#333333,stroke-width:1px,shadow:true; + class GhaymahCloud cloud; + class UK,DemoWeb container; ``` ## What was deployed @@ -104,6 +107,12 @@ token, chat ID) are intentionally redacted from that file. Telegram. Point it back at a healthy URL to see the Up recovery alert. +## Security & Data Resilience + +- **Independent Health Tracking:** The Uptime Kuma stack functions as an independent observer. The persistence layer retains the complete outage and metrics history inside an isolated volume. +- **Failover Alerts Validation:** Explicitly validated notification webhooks logic to verify immediate alerting upon HTTP failures and automatic recovery resolution (Up events). +- **Persistent Storage Configuration:** Critical settings (like SQLite DB, configurations) are safely coupled to `/app/data` volume mount to circumvent ephemeral container cycles. + ## Next steps (not yet done) - Put Uptime Kuma behind a custom domain / HTTPS via reverse proxy