a676136f5d119de1ad42300f3635a6c62905a7ca
Flask API backend for ESP32 sensor fleet: - App factory pattern with blueprints - SQLAlchemy 2.x models (Sensor, Device, Sighting, Alert, Event, Probe) - UDP collector for sensor data streams - REST API endpoints for sensors, devices, alerts, events, probes, stats - pytest setup with fixtures - Containerfile for podman deployment - Makefile for common tasks
ESP32-Web
REST API backend for ESP32 sensor fleet (OPSEC/OSINT/Purple team).
Quick Start
# Install
pip install -e ".[dev]"
# Initialize database
flask --app src/esp32_web db init
flask --app src/esp32_web db migrate -m "initial"
flask --app src/esp32_web db upgrade
# Run development server
make dev
Ports
| Port | Protocol | Description |
|---|---|---|
| 5500 | TCP | HTTP REST API |
| 5500 | UDP | Sensor data collector |
| 5501 | UDP | Sensor commands (outbound) |
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /health |
Health check |
| GET | /api/v1/sensors |
List sensors |
| GET | /api/v1/sensors/<hostname> |
Get sensor |
| POST | /api/v1/sensors/<hostname>/command |
Send command |
| GET | /api/v1/devices |
List devices |
| GET | /api/v1/devices/<mac> |
Get device |
| GET | /api/v1/alerts |
List alerts |
| GET | /api/v1/events |
List events |
| GET | /api/v1/probes |
List probe requests |
| GET | /api/v1/probes/ssids |
List SSIDs |
| GET | /api/v1/stats |
Statistics |
Container
make build
make run
make logs
make stop
Testing
make test
Description
Languages
Python
82.8%
JavaScript
9.6%
Makefile
2.8%
CSS
2.1%
HTML
2%
Other
0.7%