{"id":16097897,"url":"https://github.com/eclipse-hawkbit/hawkbit","last_synced_at":"2026-01-15T22:20:08.684Z","repository":{"id":2170896,"uuid":"45860898","full_name":"eclipse-hawkbit/hawkbit","owner":"eclipse-hawkbit","description":"Eclipse hawkBit™","archived":false,"fork":false,"pushed_at":"2025-05-05T15:46:32.000Z","size":34288,"stargazers_count":492,"open_issues_count":43,"forks_count":199,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-05-07T00:05:04.690Z","etag":null,"topics":["eclipseiot","internet-of-things","iot","software-provisioning"],"latest_commit_sha":null,"homepage":"https://projects.eclipse.org/projects/iot.hawkbit","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eclipse-hawkbit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-11-09T19:19:06.000Z","updated_at":"2025-05-02T09:18:05.000Z","dependencies_parsed_at":"2024-11-08T11:42:18.444Z","dependency_job_id":"d7ea445b-0e9a-4b57-a1bc-43d6bbb77fe3","html_url":"https://github.com/eclipse-hawkbit/hawkbit","commit_stats":{"total_commits":1986,"total_committers":74,"mean_commits":26.83783783783784,"dds":0.7497482376636455,"last_synced_commit":"e80bef6156fcf265c5e4d5bc6f4a3158a82a2f2f"},"previous_names":["eclipse-hawkbit/hawkbit","eclipse/hawkbit"],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-hawkbit%2Fhawkbit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-hawkbit%2Fhawkbit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-hawkbit%2Fhawkbit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-hawkbit%2Fhawkbit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-hawkbit","download_url":"https://codeload.github.com/eclipse-hawkbit/hawkbit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253919635,"owners_count":21984264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eclipseiot","internet-of-things","iot","software-provisioning"],"created_at":"2024-10-09T18:01:01.848Z","updated_at":"2026-01-15T22:20:08.677Z","avatar_url":"https://github.com/eclipse-hawkbit.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"\u003cimg src=hawkbit_logo.png width=533 height=246 /\u003e\n\n# Eclipse hawkBit™ - Update Server\n\nEclipse [hawkBit](http://www.eclipse.org/hawkbit/index.html) is an domain independent back end solution for rolling out\nsoftware updates to constrained edge devices as well as more powerful controllers and gateways connected to IP based\nnetworking infrastructure.\n\nBuild:\n[![Build Status](https://github.com/eclipse-hawkbit/hawkbit/actions/workflows/verify.yml/badge.svg?branch=master)](https://github.com/eclipse-hawkbit/hawkbit/actions/workflows/verify.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=eclipse-hawkbit_hawkbit\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=eclipse-hawkbit_hawkbit)\n[![Maven Central](https://img.shields.io/maven-central/v/org.eclipse.hawkbit/hawkbit-parent?label=maven-central\u0026color=blue)](https://search.maven.org/search?q=g:org.eclipse.hawkbit)\n[![Lines of code](https://img.shields.io/badge/dynamic/xml.svg?label=Lines%20of%20code\u0026url=https%3A%2F%2Fwww.openhub.net%2Fprojects%2Fhawkbit.xml%3Fapi_key%3D30bc3f3fad087c2c5a6a67a8071665ba0fbe3b6236ffbf71b7d20849f4a5e35a\u0026query=%2Fresponse%2Fresult%2Fproject%2Fanalysis%2Ftotal_code_lines\u0026colorB=lightgrey)](https://www.openhub.net/p/hawkbit)\n\nLicense:\n[![License](https://img.shields.io/badge/License-EPL%202.0-green.svg)](https://opensource.org/licenses/EPL-2.0)\n\nDocker:\n[![Docker](https://img.shields.io/docker/v/hawkbit/hawkbit-update-server/latest?color=blue)](https://hub.docker.com/r/hawkbit/hawkbit-update-server)\n[![Docker MYSQL](https://img.shields.io/docker/v/hawkbit/hawkbit-update-server/latest-mysql?color=blue)](https://hub.docker.com/r/hawkbit/hawkbit-update-server)\n[![Docker pulls](https://img.shields.io/docker/pulls/hawkbit/hawkbit-update-server.svg)](https://hub.docker.com/search?q=hawkbit%2Fhawkbit-update-server\u0026type=image)\n\n# Documentation\n\nsee [hawkBit Documentation](https://www.eclipse.dev/hawkbit/)\n\n# Contact us\n\n- Having questions about hawkBit? Check [Stack Overflow](https://stackoverflow.com/questions/tagged/eclipse-hawkbit)\n- Want to chat with the team behind\n  hawkBit? [![Join the chat at https://gitter.im/eclipse/hawkbit](https://badges.gitter.im/eclipse/hawkbit.svg)](https://gitter.im/eclipse/hawkbit?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n- Having issues with hawkBit? Open a [GitHub issue](https://github.com/eclipse-hawkbit/hawkbit/issues).\n- You can also check out our [Project Homepage](https://www.eclipse.dev/hawkbit) for further contact options.\n\n# hawkBit evaluation\n\nThe following vendors offer free trial accounts for their hawkBit compatible products:\n\n- [Bosch IoT Rollouts](https://bosch-iot-suite.com/service/rollouts/)\n- [Kynetics Update Factory](https://www.kynetics.com/iot-platform-update-factory)\n\n# Device Integration (Client libraries)\n\nhawkBit exposes HTTP/JSON based [Direct Device Integration (API) API](https://www.eclipse.org/hawkbit/apis/ddi_api/)\nthat allow any update client to integrate quite easily.\n\nThe [Eclipse Hara subproject](https://projects.eclipse.org/projects/iot.hawkbit.hara) aims to provide a reference agent\nsoftware implementation of the Eclipse hawkBit device API.\nThe [hara-ddiclient repository](https://github.com/eclipse-hara/hara-ddiclient) provides:\n\n- a Kotlin library that facilitates and speeds up the development of DDI API clients running on the JVM\n- a virtual-device application which provides:\n    - a reference example on how to use the library\n    - a configurable virtual device that can be used for different testing scenarios\n\nThe hara-ddiclient library has [reached version 2.x](https://github.com/eclipse-hara/hara-ddiclient/releases), and has\nbeen successfully used in production for years.\n\n## Other open-source hawkBit Clients\n\nThere are clients outside of the Eclipse IoT eco system as well, e.g.:\n\n- [SWupdate](https://github.com/sbabic/swupdate) which is a Linux Update agent with focus on a efficient and safe way to\n  update embedded systems.\n- [rauc-hawkbit-updater](https://github.com/rauc/rauc-hawkbit-updater) which is a hawkBit client for\n  the [RAUC](https://github.com/rauc/rauc) update framework written in C/glib.\n- [rauc-hawkbit](https://github.com/rauc/rauc-hawkbit) which is a python-based hawkBit client demo application and\n  library for the [RAUC](https://github.com/rauc/rauc) update framework.\n- [hawkbit-rs](https://github.com/collabora/hawkbit-rs) provides a couple of [Rust](https://www.rust-lang.org) crates to\n  help [implement](https://crates.io/crates/hawkbit) and [test](https://crates.io/crates/hawkbit_mock) hawkBit clients.\n- [Zephyr-RTOS](https://docs.zephyrproject.org/apidoc/latest/group__hawkbit.html#details):  The Zephyr OS is a\n  small-footprint kernel designed for use on resource-constrained and embedded systems: from simple embedded\n  environmental sensors and LED wearables to sophisticated embedded controllers, smart watches, and IoT wireless\n  applications.\n- [ChirpStack](https://www.chirpstack.io/docs/chirpstack-gateway-os/use/software-update.html): ChirpStack Gateway OS\n  uses [SWUpdate](https://github.com/sbabic/swupdate) for handling updates which can be integrated with Eclipse hawkBit.\n  ChirpStack is an open-source LoRaWAN Network Server which can be used to to setup private or public LoRaWAN networks.\n\n# Runtime dependencies and support\n\n## Java Runtime Environment: 17\n\n## SQL database\n\n| Database                          |                       H2                       |                             MySQL/MariaDB                             |                         PostgreSQL                         |\n|-----------------------------------|:----------------------------------------------:|:---------------------------------------------------------------------:|:----------------------------------------------------------:|\n| DDLs maintained by project        |               :white_check_mark:               |                          :white_check_mark:                           |                     :white_check_mark:                     |\n| Test dependencies defined         |               :white_check_mark:               |                          :white_check_mark:                           |                     :white_check_mark:                     |\n| Docker image with driver provided |               :white_check_mark:               |                           :white_check_mark                           |                     :white_check_mark:                     |\n| JDBC driver                       | [H2](https://github.com/h2database/h2database) | [MariaDB Connector/J](https://github.com/MariaDB/mariadb-connector-j) | [PostgreSQL JDBC Driver](https://github.com/pgjdbc/pgjdbc) |\n| Status                            |                   Test, Dev                    |                           Production grade                            |                         Test, Dev                          |\n\n## (Optional) RabbitMQ: 3.6,3.7,3.8\n\n# Getting Started\n\nWe are providing a [Spring Boot](https://projects.spring.io/spring-boot/) based\nreference [Update Server](hawkbit-monolith/hawkbit-update-server) including embedded H2 DB for test and evaluation\npurposes.\nRun with docker:\n\n```bash\ndocker run -d -p 8080:8080 hawkbit/hawkbit-update-server\n```\n\nThe monolith update server will start on port 8080 with default configuration and H2 database. The default user `admin:admin` is configured.\n\nThe Swagger UI is available at: [http://localhost:8080/swagger-ui/index.html](http://localhost:8080/swagger-ui/index.html)\n\nSee below for how to build and run the update server on your own. In addition we have\na [guide](https://www.eclipse.org/hawkbit/guides/runhawkbit/) for setting up a complete landscape.\n\n**Note**: this docker image supports both DDI and DMF APIs. However, in order to have DMF API working you shall have\nstarted additionally RabbitMQ on localhost:5672 with user guest/guest. Then the DMF will use / vhost. See more\nat [guide](https://www.eclipse.org/hawkbit/guides/runhawkbit/) -\u003e _Configure RabbitMQ connection settings_.\n\n# hawkBit (Spring boot) starters\n\nNext to the [Update Server](hawkbit-monolith/hawkbit-update-server) we are also providing a set\nof [Spring Boot Starters](hawkbit-starters) to quick start your\nown [Spring Boot](https://projects.spring.io/spring-boot/) based application.\n\n# Clone, build and run hawkBit\n\n## Clone and build\n\n```bash\ngit clone https://github.com/eclipse-hawkbit/hawkbit.git\ncd hawkbit\nmvn clean install\n```\n\n## Start hawkBit [Update Server](hawkbit-monolith/hawkbit-update-server)\n\n```bash\njava -jar ./hawkbit-monolith/hawkbit-update-server/target/hawkbit-update-server-0-SNAPSHOT.jar\n```\n\nThe monolith update server will start on port 8080 with default configuration and H2 database. The default user `admin:admin` is configured.\n\nThe Swagger UI is available at: [http://localhost:8080/swagger-ui/index.html](http://localhost:8080/swagger-ui/index.html)\n\n## Start hawkBit [UI](hawkbit-ui)\n\n```bash\njava -jar ./hawkbit-ui/target/hawkbit-ui.jar\n```\n\nLog in to [hawkbit UI](http://localhost:8088) with default `admin:admin` user.\n\n## Start hawkBit [Device Simulator](hawkbit-sdk/hawkbit-sdk-demo)\n\n* Enable gateway token authentication - on update server set tenant configuration properties (via [Swagger UI](http://localhost:8080/swagger-ui/index.html) or [hawkBit\n  UI](http://localhost:8088)):\n    * `authentication.gatewaytoken.enabled=true` and\n    * `authentication.gatewaytoken.key=\u003cgw_token\u003e`)\n* Start demo Device Simulator - in the script below edit the environment properties accordingly.\n    * DDI url `http://localhost:8080` is default URL when running monolith update server.\n    * Set `hawkbit_tenant_gatewaytoken` to the configured gateway token (`authentication.gatewaytoken.key`))\n    * Then run:\n\n```bash\nexport hawkbit_server_ddiurl=http://localhost:8080\nexport demo_controller_id=demo\nexport hawkbit_tenant_gatewaytoken=gw_token\n\njava -jar ./hawkbit-sdk/hawkbit-sdk-demo/target/hawkbit-sdk-demo-0-SNAPSHOT.jar\n```\n\n* Execute `start` command in the simulator console to start the device simulation.\n* Your device will be registered automatically on the update server and will start polling for updates.\n\n## Generate getting started data with the [Management API example](https://github.com/eclipse-hawkbit/hawkbit-examples/tree/master/hawkbit-example-mgmt-simulator) (optional)\n\n```bash\njava -jar ./hawkbit-example-mgmt-simulator/target/hawkbit-example-mgmt-simulator-#version#-exec.jar\n```\n\n# Status and API stability\n\nhawkBit is currently in '0.X' semantic version. That is due to the need that there is still content in hawkBit that is\nin need for refactoring. That includes the maven module structure, Spring Boot Properties, Spring Boot auto\nconfiguration as well as internal Java APIs (e.g.\nthe [repository API](https://github.com/eclipse-hawkbit/hawkbit/issues/197) ).\n\nHowever, the device\nfacing [DDI API](https://github.com/eclipse-hawkbit/hawkbit/tree/master/hawkbit-rest/hawkbit-ddi-api) is on major\nversion 'v1' and will be kept stable.\n\nServer facing and [DMF API](https://github.com/eclipse-hawkbit/hawkbit/tree/master/hawkbit-dmf/hawkbit-dmf-api)\nare [Management API](https://github.com/eclipse-hawkbit/hawkbit/tree/master/hawkbit-mgmt/hawkbit-mgmt-api) are on v1 as\nwell. However, we cannot fully guarantee the same stability during hawkBit's 0.X development but we will try as best we\ncan.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-hawkbit%2Fhawkbit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-hawkbit%2Fhawkbit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-hawkbit%2Fhawkbit/lists"}