Logo Lanfrica

samirsomer/sdwatch

Domaine:

digital infrastructure

Type de record:

software
Créateur:
sam
Hôte:
Sudan Internet Health Dashboard # SDWatch — Sudan Internet Health Dashboard A real-time monitoring dashboard for Sudan's internet infrastructure. Tracks BGP routing, RPKI validity, HTTP traffic, internet outages, IXP membership, and DNS health — all from public APIs with no proprietary data sources. Live: **bgp.theinternetmechanic.dev** --- ## Panels | Panel | Data Sources | Poll Interval | |---|---|---| | **BGP** | Cloudflare Radar + RIPE RIS upstream analysis | Hourly | | **RPKI** | Cloudflare Radar (invalid prefix list, ROA trend) | Hourly | | **Traffic** | Cloudflare Radar HTTP summaries + per-ASN sparklines | Hourly | | **Outages** | IODA signals + Cloudflare Radar shutdown annotations | Hourly | | **IXP** | PeeringDB — SIXP Sudan members + peering policies | Daily | | **DNS** | Cloudflare DoH (.sd TLD) + Cloudflare Radar ranking | Daily | --- ## Setup ### Requirements - Python 3.11+ - A Cloudflare Radar API token — free tier is sufficient ### Install ```bash git clone cd sdwatch python3 -m venv venv source venv/bin/activate pip install -r requirements.txt cp .env.example .env # Edit .env — add your CLOUDFLARE_API_TOKEN ``` ### Configure `.env` ```env # Required CLOUDFLARE_API_TOKEN=your_token_here # Country COUNTRY_CODE=SD COUNTRY_NAME=Sudan # Polling POLL_INTERVAL_MINUTES=60 # Database DATABASE_PATH=./data/dashboard.db # Server — use 127.0.0.1 behind Nginx, 0.0.0.0 for local dev HOST=0.0.0.0 PORT=8000 DEBUG=true # Monitored ASNs MONITORED_ASNS=15706,30844 ``` ### Run ```bash python main.py # Open localhost ``` --- ## Known Limitations - **Cloudflare Radar** requires a minimum traffic volume threshold for some endpoints — `http/summary/http_protocol` and `http/summary/bot_class` may return 400 for Sudan intermittently - **IODA 30-day signals** can be slow to fetch (up to 120s) — the poll falls back to two 15-day chunks if the single request times out - **RIPE RIS upstream analysis** is best-effort — failures don't affect the overall BGP poll status ## …