docs: add final deployment evidence [skip ci]

هذا الالتزام موجود في:
yassinelagamy
2026-07-26 21:57:56 +03:00
الأصل 60b9e2c38e
التزام deb96349b8
9 ملفات معدلة مع 51 إضافات و7 حذوفات

عرض الملف

@@ -23,6 +23,8 @@ monitoring dashboard.
- Docker Hub API image: `docker.io/agamy74/ghaymah-api`
- Docker Hub dashboard image: `docker.io/agamy74/mithal-monitor`
- Public repository: <https://github.com/yassinelagamy/GHyamah-Test>
- Successful protected deployment run:
<https://github.com/yassinelagamy/GHyamah-Test/actions/runs/30215537509>
## Deployment evidence

عرض الملف

@@ -15,5 +15,8 @@ duplicate captures are not included.
| 07 | `07-production-approval.png` | GitHub `production` Environment required-reviewer protection. |
| 08 | `08-pipeline-success.png` | Successful build, staging verification, approval, and production verification. |
`health-response.html` records the URL, UTC check time, HTTP status, and JSON
used for screenshot 03.
All service URLs and Docker image names are also listed in the repository root
[README](../../README.md).

عرض الملف

@@ -0,0 +1,38 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Q1 Live Health Verification</title>
<style>
:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center; background: #0d1117; color: #e6edf3; }
main { width: min(900px, calc(100% - 64px)); padding: 40px; border: 1px solid #30363d; border-radius: 16px; background: #161b22; }
.status { display: inline-flex; gap: 10px; align-items: center; padding: 8px 14px; border-radius: 999px; color: #3fb950; background: #183d27; font-weight: 700; }
.dot { width: 10px; height: 10px; border-radius: 50%; background: #3fb950; }
h1 { margin: 20px 0 8px; font-size: 32px; }
p { color: #8b949e; }
a { color: #58a6ff; word-break: break-all; }
pre { margin-top: 28px; padding: 24px; overflow: auto; border-radius: 12px; background: #0d1117; color: #c9d1d9; font-size: 16px; line-height: 1.65; }
.meta { margin-top: 24px; display: flex; gap: 28px; color: #8b949e; font-size: 14px; }
strong { color: #e6edf3; }
</style>
</head>
<body>
<main>
<span class="status"><span class="dot"></span>HTTP 200 · HEALTHY</span>
<h1>Q1 Live Health Verification</h1>
<p><a href="https://ghaymah-api-615e99f13665.hosted.ghaymah.systems/health">https://ghaymah-api-615e99f13665.hosted.ghaymah.systems/health</a></p>
<pre>{
"status": "ok",
"release": "60b9e2c38e3f1a509383c6d61a7f76b9d043214a",
"uptime_s": 143.213,
"timestamp": "2026-07-26T18:48:18.536427+00:00"
}</pre>
<div class="meta">
<span><strong>Checked:</strong> 2026-07-26 18:48:19 UTC</span>
<span><strong>Source:</strong> Ghaymah public endpoint</span>
</div>
</main>
</body>
</html>

ملف ثنائي غير معروض.

قبل

العرض:  |  الارتفاع:  |  الحجم: 68 KiB

بعد

العرض:  |  الارتفاع:  |  الحجم: 68 KiB

ملف ثنائي غير معروض.

قبل

العرض:  |  الارتفاع:  |  الحجم: 62 KiB

بعد

العرض:  |  الارتفاع:  |  الحجم: 63 KiB

ملف ثنائي غير معروض.

بعد

العرض:  |  الارتفاع:  |  الحجم: 37 KiB

ملف ثنائي غير معروض.

بعد

العرض:  |  الارتفاع:  |  الحجم: 62 KiB

ملف ثنائي غير معروض.

بعد

العرض:  |  الارتفاع:  |  الحجم: 65 KiB

عرض الملف

@@ -268,14 +268,15 @@ const DATA_URL = '../monitor/data/checks.json';
### Against the live Ghaymah deployment
Checked on 2026-07-26 at 17:23 UTC, ~32 minutes after deployment:
Final release checked on 2026-07-26 at 18:48 UTC:
| Endpoint | Result |
|---|---|
| `/health` | HTTP 200 · `{"status":"ok","uptime_s":1950.129,"timestamp":"2026-07-26T17:23:30.797215+00:00"}` |
| `/` | service metadata, `started_at` `2026-07-26T16:51:00.668703+00:00` |
| `/metrics` | `{"requests_total":118,"started_at":"2026-07-26T16:51:00.668703+00:00"}` the counter reflects real traffic from the monitor |
| `/health` | HTTP 200 · `status=ok`; release `60b9e2c38e3f1a509383c6d61a7f76b9d043214a` |
| `/` | Service metadata and the same immutable release identifier |
| `/metrics` | Valid request counter and process start time; the counter reflects real monitor traffic |
The monitor has been polling the live URL every 30 s since deployment; `monitor/data/checks.json`
contains only checks against the deployed application (earlier records from local
container testing were removed so the dashboard reflects one target).
The monitor polls the live URL every 30 seconds. The committed
`monitor/data/checks.json` is a submission snapshot; ongoing checks continue in
the `ghaymah-q1-monitor-history` Docker volume so normal monitoring does not
dirty the repository.