
OSINT threat‑intel dashboard: a 3D globe and live feed showing malicious infrastructure from public sources like AbuseIPDB and OpenPhish.
https://github.com/user-attachments/assets/e4f6a4fa-6ff4-4ad1-8e5c-5b50ce6ad722
DarkGrid visualizes suspicious internet infrastructure globally:
The focus is situational awareness of infrastructure, not individuals.
backend/ – FastAPI + SQLite OSINT API
/api/indicators/latest – latest indicators for the feed/api/map – per‑country buckets for the globefrontend/ – Next.js 16 app (DarkGrid UI)
src/app/page.tsx – main dashboard layoutsrc/components/ThreatGlobeViewer.tsx – 3D globesrc/hooks/useThreatDataPolling.ts – polls threat APIdocker-compose.yml – local stack (backend + frontend)Create .env in this directory (same folder as docker-compose.yml):
copy .env.example .env
Edit .env and set:
ABUSEIPDB_API_KEY – get a free key from https://www.abuseipdb.com/.Start the stack:
docker-compose up -d
Or run in the foreground to see logs:
docker-compose up
Open the UI and API:
http://localhost:3000http://localhost:8000http://localhost:8000/healthDatabase: SQLite, created automatically on first backend start.
backend_data volume at /app/data/threat_intel.db.backend/data/threat_intel.db.Collectors (run on startup and every 15 minutes):
AbuseIPDB (requires ABUSEIPDB_API_KEY):
type=ip, source=abuseipdb indicators with geo.country.OpenPhish (no key required):
type=url, source=openphish indicators (no geo).Empty globe / feed troubleshooting:
Requirements:
cd backend
python -m venv .venv
.venv\Scripts\activate # on Windows
pip install -r requirements.txt
python main.py # serves on http://localhost:8000
Make sure your root .env has ABUSEIPDB_API_KEY for ingestion.
cd frontend
npm install
Create frontend/.env.local (for local dev only):
NEXT_PUBLIC_THREAT_API_URL=http://localhost:8000
Then run:
npm run dev
Open http://localhost:3000.
This project is a work in progress and represents a rough MVP of the DarkGrid threat intelligence dashboard. Expect breaking changes as the backend, collectors, and UI are refined.
Planned future stages include:
docker-compose up -d --build
.env and make sure ABUSEIPDB_API_KEY is set and valid.docker-compose up -d.