الملفات
Ghayamah-Uptime/uptime-kuma-config-export.json
2026-09-17 22:16:24 +03:00

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"
}
]
}