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