update readme
هذا الالتزام موجود في:
54
README.md
54
README.md
@@ -39,29 +39,34 @@ flowchart TD
|
|||||||
|--------------------|----------------------------|------|-----------|--------------|
|
|--------------------|----------------------------|------|-----------|--------------|
|
||||||
| `uptime-kuma` | `louislam/uptime-kuma:2` | 3001 | 1 | `/app/data` |
|
| `uptime-kuma` | `louislam/uptime-kuma:2` | 3001 | 1 | `/app/data` |
|
||||||
| `demo-web-server` | `nginx` | 80 | 1 | none |
|
| `demo-web-server` | `nginx` | 80 | 1 | none |
|
||||||
|
| `status-page` | `nginx:alpine` | 8080 | 1 | none |
|
||||||
|
|
||||||
Both run as single-instance Ghaymah Apps. Uptime Kuma is intentionally
|
Uptime Kuma is intentionally kept at **1 instance** — it stores its data
|
||||||
kept at **1 instance** — it stores its data in a local SQLite database,
|
in a local SQLite database, so scaling it out would split monitor history
|
||||||
so scaling it out would split monitor history across separate,
|
across separate, inconsistent instances.
|
||||||
inconsistent instances.
|
|
||||||
|
|
||||||
`demo-web-server` (plain nginx) was added as a self-owned target to
|
`demo-web-server` (plain nginx) was added as a self-owned target to
|
||||||
monitor, so the POC watches infrastructure we actually control rather
|
monitor, so the POC watches infrastructure we actually control rather
|
||||||
than a third-party test endpoint.
|
than a third-party test endpoint.
|
||||||
|
|
||||||
|
`status-page` is a custom GitHub-style status page (HTML/CSS/JS) served
|
||||||
|
by nginx. It fetches live data from the Uptime Kuma public API and
|
||||||
|
displays service health with heartbeat bars and uptime percentages.
|
||||||
|
|
||||||
## Monitoring setup
|
## Monitoring setup
|
||||||
|
|
||||||
- **Monitor:** `test app`
|
| Monitor | Type | Target | Interval |
|
||||||
- **Type:** HTTP(s)
|
|---------|------|--------|----------|
|
||||||
- **Target:** `https://demo-web-server-web-9b9b121d.hosted.cumin.dev/`
|
| `test app` | HTTP(s) | `https://demo-web-server-web-9b9b121d.hosted.cumin.dev/` | 60s |
|
||||||
- **Check interval:** every 60 seconds
|
| `test uptime kuma` | HTTP(s) | `https://uptime-kuma-web-3aa83c30.hosted.cumin.dev/` | 60s |
|
||||||
- **Retries:** 0 (flags Down immediately — good for fast POC testing)
|
|
||||||
- **Timeout:** 48 seconds
|
|
||||||
|
|
||||||
During setup the monitor was pointed first at `httpstat.us/200` (found
|
Both monitors use 0 retries (flags Down immediately) and a 48-second
|
||||||
unstable, frequent 502s) and then `httpbin.org/status/200` for
|
timeout. `test uptime kuma` is a self-monitoring check — Uptime Kuma
|
||||||
stability testing, before finally being switched to the team's own
|
watching itself to detect if the monitoring service goes down.
|
||||||
nginx instance.
|
|
||||||
|
During setup the `test app` monitor was pointed first at `httpstat.us/200`
|
||||||
|
(unstable, frequent 502s) and then `httpbin.org/status/200` for stability
|
||||||
|
testing, before finally being switched to the self-owned nginx instance.
|
||||||
|
|
||||||
## Alerting
|
## Alerting
|
||||||
|
|
||||||
@@ -75,11 +80,18 @@ nginx instance.
|
|||||||
|
|
||||||
## Public Status Page
|
## Public Status Page
|
||||||
|
|
||||||
|
### Built-in (Uptime Kuma)
|
||||||
- **URL:** https://uptime-kuma-web-3aa83c30.hosted.cumin.dev/status/ghaymah-status
|
- **URL:** https://uptime-kuma-web-3aa83c30.hosted.cumin.dev/status/ghaymah-status
|
||||||
- **Access:** public, no login required
|
- **Access:** public, no login required
|
||||||
- Shows overall status ("All Systems Operational"), the `test app`
|
- Shows overall status, both monitors grouped under **Services**, uptime
|
||||||
monitor grouped under **Services**, its uptime percentage, and a
|
percentages, and heartbeat history bars.
|
||||||
recent heartbeat history bar.
|
|
||||||
|
### Custom (GitHub-style)
|
||||||
|
- **Files:** `status-page/index.html` + `status-page/nginx.conf`
|
||||||
|
- **Local:** `http://localhost:8080` (via `docker compose up status-page`)
|
||||||
|
- Fetches live data from the Uptime Kuma public API; proxies it through
|
||||||
|
nginx to avoid CORS. Displays 90-heartbeat bars, 24h/30d uptime %,
|
||||||
|
and animated status indicators. Auto-refreshes every 60 seconds.
|
||||||
|
|
||||||
## Data persistence
|
## Data persistence
|
||||||
|
|
||||||
@@ -114,7 +126,7 @@ token, chat ID) are intentionally redacted from that file.
|
|||||||
|
|
||||||
## Next steps (not yet done)
|
## Next steps (not yet done)
|
||||||
|
|
||||||
- Put Uptime Kuma behind a custom domain / HTTPS via reverse proxy
|
- Deploy the custom status page to Ghaymah Cloud via `gy deploy` to
|
||||||
(Ghaymah already terminates HTTPS on its own subdomains, so this is
|
give it a public URL.
|
||||||
optional for the POC).
|
- Add monitors for real application services once a backend app is
|
||||||
|
deployed, replacing the current demo targets.
|
||||||
|
|||||||
@@ -72,7 +72,9 @@
|
|||||||
{
|
{
|
||||||
"friendly_name": "My Telegram Alert (1)",
|
"friendly_name": "My Telegram Alert (1)",
|
||||||
"type": "Telegram",
|
"type": "Telegram",
|
||||||
"linked_to_monitors": ["test app"],
|
"linked_to_monitors": [
|
||||||
|
"test app"
|
||||||
|
],
|
||||||
"bot_token": "REDACTED - stored securely in Uptime Kuma, not included in this export",
|
"bot_token": "REDACTED - stored securely in Uptime Kuma, not included in this export",
|
||||||
"chat_id": "REDACTED - stored securely in Uptime Kuma, not included in this export",
|
"chat_id": "REDACTED - stored securely in Uptime Kuma, not included in this export",
|
||||||
"tested": true,
|
"tested": true,
|
||||||
@@ -87,7 +89,10 @@
|
|||||||
"groups": [
|
"groups": [
|
||||||
{
|
{
|
||||||
"name": "Services",
|
"name": "Services",
|
||||||
"monitors": ["test app", "test uptime kuma"]
|
"monitors": [
|
||||||
|
"test app",
|
||||||
|
"test uptime kuma"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"refresh_interval_seconds": 300,
|
"refresh_interval_seconds": 300,
|
||||||
@@ -132,4 +137,4 @@
|
|||||||
"result": "Page loaded correctly, fetched live data from Uptime Kuma API, displayed correct uptime percentages (99.93% for test app, 97.06% for test uptime kuma) and color-coded heartbeat bars"
|
"result": "Page loaded correctly, fetched live data from Uptime Kuma API, displayed correct uptime percentages (99.93% for test app, 97.06% for test uptime kuma) and color-coded heartbeat bars"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
المرجع في مشكلة جديدة
حظر مستخدم