diff --git a/hawkbit-runtime/README.md b/hawkbit-runtime/README.md
index 446001cc87..3793b6b414 100644
--- a/hawkbit-runtime/README.md
+++ b/hawkbit-runtime/README.md
@@ -11,6 +11,5 @@ hawkBit Runtime
| `hawkbit-ddi-server/` | Spring-Boot application of hawkBit DDI server. |
| `hawkbit-dmf-server/` | Spring-Boot application of hawkBit DMF server. |
| `hawkbit-mgmt-server/` | Spring-Boot application of hawkBit Management server. Provides REST Management API and rollouts / auto assigment processing |
-| `hawkbit-vv8-ui/` | Spring-Boot application of hawkBit Vaadin 8 UI. |
Note: micro service setup requires all services using DB to use same shared DB. So, they don't work with default in memory H2 database. Docker compose with mysql shows an example setup.
diff --git a/hawkbit-runtime/docker/docker-compose-micro-services-mysql.yml b/hawkbit-runtime/docker/docker-compose-micro-services-mysql.yml
index 78b7d9ae36..7e11b6ef09 100644
--- a/hawkbit-runtime/docker/docker-compose-micro-services-mysql.yml
+++ b/hawkbit-runtime/docker/docker-compose-micro-services-mysql.yml
@@ -75,29 +75,3 @@ services:
labels:
NAME: "hawkbit-mgmt"
-
- # ---------------------
- # HawkBit MGMT
- # ---------------------
- hawkbit-vv8ui:
- image: "hawkbit/hawkbit-vv8-ui:latest-mysql"
- environment:
- - 'SPRING_DATASOURCE_URL=jdbc:mariadb://mysql:3306/hawkbit'
- - 'SPRING_RABBITMQ_HOST=rabbitmq'
- - 'SPRING_RABBITMQ_USERNAME=guest'
- - 'SPRING_RABBITMQ_PASSWORD=guest'
- - 'SPRING_DATASOURCE_USERNAME=root'
- volumes:
- - artifactrepo:/artifactrepo
- restart: always
- ports:
- - "8082:8082"
- depends_on:
- mysql:
- condition: service_healthy
- labels:
- NAME: "hawkbit-vv8-ui"
-
-volumes:
- artifactrepo:
- driver: local
diff --git a/hawkbit-runtime/docker/docker_build/build_all_dev.sh b/hawkbit-runtime/docker/docker_build/build_all_dev.sh
index 4538bab84d..06bcf64ca1 100755
--- a/hawkbit-runtime/docker/docker_build/build_all_dev.sh
+++ b/hawkbit-runtime/docker/docker_build/build_all_dev.sh
@@ -51,7 +51,6 @@ function build() {
build "hawkbit-ddi-server"
build "hawkbit-dmf-server"
build "hawkbit-mgmt-server"
-build "hawkbit-vv8-ui"
build "hawkbit-simple-ui"
build "hawkbit-update-server"
diff --git a/hawkbit-runtime/hawkbit-vv8-ui/README.md b/hawkbit-runtime/hawkbit-vv8-ui/README.md
deleted file mode 100644
index 24b8e1a080..0000000000
--- a/hawkbit-runtime/hawkbit-vv8-ui/README.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# hawkBit Vaadin 8 UI (EXPERIMENTAL and already DEPRECATED!)
-The hawkBit Vaadin v8 UI is a standalone spring-boot application with an embedded servlet container. It should be started with at least hawkbit-mgmt-server.
-
-## On your own workstation
-
-### Run
-
-```bash
-java -jar hawkbit-runtime/hawkbit-vv8-ui/target/hawkbit-vv8-ui-*-SNAPSHOT.jar
-```
-
-_(Note: you have to add the JDBC driver also to your class path if you intend to use another database than H2.)_
-
-Or:
-
-```bash
-run org.eclipse.hawkbit.app.vv8ui.Vv8UIStart
-```
-
-### Usage
-The Management UI can be accessed via http://localhost:8082/UI
-
-### Clustering (Experimental!!!)
-The micro-service instances are configured to communicate via Spring Cloud Bus. You could run multiple instances of any micro-service but hawkbit-mgmt-server. Management server run some schedulers which shall not run simultaneously - e.g. auto assignment checker and rollouts executor. To run multiple management server instances you shall do some extensions of hawkbit to ensure that they wont run schedulers simultaneously or you shall configure all instances but one to do not run schedulers!
-
-## Optional Protostuff for Sprign cloud bus
-The micro-service instances are configured to communicate via Spring Cloud Bus. Optionally, you could use [Protostuff](https://github.com/protostuff/protostuff) based message payload serialization for improved performance.
-
-**Note**: If Protostuff is enabled it shall be enabled on all microservices!
-
-Add/Uncomment to/in your `application.properties` :
-
-```properties
-spring.cloud.stream.bindings.springCloudBusInput.content-type=application/binary+protostuff
-spring.cloud.stream.bindings.springCloudBusOutput.content-type=application/binary+protostuff
-```
-
-Add to your `pom.xml` :
-
-```xml
-
- io.protostuff
- protostuff-core
-
-
- io.protostuff
- protostuff-runtime
-
-```
\ No newline at end of file
diff --git a/hawkbit-runtime/hawkbit-vv8-ui/pom.xml b/hawkbit-runtime/hawkbit-vv8-ui/pom.xml
deleted file mode 100644
index d1ab6f26eb..0000000000
--- a/hawkbit-runtime/hawkbit-vv8-ui/pom.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- 4.0.0
-
- org.eclipse.hawkbit
- hawkbit-runtime-parent
- ${revision}
-
- hawkbit-vv8-ui
- hawkBit :: Runtime :: Vaadin v8 UI
-
-
- org.eclipse.hawkbit.app.vv8ui.Vaadin8UIStart
-
-
-
-
- org.eclipse.hawkbit
- hawkbit-boot-starter-mgmt-ui
- ${project.version}
-
-
-
- org.springframework.cloud
- spring-cloud-stream-binder-rabbit
-
-
-
\ No newline at end of file
diff --git a/hawkbit-runtime/hawkbit-vv8-ui/src/main/java/org/eclipse/hawkbit/app/vv8ui/ErrorController.java b/hawkbit-runtime/hawkbit-vv8-ui/src/main/java/org/eclipse/hawkbit/app/vv8ui/ErrorController.java
deleted file mode 100644
index 4b2734b18c..0000000000
--- a/hawkbit-runtime/hawkbit-vv8-ui/src/main/java/org/eclipse/hawkbit/app/vv8ui/ErrorController.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * Copyright (c) 2015 Bosch Software Innovations GmbH and others
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-package org.eclipse.hawkbit.app.vv8ui;
-
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.boot.autoconfigure.web.ServerProperties;
-import org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController;
-import org.springframework.boot.web.servlet.error.ErrorAttributes;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-/**
- * Error page controller that ensures that ocet stream does not return text in
- * case of an error.
- */
-@Controller
-// Exception squid:S3752 - errors need handling for all methods
-@SuppressWarnings("squid:S3752")
-public class ErrorController extends BasicErrorController {
-
- private static final String PATH = "path";
-
- /**
- * A new {@link ErrorController}.
- *
- * @param errorAttributes
- * the error attributes
- * @param serverProperties
- * configuration properties
- */
- public ErrorController(final ErrorAttributes errorAttributes, final ServerProperties serverProperties) {
- super(errorAttributes, serverProperties.getError());
- }
-
- @RequestMapping(produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
- public ResponseEntity errorStream(final HttpServletRequest request, final HttpServletResponse response) {
- final HttpStatus status = getStatus(request);
- return new ResponseEntity<>(status);
- }
-
- @Override
- @RequestMapping
- public ResponseEntity