docs: add final deployment evidence [skip ci]
@@ -23,6 +23,8 @@ monitoring dashboard.
|
|||||||
- Docker Hub API image: `docker.io/agamy74/ghaymah-api`
|
- Docker Hub API image: `docker.io/agamy74/ghaymah-api`
|
||||||
- Docker Hub dashboard image: `docker.io/agamy74/mithal-monitor`
|
- Docker Hub dashboard image: `docker.io/agamy74/mithal-monitor`
|
||||||
- Public repository: <https://github.com/yassinelagamy/GHyamah-Test>
|
- Public repository: <https://github.com/yassinelagamy/GHyamah-Test>
|
||||||
|
- Successful protected deployment run:
|
||||||
|
<https://github.com/yassinelagamy/GHyamah-Test/actions/runs/30215537509>
|
||||||
|
|
||||||
## Deployment evidence
|
## Deployment evidence
|
||||||
|
|
||||||
|
|||||||
@@ -15,5 +15,8 @@ duplicate captures are not included.
|
|||||||
| 07 | `07-production-approval.png` | GitHub `production` Environment required-reviewer protection. |
|
| 07 | `07-production-approval.png` | GitHub `production` Environment required-reviewer protection. |
|
||||||
| 08 | `08-pipeline-success.png` | Successful build, staging verification, approval, and production verification. |
|
| 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
|
All service URLs and Docker image names are also listed in the repository root
|
||||||
[README](../../README.md).
|
[README](../../README.md).
|
||||||
|
|||||||
38
docs/evidence/health-response.html
Normal file
@@ -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 |
ثنائية
docs/evidence/screenshots/03-q1-health.png
Normal file
|
بعد العرض: | الارتفاع: | الحجم: 37 KiB |
ثنائية
docs/evidence/screenshots/07-production-approval.png
Normal file
|
بعد العرض: | الارتفاع: | الحجم: 62 KiB |
ثنائية
docs/evidence/screenshots/08-pipeline-success.png
Normal file
|
بعد العرض: | الارتفاع: | الحجم: 65 KiB |
@@ -268,14 +268,15 @@ const DATA_URL = '../monitor/data/checks.json';
|
|||||||
|
|
||||||
### Against the live Ghaymah deployment
|
### 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 |
|
| Endpoint | Result |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `/health` | HTTP 200 · `{"status":"ok","uptime_s":1950.129,"timestamp":"2026-07-26T17:23:30.797215+00:00"}` |
|
| `/health` | HTTP 200 · `status=ok`; release `60b9e2c38e3f1a509383c6d61a7f76b9d043214a` |
|
||||||
| `/` | service metadata, `started_at` `2026-07-26T16:51:00.668703+00:00` |
|
| `/` | Service metadata and the same immutable release identifier |
|
||||||
| `/metrics` | `{"requests_total":118,"started_at":"2026-07-26T16:51:00.668703+00:00"}` — the counter reflects real traffic from the monitor |
|
| `/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`
|
The monitor polls the live URL every 30 seconds. The committed
|
||||||
contains only checks against the deployed application (earlier records from local
|
`monitor/data/checks.json` is a submission snapshot; ongoing checks continue in
|
||||||
container testing were removed so the dashboard reflects one target).
|
the `ghaymah-q1-monitor-history` Docker volume so normal monitoring does not
|
||||||
|
dirty the repository.
|
||||||
|
|||||||