140 أسطر
5.3 KiB
JSON
140 أسطر
5.3 KiB
JSON
{
|
|
"export_info": {
|
|
"note": "Manual configuration export. This Uptime Kuma version (2.5.4) does not expose a Settings > Backup/Export screen, so this file was assembled by hand from the live dashboard to document the POC exactly as deployed.",
|
|
"exported_by": "Mahmoud",
|
|
"export_date": "2026-09-17",
|
|
"uptime_kuma_version": "2.5.4"
|
|
},
|
|
"infrastructure": {
|
|
"platform": "Ghaymah Cloud",
|
|
"deployment_type": "Containerized App",
|
|
"apps": [
|
|
{
|
|
"app_name": "uptime-kuma",
|
|
"container_image": "louislam/uptime-kuma:2",
|
|
"size": "Starter",
|
|
"instances": 1,
|
|
"port": {
|
|
"name": "web",
|
|
"container_port": 3001
|
|
},
|
|
"volume": {
|
|
"mount_path": "/app/data",
|
|
"purpose": "Persist SQLite database, monitors, notification settings and status page config across restarts"
|
|
},
|
|
"sleep_when_idle": false,
|
|
"run_once": false,
|
|
"public_url": "https://uptime-kuma-web-3aa83c30.hosted.cumin.dev"
|
|
},
|
|
{
|
|
"app_name": "demo-web-server",
|
|
"container_image": "nginx",
|
|
"size": "Starter",
|
|
"instances": 1,
|
|
"port": {
|
|
"name": "web",
|
|
"container_port": 80
|
|
},
|
|
"purpose": "Simple, self-owned target service to monitor (replacing the public httpbin.org test endpoint)",
|
|
"public_url": "https://demo-web-server-web-9b9b121d.hosted.cumin.dev/"
|
|
}
|
|
]
|
|
},
|
|
"database": {
|
|
"type": "SQLite",
|
|
"reason": "Single instance deployment, no concurrent-write requirements, uses the persistent volume already mounted at /app/data"
|
|
},
|
|
"monitors": [
|
|
{
|
|
"friendly_name": "test app",
|
|
"monitor_type": "HTTP(s)",
|
|
"url": "https://demo-web-server-web-9b9b121d.hosted.cumin.dev/",
|
|
"heartbeat_interval_seconds": 60,
|
|
"retries": 0,
|
|
"request_timeout_seconds": 48,
|
|
"resend_notification_if_down_x_times": 0,
|
|
"method": "GET",
|
|
"notes": "Originally pointed at https://httpstat.us/200 (unstable, returned intermittent 502s), then https://httpbin.org/status/200 for stability testing, finally switched to the self-owned nginx demo server above."
|
|
},
|
|
{
|
|
"friendly_name": "test uptime kuma",
|
|
"monitor_type": "HTTP(s)",
|
|
"url": "https://uptime-kuma-web-3aa83c30.hosted.cumin.dev/",
|
|
"heartbeat_interval_seconds": 60,
|
|
"retries": 0,
|
|
"request_timeout_seconds": 48,
|
|
"resend_notification_if_down_x_times": 0,
|
|
"method": "GET",
|
|
"notes": "Self-monitoring — Uptime Kuma watching itself to detect if the monitoring service goes down."
|
|
}
|
|
],
|
|
"notifications": [
|
|
{
|
|
"friendly_name": "My Telegram Alert (1)",
|
|
"type": "Telegram",
|
|
"linked_to_monitors": [
|
|
"test app"
|
|
],
|
|
"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",
|
|
"tested": true,
|
|
"test_result": "Down and Up alerts both confirmed delivered to Telegram during failover testing"
|
|
}
|
|
],
|
|
"status_page": {
|
|
"slug": "ghaymah-status",
|
|
"title": "Ghaymah Services Status",
|
|
"public_url": "https://uptime-kuma-web-3aa83c30.hosted.cumin.dev/status/ghaymah-status",
|
|
"access": "Public, no login required",
|
|
"groups": [
|
|
{
|
|
"name": "Services",
|
|
"monitors": [
|
|
"test app",
|
|
"test uptime kuma"
|
|
]
|
|
}
|
|
],
|
|
"refresh_interval_seconds": 300,
|
|
"theme": "Auto"
|
|
},
|
|
"custom_status_page": {
|
|
"description": "A custom GitHub-style status page built with HTML/CSS/JS, served via nginx. Fetches live data from Uptime Kuma's public API and displays it in a premium UI with heartbeat bars and uptime percentages.",
|
|
"files": [
|
|
"status-page/index.html",
|
|
"status-page/nginx.conf"
|
|
],
|
|
"local_port": 8080,
|
|
"data_source": "Uptime Kuma Public API — /api/status-page/ghaymah-status and /api/status-page/heartbeat/ghaymah-status",
|
|
"proxy": "nginx proxies /kuma-api/ to the Uptime Kuma instance to eliminate CORS issues",
|
|
"features": [
|
|
"Real-time data from Uptime Kuma API",
|
|
"90-heartbeat uptime bars per monitor",
|
|
"24h and 30d uptime percentages",
|
|
"Auto-refresh every 60 seconds",
|
|
"Operational / Degraded / Down status indicators with animated pulse"
|
|
]
|
|
},
|
|
"testing_performed": [
|
|
{
|
|
"test": "DOWN detection",
|
|
"method": "Pointed monitor at an endpoint returning HTTP 502",
|
|
"result": "Monitor correctly flagged as Down, event logged with message 'Request failed with status code 502'"
|
|
},
|
|
{
|
|
"test": "UP recovery",
|
|
"method": "Switched monitor URL to a stable 200-returning endpoint",
|
|
"result": "Monitor correctly recovered to Up status, uptime percentage began climbing"
|
|
},
|
|
{
|
|
"test": "Telegram alerting",
|
|
"method": "Observed notifications during the Down -> Up transition above",
|
|
"result": "Alerts received on Telegram bot for both state changes"
|
|
},
|
|
{
|
|
"test": "Custom status page",
|
|
"method": "Ran nginx:alpine container locally on port 8080 serving the custom HTML page",
|
|
"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"
|
|
}
|
|
]
|
|
} |