+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+# Building and running CPS locally
+
+## Building Java Archive only
+
+Following command builds all Java components to `cps-application/target/cps-application-x.y.z-SNAPSHOT.jar` JAR file
+without generating any docker images:
+
+```bash
+mvn clean install -Pcps-docker -Pncmp-docker -Pcps-ncmp-docker -Djib.skip
+```
+
+## Building Java Archive and Docker images
+
+* Following command builds the JAR file and also generates the Docker image for all CPS components:
+
+```bash
+mvn clean install -Pcps-docker -Pncmp-docker -Pcps-ncmp-docker
+```
+
+* Following command builds the JAR file and generates the Docker image for specified CPS component:
+ (with `<docker-profile>` being one of `cps-docker`, `ncmp-docker` or `cps-ncmp-docker`):
+
+```bash
+mvn clean install -P<docker-profile>
+```
+
+## Running Docker containers
+
+`docker-compose/docker-compose.yml` file is provided to be run with `docker-compose` tool and images previously built.
+It starts both Postgres database and CPS services.
+
+1. Edit `docker-compose.yml`
+ 1. uncomment desired service to be deployed, by default `cps-and-ncmp` is enabled. You can comment it and uncomment `cps-standalone` or `ncmp-standalone`.
+ 2. To send data-updated events to kafka,
+ * uncomment the `zookeeper` and `kafka` services.
+ * uncomment environment variables
+ * `notification.data-updated.enabled: 'true'`
+ * `KAFKA_BOOTSTRAP_SERVER: kafka:9092`
+ * `NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*'`
+2. Execute following command from `docker-compose` folder:
+
+Use one of the below version type that has been generated in the local system's docker image list after the build.