Web UI for hawkBit based on Vaadin Flow (Spring Boot application,
org.eclipse.hawkbit.ui.HawkbitUiApp). The UI has no own database - it works entirely over the hawkBit Management API
(via hawkbit-sdk-commons Feign clients over hawkbit-mgmt-api interfaces), so it needs a running
hawkbit-update-server or hawkbit-mgmt-server. User guide: hawkBit UI.
The build needs Node.js / npm (the vaadin-maven-plugin runs prepare-frontend and build-frontend in the compile
phase and always makes a production frontend bundle - forceProductionBuild=true):
$ mvn clean install -pl hawkbit-ui -am
The repackaged executable jar is hawkbit-ui/target/hawkbit-ui.jar (finalName of the spring-boot-maven-plugin,
installed in the maven repository as hawkbit-ui-0-SNAPSHOT.jar).
Vaadin generates frontend files (package.json, package-lock.json, vite.config.ts, tsconfig.json, types.d.ts,
node_modules, src/main/frontend/*, ...) during the build. They are ignored by hawkbit-ui/.gitignore - only
src/main/frontend/themes/ is tracked.
$ java -jar hawkbit-ui/target/hawkbit-ui.jar --hawkbit.server.mgmtUrl=http://localhost:8080
Or run org.eclipse.hawkbit.ui.HawkbitUiApp from the IDE, or mvn in hawkbit-ui (default goal is
spring-boot:run).
Open http://localhost:8088 and log in with a user of the Management API (e.g. admin/admin for the default
update server setup) - the credentials are validated against <mgmtUrl>/rest/v1/rollouts and then used for all
Management API calls.
See OpenID Connect for the OIDC setup. Docker Compose files with UI
(*-with-ui-*.yml) are in docker/mysql and docker/postgres.
