Coder Social home page Coder Social logo

hoanguyenduc / hawkbit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eclipse/hawkbit

0.0 1.0 0.0 17.25 MB

Eclipse hawkBit™

Home Page: https://projects.eclipse.org/projects/iot.hawkbit

License: Eclipse Public License 1.0

Shell 0.07% Java 98.65% PLSQL 0.01% CSS 1.27% HTML 0.01%

hawkbit's Introduction

Eclipse hawkBit™ - Update Server

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.

Build: Circle CI SonarQuality Maven Central

Documentation

see hawkBit Documentation

Contact us

  • Want to chat with the team behind hawkBit? Join the chat at https://gitter.im/eclipse/hawkbit
  • Having issues with hawkBit? Open a GitHub issue.
  • You can also check out our Project Homepage for further contact options.

Examples and Extensions

Next to the hawkBit core hosted here the project maintains as well examples and extension repositories.

hawkBit sandbox

We offer a sandbox installation that is free for everyone to try out hawkBit. However, keep in mind that the sandbox database will be reset from time to time. It is also not possible to upload any artifacts into the sandbox. But you can use it to try out the Management UI, Management API and DDI API.

https://hawkbit.eu-gb.mybluemix.net/UI/

In addition the following vendors offer free trial accounts for their hawkBit compatible products:

Device Integration

hawkBit does not provide off the shelf clients for devices as part of the project. The long term goal is to provide an Eclipse hono integration which will provide connectivity through various IoT protocols and as a result allows a wide range of clients to connect to hawkBit. However, the hawkBit Direct Device Integration (API) API is HTTP/JSon based which should allow any update client to integrate quite easily.

There are clients outside of the Eclipse IoT eco system as well, e.g.:

  • SWupdate which is a Linux Update agent with focus on a efficient and safe way to update embedded systems.

  • rauc-hawkbit which is a python-based hawkBit client application and library for the RAUC update framework.

Runtime dependencies and support

Java Runtime Environment: 1.8

SQL database

Database H2 MySQL/MariaDB MS SQL Server IBM DB2
DDLs maintained by project X X X X
Test dependencies defined X X X -
Versions tested 1.4 MySQL 5.6/5.7, AWS Aurora MS SQL Server 2017 DB2 Server v11.1
Docker image with driver provided X X (Tag: "-mysql") X -
JDBC driver H2 1.4 MariaDB Connector/J 2.0 MSSQL-JDBC 6.4 -
Status Test, Dev, Trial Production grade Production grade Test, Dev

(Optional) RabbitMQ: 3.6,3.7

Getting Started

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

Open the update server in your browser:

localhost:8080

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.

hawkBit (Spring boot) starters

Next to the Update Server we are also providing a set of Spring Boot Starters to quick start your own Spring Boot based application.

Clone, build and run hawkBit

Build and start hawkBit Update Server

$ git clone https://github.com/eclipse/hawkbit.git
$ cd hawkbit
$ mvn clean install
$ java -jar ./hawkbit-runtime/hawkbit-update-server/target/hawkbit-update-server-#version#.jar

Start hawkBit Device Simulator (optional)

$ git clone https://github.com/eclipse/hawkbit-examples.git
$ cd hawkbit-examples
$ mvn clean install
$ java -jar ./hawkbit-device-simulator/target/hawkbit-device-simulator-#version#.jar

Generate getting started data with the Management API example (optional)

$ java -jar ./hawkbit-example-mgmt-simulator/target/hawkbit-example-mgmt-simulator-#version#-exec.jar

Releases and Roadmap

  • In the upcoming release 0.2:
    • Rollout management for large scale update campaigns.
    • Clustering capabilities for the update server.
    • Upgrade of Spring Boot and Vaadin dependencies (Boot 1.4, Vaadin 7.7).
    • Improvements on modularization and customizability based on Spring's auto-configuration mechanism.
    • Provide Spring Boot Starters for custom apps based on hawkBit.
    • Provide standard runtime by means of Spring Boot based hawkBit update server (and hopefully a docker image).
    • And of course tons of usability improvements and bug fixes.
  • Future releases
    • Integrate with Eclipse hono as DMF provider.
    • Flexible DMF messaging infrastructure (e.g. with Spring Cloud Stream).
    • Migrate to Spring Framework 5, Spring Boot 2 and Vaadin 8
    • Re-evaluate JPA as persistence provider (e.g. look into jOOQ)

Status and API stability

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.

hawkbit's People

Contributors

kaizimmerm avatar michahirsch avatar melled avatar jonkno avatar asharani-murugesh avatar venu1278 avatar dominikhb avatar marcelmager avatar stormc avatar blomark avatar bogdan-bondar avatar stefbehl avatar chombourger avatar dyu avatar dometec avatar eclipsewebmaster avatar oflebbe avatar waynebeaton avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.