|
|
||
|---|---|---|
| .. | ||
| middleware | ||
| routes | ||
| test | ||
| Dockerfile | ||
| README.md | ||
| docker-compose.yml | ||
| inspect_network.js | ||
| inspect_route.js | ||
| package-lock.json | ||
| package.json | ||
| server.js | ||
| test_browser.js | ||
README.md
🚔 MotorSignal Waze Alert Relay Server
A high-performance, lightweight headless relay backend that queries Waze Live Map feeds and provides normalized Police Speed Traps, Speed Cameras, Red-Light Cameras, and Road Hazard Alerts directly to the MotorSignal Motorcycle Cockpit application.
🚀 Quick Start
Method 1: Run with Node.js (Local or VPS)
ash cd server/waze_relay npm install npm start
The server will start on http://0.0.0.0:3000.
Method 2: Run with Docker / Docker Compose
ash cd server/waze_relay docker compose up -d
📱 Connecting to MotorSignal
- Open MotorSignal on your phone.
- Go to Settings → Community Traffic Provider.
- Under Custom Endpoint URL, enter your relay server URL:
http://<YOUR_SERVER_IP>:3000/alerts(e.g., http://192.168.1.69:3000/alerts for local Wi-Fi, or https://your-domain.com/alerts for remote VPS). - Tap TEST CONNECTION. You will see the green CONNECTED badge!
📡 REST API Endpoints
1. Health Check
- GET /health or GET /
- Response:
json { "status": "ok", "service": "MotorSignal Waze Community Relay", "version": "1.0.0" }
2. Live Alerts Feed
- GET /alerts?lat=37.7749&lng=-122.4194&radius=5000
- Query Parameters:
- lat: Latitude of vehicle
- lng: Longitude of vehicle
adius: Search radius in meters (Default: 5000m)
- Response:
json { "provider": "waze_relay", "count": 2, "alerts": [ { "id": "wz_37.77490_-122.41940", "type": "POLICE", "category": "police", "latitude": 37.7749, "longitude": -122.4194, "roadName": "Market St", "description": "Hidden police speed trap reported on Market St", "severity": "high", "confidence": 0.9 } ] }
⚡ Features
- Police Trap Detection: Parses POLICE_HIDDEN and POLICE_VISIBLE radar traps.
- Camera Enforcement: Speed cameras and red-light enforcement cameras.
- In-Memory Geo-Grid Caching: 30-second TTL prevents rate limiting and ensures sub-10ms response times for the motorcycle HUD.