
Eclipse hawkBit is an domain independent back end solution for rolling out software updates to constrained edge devices as well as more powerful controllers and gateways connected to IP based networking infrastructure.
The following vendors offer free trial accounts for their hawkBit compatible products:
hawkBit exposes HTTP/JSON based Direct Device Integration (API) API that allow any update client to integrate quite easily.
The Eclipse Hara subproject aims to provide a reference agent software implementation of the Eclipse hawkBit device API. The hara-ddiclient repository provides:
The hara-ddiclient library has reached version 2.x, and has been successfully used in production for years.
There are clients outside of the Eclipse IoT eco system as well, e.g.:
| Database | H2 | MySQL/MariaDB | PostgreSQL |
|---|---|---|---|
| DDLs maintained by project | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Test dependencies defined | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Docker image with driver provided | :white_check_mark: | :white_check_mark | :white_check_mark: |
| JDBC driver | H2 | MariaDB Connector/J | PostgreSQL JDBC Driver |
| Status | Test, Dev | Production grade | Test, Dev |
We are providing a Spring Boot based reference Update Server including embedded H2 DB for test and evaluation purposes. Run with docker:
docker run -d -p 8080:8080 hawkbit/hawkbit-update-server
The monolith update server will start on port 8080 with default configuration and H2 database. The default user
admin:admin is configured.
The Swagger UI is available at: http://localhost:8080/swagger-ui/index.html
See below for how to build and run the update server on your own. In addition we have a guide for setting up a complete landscape.
Note: this docker image supports both DDI and DMF APIs. However, in order to have DMF API working you shall have started additionally RabbitMQ on localhost:5672 with user guest/guest. Then the DMF will use / vhost. See more at guide -> Configure RabbitMQ connection settings.
Next to the Update Server we are also providing a set of Spring Boot Starters to quick start your own Spring Boot based application.
git clone https://github.com/eclipse-hawkbit/hawkbit.git
cd hawkbit
mvn clean install
java -jar ./hawkbit-monolith/hawkbit-update-server/target/hawkbit-update-server-0-SNAPSHOT.jar
The monolith update server will start on port 8080 with default configuration and H2 database. The default user
admin:admin is configured.
The Swagger UI is available at: http://localhost:8080/swagger-ui/index.html
java -jar ./hawkbit-ui/target/hawkbit-ui.jar
Log in to hawkbit UI with default admin:admin user.
authentication.gatewaytoken.enabled=true andauthentication.gatewaytoken.key=<gw_token>)http://localhost:8080 is default URL when running monolith update server.hawkbit_tenant_gatewaytoken to the configured gateway token (authentication.gatewaytoken.key))export hawkbit_server_ddiurl=http://localhost:8080
export demo_controller_id=demo
export hawkbit_tenant_gatewaytoken=gw_token
java -jar ./hawkbit-sdk/hawkbit-sdk-demo/target/hawkbit-sdk-demo-0-SNAPSHOT.jar
start command in the simulator console to start the device simulation.java -jar ./hawkbit-example-mgmt-simulator/target/hawkbit-example-mgmt-simulator-#version#-exec.jar
hawkBit is currently in '0.X' semantic version. That is due to the need that there is still content in hawkBit that is in need for refactoring. That includes the maven module structure, Spring Boot Properties, Spring Boot auto configuration as well as internal Java APIs (e.g. the repository API ).
However, the device facing DDI API is on major version 'v1' and will be kept stable.
Server facing and DMF API are Management API are on v1 as well. However, we cannot fully guarantee the same stability during hawkBit's 0.X development but we will try as best we can.
$ claude mcp add hawkbit \
-- python -m otcore.mcp_server <graph>