|
esp_iot_framework
v0.2.1
© 2026 AmakeSasha, distributed under a license Apache-2.0
|
Modules | |
| SERVER | |
| Public API for the HTTP(S) server node. Provides server initialization, HTTP/HTTPS server tuning, and registration of custom URI handlers for application endpoints. | |
| REST API | |
| SERVER REST API documentation. | |
| Kconfig | |
Node SERVER Kconfig configuration options. | |
esp32 • esp32s2 • esp32s3 • esp32c2 • esp32c3 • esp32c6 esp_iot_framework_server is a framework node for deploying a standalone HTTP(S) server directly on the device to handle incoming requests. Following the project's core philosophy of absolute autonomy, it turns the microcontroller into a self-sufficient server, enabling direct control via standard web browsers, curl, or similar CLI tools without requiring external hubs or applications. For an in-depth look, check out the documentation.
The web server's lifecycle is tightly synchronized with network events: it spins up automatically as soon as the device acquires an IP address and gracefully stops, freeing up system resources, if the connection is lost.
The entire server infrastructure functions via a middleware layer that handles uniform request logging and restricts access to administrative endpoints using Basic Auth (when enabled in the project). The node supports both plain HTTP and secure HTTPS (TLS), utilizing certificates and configurations persisted in NVS.
The built-in API equips your end device with a scalable suite of management capabilities:
CORE captures all system and business logs into an internal ring buffer; the SERVER streams them live to the Logs page in the Web Admin GUI.For an in-depth look, check out the API documentation.
When the graphical interface is included in the build, its compressed static assets (HTML, CSS, JS) are embedded directly into the firmware binary. The interface is highly optimized for lightweight performance and maintains backward compatibility with legacy browsers (down to IE8 and below), except for the OTA update functionality, which requires browser support for JS file uploads.
Transforming this foundational node into an end product is achieved by registering custom URI handlers for peripherals, sensors, or relays. By placing custom endpoints within the administrative URI space (using the /_/ prefix), the node automatically applies the administrator's Basic Auth. This allows you to focus on your product's core logic without getting bogged down by low-level web server boilerplate.
More examples can be found in the examples folder with the suffix _server.
To start using this framework, you must apply the appropriate configuration files (from both the CORE and SERVER components) and connect it to your project. Configure your project's main CMakeLists.txt like this (replace <TEXT> with the desired values, without the <>s themselves):