diff --git a/Makefile b/Makefile
index b6617fcef5e3566f3509f4b2a5bae7cd839ce011..cdb4752f7748cc24369ff1c9653609d0fa9e76c6 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,12 @@ all: build
 
 clean:
 
+release-deps:
+	pip3 install -r ./dockerhub/requirements.txt
+
+release: release-deps
+	python3 ./dockerhub/release.py
+
 build:
 	docker-compose build
 	docker-compose up
diff --git a/dockerhub/_header.md b/dockerhub/_header.md
index d23d951a9d1c3019d5211d36929460c63899e3a8..64d82353ad49247715e2efd1ee9771ccb4470715 100644
--- a/dockerhub/_header.md
+++ b/dockerhub/_header.md
@@ -11,7 +11,7 @@
 
 # Supported tags and respective `Dockerfile` links
 
-* [`latest`](https://hub.docker.com/repository/docker/dbrepo/metadata-db/tags?page=1&ordering=last_updated&name=latest)
+* [`latest`](https://hub.docker.com/repository/docker/dbrepo/REPOSITORY/tags?page=1&ordering=last_updated&name=latest)
 
 # Quick reference (cont.)
 
diff --git a/dockerhub/client/Dockerhub.py b/dockerhub/client/Dockerhub.py
index ce81fd029eff5a8d0c3800df2edb139822b5e0bc..a39a0ad37fed1e0149c85136f17dbd36ec223adf 100644
--- a/dockerhub/client/Dockerhub.py
+++ b/dockerhub/client/Dockerhub.py
@@ -27,7 +27,7 @@ class Dockerhub:
 
 
     def modify_description(self, repository):
-        header = self.__read__(self.workpath + "/_header.md")
+        header = self.__read__(self.workpath + "/_header.md").replace('REPOSITORY', repository)
         body = self.__read__(self.workpath + "/fda-" + repository + ".md")
         response = rq.patch(self.baseurl + "/v2/repositories/" + self.username + "/" + repository + "/", headers=self.headers,
             json={
diff --git a/dockerhub/client/__pycache__/Dockerhub.cpython-39.pyc b/dockerhub/client/__pycache__/Dockerhub.cpython-39.pyc
index 6cf5575639fff1b79d6a06695052a1b88adc5607..5535c2fce12196d1edd443b9d660ee68cdeaabf5 100644
Binary files a/dockerhub/client/__pycache__/Dockerhub.cpython-39.pyc and b/dockerhub/client/__pycache__/Dockerhub.cpython-39.pyc differ
diff --git a/dockerhub/fda-analyse-service.md b/dockerhub/fda-analyse-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..b4751b5a17965622f229b206c51c8d8b6e1d3b7f
--- /dev/null
+++ b/dockerhub/fda-analyse-service.md
@@ -0,0 +1,15 @@
+# How to use this image
+
+```console
+$ docker run -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp -p 5000:5000
+```
+
+## Swagger Endpoints
+
+* **OpenAPI**:
+
+  http://localhost:5000/swagger-ui/
+
+* **OpenAPI `.json`**:
+  
+  http://localhost:5000/api-analyze.json
diff --git a/dockerhub/fda-authentication-service.md b/dockerhub/fda-authentication-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..298ceacd3fd5e11432895dc6fe6bdc982202d9d0
--- /dev/null
+++ b/dockerhub/fda-authentication-service.md
@@ -0,0 +1,19 @@
+# How to use this image
+
+```console
+$ docker run -p 9097:9097 -e SPRING_PROFILES_ACTIVE=docker
+```
+
+## Swagger Endpoints
+
+* **OpenAPI**:
+
+  http://localhost:9097/swagger-ui/index.html
+
+* **OpenAPI `.json`**:
+  
+  http://localhost:9097/v3/api-docs/
+
+* **OpenAPI `.yaml`**:
+
+  http://localhost:9097/v3/api-docs.yaml
diff --git a/dockerhub/fda-broker-service.md b/dockerhub/fda-broker-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..980e92ff7f20271167ff11b5c743836cbd02896b
--- /dev/null
+++ b/dockerhub/fda-broker-service.md
@@ -0,0 +1,25 @@
+# How to use this image
+
+```console
+$ docker run -v ./fda-broker-service-data:/var/lib/rabbitmq/ -p 9098:9098 -p 5672:5672 -p 15672:15672
+```
+
+## Swagger Endpoints
+
+* **OpenAPI**:
+
+  http://localhost:9098/swagger-ui/index.html
+
+* **OpenAPI `.json`**:
+  
+  http://localhost:9098/v3/api-docs/
+
+* **OpenAPI `.yaml`**:
+
+  http://localhost:9098/v3/api-docs.yaml
+
+## RabbitMQ Endpoints
+
+* **Management**:
+
+  http://localhost:15672/
diff --git a/dockerhub/fda-container-service.md b/dockerhub/fda-container-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..878394cf3b34e605de816f778f2da9e85d1c10a2
--- /dev/null
+++ b/dockerhub/fda-container-service.md
@@ -0,0 +1,19 @@
+# How to use this image
+
+```console
+$ docker run -p 9091:9091 -v /var/run/docker.sock:/var/run/docker.sock -e SPRING_PROFILES_ACTIVE=docker
+```
+
+## Swagger Endpoints
+
+* **OpenAPI**:
+
+  http://localhost:9091/swagger-ui/index.html
+
+* **OpenAPI `.json`**:
+  
+  http://localhost:9091/v3/api-docs/
+
+* **OpenAPI `.yaml`**:
+
+  http://localhost:9091/v3/api-docs.yaml
diff --git a/dockerhub/fda-database-service.md b/dockerhub/fda-database-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..0c306714bfa38203593dfc98c193d421fa8486e3
--- /dev/null
+++ b/dockerhub/fda-database-service.md
@@ -0,0 +1,19 @@
+# How to use this image
+
+```console
+$ docker run -p 9092:9092 -v /var/run/docker.sock:/var/run/docker.sock -e SPRING_PROFILES_ACTIVE=docker
+```
+
+## Swagger Endpoints
+
+* **OpenAPI**:
+
+  http://localhost:9092/swagger-ui/index.html
+
+* **OpenAPI `.json`**:
+  
+  http://localhost:9092/v3/api-docs/
+
+* **OpenAPI `.yaml`**:
+
+  http://localhost:9092/v3/api-docs.yaml
diff --git a/dockerhub/fda-gateway-service.md b/dockerhub/fda-gateway-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..f768bda12b9d231f4af5bbe4f5632f6dbc8b56dc
--- /dev/null
+++ b/dockerhub/fda-gateway-service.md
@@ -0,0 +1,5 @@
+# How to use this image
+
+```console
+$ docker run -p 9095:9095 -e SPRING_PROFILES_ACTIVE=docker
+```
diff --git a/dockerhub/fda-identifier-service.md b/dockerhub/fda-identifier-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..bb68f6d3cadadd5a637f14183145919520235d17
--- /dev/null
+++ b/dockerhub/fda-identifier-service.md
@@ -0,0 +1,19 @@
+# How to use this image
+
+```console
+$ docker run -p 9096:9096 -e SPRING_PROFILES_ACTIVE=docker
+```
+
+## Swagger Endpoints
+
+* **OpenAPI**:
+
+  http://localhost:9096/swagger-ui/index.html
+
+* **OpenAPI `.json`**:
+  
+  http://localhost:9096/v3/api-docs/
+
+* **OpenAPI `.yaml`**:
+
+  http://localhost:9096/v3/api-docs.yaml
diff --git a/dockerhub/fda-query-service.md b/dockerhub/fda-query-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..9929bda5d893b4498da6d4c6a45feda3bf41b807
--- /dev/null
+++ b/dockerhub/fda-query-service.md
@@ -0,0 +1,19 @@
+# How to use this image
+
+```console
+$ docker run -p 9093:9093 -e SPRING_PROFILES_ACTIVE=docker
+```
+
+## Swagger Endpoints
+
+* **OpenAPI**:
+
+  http://localhost:9093/swagger-ui/index.html
+
+* **OpenAPI `.json`**:
+  
+  http://localhost:9093/v3/api-docs/
+
+* **OpenAPI `.yaml`**:
+
+  http://localhost:9093/v3/api-docs.yaml
diff --git a/dockerhub/fda-search-service.md b/dockerhub/fda-search-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..7b6a38a492de7d41eaea0b5828f0df5265769515
--- /dev/null
+++ b/dockerhub/fda-search-service.md
@@ -0,0 +1,11 @@
+# How to use this image
+
+```console
+$ docker run -p 9200:9200 -p 9600:9600 -e discovery.type=single-node -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e logger.level=WARN
+```
+
+## ElasticSearch Endpoints
+
+* **Database Index**:
+
+  http://localhost:9000/databaseindex
diff --git a/dockerhub/fda-table-service.md b/dockerhub/fda-table-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..76e22e92b9806d9e6306dbf3b2b3741b2def4544
--- /dev/null
+++ b/dockerhub/fda-table-service.md
@@ -0,0 +1,19 @@
+# How to use this image
+
+```console
+$ docker run -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp -p 9094:9094 -e SPRING_PROFILES_ACTIVE=docker
+```
+
+## Swagger Endpoints
+
+* **OpenAPI**:
+
+  http://localhost:9094/swagger-ui/index.html
+
+* **OpenAPI `.json`**:
+  
+  http://localhost:9094/v3/api-docs/
+
+* **OpenAPI `.yaml`**:
+
+  http://localhost:9094/v3/api-docs.yaml
diff --git a/dockerhub/fda-ui.md b/dockerhub/fda-ui.md
new file mode 100644
index 0000000000000000000000000000000000000000..1a1332c9c6d49e036c72e6311f441e5797a65b21
--- /dev/null
+++ b/dockerhub/fda-ui.md
@@ -0,0 +1,17 @@
+# How to use this image
+
+```console
+$ docker run -v /tmp:/tmp -p 3000:3000 -e HOST=0.0.0.0 -e API=http://fda-gateway-service:9095
+```
+
+## Graphical Endpoints
+
+* **FAIR Portal**:
+
+  http://localhost:3000/
+
+## Middleware Endpoints
+
+* **HTTP API**:
+  
+  http://localhost:3000/api/
diff --git a/dockerhub/fda-units-service.md b/dockerhub/fda-units-service.md
new file mode 100644
index 0000000000000000000000000000000000000000..1e409e3351440599be5352b51edbfc2625570bfe
--- /dev/null
+++ b/dockerhub/fda-units-service.md
@@ -0,0 +1,15 @@
+# How to use this image
+
+```console
+$ docker run -p 5010:5010 -e SPRING_PROFILES_ACTIVE=docker
+```
+
+## Swagger Endpoints
+
+* **OpenAPI**:
+
+  http://localhost:5010/swagger-ui/
+
+* **OpenAPI `.json`**:
+  
+  http://localhost:5010/api-analyze.json
diff --git a/dockerhub/release.py b/dockerhub/release.py
new file mode 100755
index 0000000000000000000000000000000000000000..dc6c442eb5680f53f04bb8264e28d429e8d7b626
--- /dev/null
+++ b/dockerhub/release.py
@@ -0,0 +1,11 @@
+#!/bin/env python3
+from client.Dockerhub import Dockerhub
+
+dockerhub = Dockerhub()
+
+if __name__ == "__main__":
+    for component in ["analyse-service", "authentication-service", "broker-service", "container-service",
+                      "database-service", "discovery-service", "gateway-service", "identifier-service",
+                      "metadata-db", "query-service", "search-service", "table-service", "ui", "units-service"]:
+        response = dockerhub.modify_description(component)
+        print(response)
\ No newline at end of file
diff --git a/dockerhub/response.py b/dockerhub/response.py
deleted file mode 100644
index 3f85fa99505a7e325c294ae17f790509c768cfc0..0000000000000000000000000000000000000000
--- a/dockerhub/response.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from client.Dockerhub import Dockerhub
-
-dockerhub = Dockerhub()
-
-for component in ["discovery-service", "metadata-db"]:
-    response = dockerhub.modify_description(component)
-    print(response)
diff --git a/docs/getting-started.md b/docs/getting-started.md
index c2712858e957c5b9b29661d85651b1aa8806fa3f..b972139f5db3345fcbed8724bc74c13dc1e6d014 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -25,39 +25,54 @@ For this small, local, test deployment any modern hardware would suffice, we rec
 
 ### Software
 
-=== "Linux"
+Install [:fontawesome-brands-docker: Docker Engine](https://docs.docker.com/engine/install/) for your OS.
 
-    Install [Docker Desktop](https://docs.docker.com/desktop/install/linux-install/) for Linux
+## Deployment
 
-=== "Windows"
+We currently maintain 14 images on [Dockerhub](https://hub.docker.com/u/dbrepo).
 
-    Install [Docker Desktop](https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe) for Windows
+=== ":fontawesome-brands-linux: Linux"
 
-=== "macOS"
+    Download the latest [`docker-compose.yml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.yml)
+    
+    ```console
+    wget https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.yml
+    ```
 
-    Install [Docker Desktop](https://desktop.docker.com/mac/main/amd64/Docker.dmg) for macOS
+    Start the services
 
-## Deployment
+    ```console
+    docker-compose up -d
+    ```
 
-Download the latest [`docker-compose.yml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.yml)
-file and deploy the system using your command line.
+=== ":fontawesome-brands-windows: Windows"
 
-=== "Linux"
 
+    Download the latest [`docker-compose.yml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.yml)
+    
     ```console
-    docker-compose up
+    curl.exe -o docker-compose.yml https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.yml
     ```
 
-=== "Windows"
+    Start the services
+
+    ```console
+    docker-compose up -d
+    ```
+
+=== ":fontawesome-brands-apple: macOS"
+
 
+    Download the latest [`docker-compose.yml`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.yml)
+    
     ```console
-    docker-compose up
+    wget https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/docker-compose.yml
     ```
 
-=== "macOS"
+    Start the services
 
     ```console
-    docker-compose up
+    docker-compose up -d
     ```
 
 The system is auto-configured for a small, local, test deployment. You only need to start all containers by executing:
diff --git a/docs/index.md b/docs/index.md
index 46753f4bb414b51c8b5c4c60e41abc7effaecb00..a05d4acbd3b16c71c91f10206749387b1810ef97 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -22,19 +22,8 @@ We present a database repository system that allows researchers to ingest data i
 through common interfaces, provides efficient access to arbitrary subsets of data even when the underlying data store is
 evolving, allows reproducing of query results and supports findable-, accessible-, interoperable- and reusable data.
 
-![Preview image for the teaser video explaining the use-cases and benefits of using the database repository](/images/preview.png)
-{ #teaser-preview }
-
-<video id="teaser-video" autoplay class="hidden" preload="none" controls poster="/images/preview.png">
-  <source src="/videos/teaser.mp4" type="video/mp4">
-  Your browser does not support the video tag.
-</video>
-
-[Play Video](javascript:play();){ .action-button .md-button .md-button--secondary }
-
 ## More Information
 
-- This documentation can be downloaded as [PDF](/pdf/documentation.pdf)
 - Public demonstration instance [https://dbrepo.ossdip.at](https://dbrepo.ossdip.at)
 - Join our [mailing list](https://lists.univie.ac.at/mailman/listinfo/fairdata_dbrepo) to receive bi-monthly updates
   about the progress, new features and events!
@@ -50,12 +39,3 @@ video {
   display: none;
 }
 </style>
-<script>
-var preview = document.getElementById('teaser-preview'); 
-var video = document.getElementById('teaser-video');    
-function play() {
-  preview.classList.add('hidden');
-  video.classList.remove('hidden');
-  video.play();
-}
-</script>
diff --git a/docs/system.md b/docs/system.md
index 6c0adc12a2b872a62e129a87450b1e9274e4d736..6a7dc33ff75b4a45ac0589af4c2f39b6356af003 100644
--- a/docs/system.md
+++ b/docs/system.md
@@ -292,4 +292,4 @@ numerical columns.
 
     * Port(s): 5000
     * Swagger UI: [/swagger-ui/](http://localhost:5000/swagger-ui/)
-    * Swagger API .json: [/api-analyze.json](http://localhost:5000//api-analyze.json)
+    * Swagger API .json: [/api-analyze.json](http://localhost:5000/api-analyze.json)
diff --git a/mkdocs.yml b/mkdocs.yml
index 0048462c0fd59499c9ff50df141f23961f5c673d..98ad63fa5d4966274f3ff4b0b04b48b3f124a978 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -54,3 +54,6 @@ markdown_extensions:
       alternate_style: true
   - toc:
       permalink: True
+  - pymdownx.emoji:
+      emoji_index: !!python/name:materialx.emoji.twemoji
+      emoji_generator: !!python/name:materialx.emoji.to_svg