diff --git a/Testing/Dashboard/CMakeLists.txt b/Testing/Dashboard/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..85e1fb47a084569b852c7ccdae81b32b6efd4347
--- /dev/null
+++ b/Testing/Dashboard/CMakeLists.txt
@@ -0,0 +1,53 @@
+# ---------------------------------------------------------------------
+# Settings
+mark_as_advanced( ELASTIX_DASHBOARD_HOST )
+set( ELASTIX_DASHBOARD_HOST "elastix" )
+
+mark_as_advanced( ELASTIX_DASHBOARD_ELASTICSEARCH_PORT )
+set( ELASTIX_DASHBOARD_ELASTICSEARCH_PORT 9200 )
+
+mark_as_advanced( ELASTIX_DASHBOARD_LOGSTASH_PORT )
+set( ELASTIX_DASHBOARD_LOGSTASH_PORT 5043 )
+
+mark_as_advanced( ELASTIX_DASHBOARD_KIBANA_PORT )
+set( ELASTIX_DASHBOARD_KIBANA_PORT 5601 )
+
+mark_as_advanced( ELASTIX_DASHBOARD_SOURCE_DIR )
+set( ELASTIX_DASHBOARD_SOURCE_DIR "${CMAKE_SOURCE_DIR}/Testing/Dashboard" )
+
+mark_as_advanced( ELASTIX_DASHBOARD_BINARY_DIR )
+set( ELASTIX_DASHBOARD_BINARY_DIR "${CMAKE_BINARY_DIR}/Testing/Dashboard" )
+
+mark_as_advanced( ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE )
+set( ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE "elxLogstashForwarder.crt" )
+
+mark_as_advanced( ELASTIX_DASHBOARD_LOGSTASH_RSA_PRIVATE_KEY )
+set( ELASTIX_DASHBOARD_LOGSTASH_RSA_PRIVATE_KEY "elxLogstashForwarder.key" )
+
+mark_as_advanced( ELASTIX_DASHBOARD_VOLUME )
+set( ELASTIX_DASHBOARD_VOLUME "${ELASTIX_DASHBOARD_BINARY_DIR}/Data" )
+
+if( NOT EXISTS "${ELASTIX_DASHBOARD_VOLUME}" )
+  message( STATUS
+    "ELASTIX_DASHBOARD_VOLUME points to the default ${CMAKE_BINARY_DIR}/Testing/Dashboard/Data path in your build directory. Point to another directory on your local machine to ensure dashboard state is saved between builds."
+  )
+
+  file( MAKE_DIRECTORY "${ELASTIX_DASHBOARD_VOLUME}" )
+endif()
+
+# ---------------------------------------------------------------------
+# Configure 
+configure_file(
+  ${CMAKE_CURRENT_SOURCE_DIR}/docker-compose.yml.in
+  ${ELASTIX_DASHBOARD_BINARY_DIR}/docker-compose.yml
+)
+
+configure_file(
+  ${CMAKE_CURRENT_SOURCE_DIR}/elxLogstash.conf.in
+  ${ELASTIX_DASHBOARD_BINARY_DIR}/elxLogstash/elxLogstash.conf
+)
+
+configure_file(
+  ${CMAKE_CURRENT_SOURCE_DIR}/elxLogstashForwarder.conf.in
+  ${ELASTIX_DASHBOARD_BINARY_DIR}/elxLogstashForwarder.conf
+)
\ No newline at end of file
diff --git a/Testing/Dashboard/docker-compose.yml.in b/Testing/Dashboard/docker-compose.yml.in
new file mode 100644
index 0000000000000000000000000000000000000000..6faad275504d0b5fb4cdcf708d106f40254be8d9
--- /dev/null
+++ b/Testing/Dashboard/docker-compose.yml.in
@@ -0,0 +1,17 @@
+elastix:
+    image: willdurand/elk
+    ports:
+        - "80:80"
+        - "@ELASTIX_DASHBOARD_LOGSTASH_PORT@:@ELASTIX_DASHBOARD_LOGSTASH_PORT@"
+    volumes_from:
+        - data
+
+data:
+    image: busybox
+    volumes:
+        - @ELASTIX_DASHBOARD_SOURCE_DIR@:/etc/ssl
+        - @ELASTIX_DASHBOARD_VOLUME@:/data                   
+        - @ELASTIX_DASHBOARD_BINARY_DIR@/elxLogstash:/etc/logstash 
+
+              
+                     
\ No newline at end of file
diff --git a/Testing/Dashboard/elxLogstash.conf.in b/Testing/Dashboard/elxLogstash.conf.in
new file mode 100644
index 0000000000000000000000000000000000000000..454a843007c028b8d2d62c1eb5a08264289ab53e
--- /dev/null
+++ b/Testing/Dashboard/elxLogstash.conf.in
@@ -0,0 +1,20 @@
+input {
+  lumberjack {
+    port => @ELASTIX_DASHBOARD_LOGSTASH_PORT@
+    ssl_certificate => "/etc/ssl/@ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE@"
+    ssl_key => "/etc/ssl/@ELASTIX_DASHBOARD_LOGSTASH_RSA_PRIVATE_KEY@"
+  }
+}
+
+filter {
+  xml {
+    source => message
+    target => result
+  }
+}
+
+output {
+  elasticsearch {
+  	protocol => http
+  }
+}
\ No newline at end of file
diff --git a/Testing/Dashboard/elxLogstashForwarder.conf.in b/Testing/Dashboard/elxLogstashForwarder.conf.in
new file mode 100644
index 0000000000000000000000000000000000000000..923c158e35a2f8666a5316bc81446d4bd429365b
--- /dev/null
+++ b/Testing/Dashboard/elxLogstashForwarder.conf.in
@@ -0,0 +1,20 @@
+{
+  "network": {
+    "servers": [ "@ELASTIX_DASHBOARD_HOST@:@ELASTIX_DASHBOARD_LOGSTASH_PORT@" ],
+    "timeout": 15,
+    "ssl certificate": "@ELASTIX_DASHBOARD_SOURCE_DIR@/@ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE@",
+    "ssl key": "@ELASTIX_DASHBOARD_SOURCE_DIR@/@ELASTIX_DASHBOARD_LOGSTASH_RSA_PRIVATE_KEY@",
+    "ssl ca": "@ELASTIX_DASHBOARD_SOURCE_DIR@/@ELASTIX_DASHBOARD_LOGSTASH_CERTIFICATE@"
+  },
+  "files": [
+    {
+      "paths": [
+        "@CMAKE_BINARY_DIR@/Testing/Unit/*.xml"
+       ],
+      "fields": { 
+        "type": "unittest",
+        "lib": "elastix" 
+      }
+    }
+   ]
+}
diff --git a/Testing/Dashboard/elxLogstashForwarder.crt b/Testing/Dashboard/elxLogstashForwarder.crt
new file mode 100644
index 0000000000000000000000000000000000000000..56ef6e0dcf697be1be407db7ca75cf31112821d0
--- /dev/null
+++ b/Testing/Dashboard/elxLogstashForwarder.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDGjCCAgKgAwIBAgIJAMF8GSVtnyB6MA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNV
+BAMTB2VsYXN0aXgwHhcNMTUwODEyMTQxNjE1WhcNMTUwOTExMTQxNjE1WjASMRAw
+DgYDVQQDEwdlbGFzdGl4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+01P404f+W/aBLxlQTFyHy1o7m07edUmFIjJuN9JjGTzZtlhAEc7dXJ8fUwr/hnLq
+HUeaGRbNcpFDj+/Xq2W9jH7/VyxivA8Ib7ycLNxywgmheZVxXetPIeYmK+Rqovyd
+GhMcU0WMv/3OslFjf92PLegFgRYbmJa7rEH+I0MD1hE1rn1AIJeU4nVCUrtQON6g
+icDEZSNwVSuLfdiuHCMcAVWx+pQIyHji6EoyIBjNsF8LoBZoMY5N+qRph8tt9k1N
+GemQoaZWd926jWgrsSSrAfgtMxw43TXwCFe8RiL8L+pZlN4xxYjQj1/PtTowqjzL
+dYqWAT0o5zwlqkrNgjTuYwIDAQABo3MwcTAdBgNVHQ4EFgQU8onFqrecR/J81ZFi
+gonexjVf8yAwQgYDVR0jBDswOYAU8onFqrecR/J81ZFigonexjVf8yChFqQUMBIx
+EDAOBgNVBAMTB2VsYXN0aXiCCQDBfBklbZ8gejAMBgNVHRMEBTADAQH/MA0GCSqG
+SIb3DQEBBQUAA4IBAQCYalhVZpN/F/Cux/KRBuOyyVxD+tOM7PDlXuuGMcxZ8PTH
+sYK3MLBUvGnn90R6YIF+pmZC40hkau12xGRnlyNLa0EpnAd77SGlaB/y9Ix6RCDd
+PRvdEZodknXzS5sDw+A9pA0JtZANrAXHrELPXjfp5vdf4EUH/o7TTh3XzTEIokwp
+VY6557E17BYsTHHebWPSiDzCeS9y6PtdiZczuHrd7+K+vWgVcgmQ0fdudWwcMOEC
+8s6O8uQGrc1v9nSyT93C9MPCWnuZ2McFX4JPSwaqAaKCTcnc8GAcqk4O5ruQ/8u/
+xSNQsoYpFi2BawOdPDqyMKn4khkREWTq0+T+7Kq2
+-----END CERTIFICATE-----
diff --git a/Testing/Dashboard/elxLogstashForwarder.key b/Testing/Dashboard/elxLogstashForwarder.key
new file mode 100644
index 0000000000000000000000000000000000000000..9537cddd201e50e6d661444da8e85c5294b617c3
--- /dev/null
+++ b/Testing/Dashboard/elxLogstashForwarder.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEA01P404f+W/aBLxlQTFyHy1o7m07edUmFIjJuN9JjGTzZtlhA
+Ec7dXJ8fUwr/hnLqHUeaGRbNcpFDj+/Xq2W9jH7/VyxivA8Ib7ycLNxywgmheZVx
+XetPIeYmK+RqovydGhMcU0WMv/3OslFjf92PLegFgRYbmJa7rEH+I0MD1hE1rn1A
+IJeU4nVCUrtQON6gicDEZSNwVSuLfdiuHCMcAVWx+pQIyHji6EoyIBjNsF8LoBZo
+MY5N+qRph8tt9k1NGemQoaZWd926jWgrsSSrAfgtMxw43TXwCFe8RiL8L+pZlN4x
+xYjQj1/PtTowqjzLdYqWAT0o5zwlqkrNgjTuYwIDAQABAoIBAB6ug2LazMA3Utwu
+tazQhlqs2BidY8jtiqnDXqM2JXMllYpW175+JT9sTtT0tNKlXn4vxhy8Zcmrc36z
+WMGmvNVoHtReOluJZzUp0hblTrgDQ/FuFA6Jumx2iLY4rI7LVFfTzHn+kAfT5q2X
+CXYoCcClfh8WwZzuzYKd9jLSaP0sMKBqz7IAJDE3Ie3vzsznp56ZceMZqgqDjbgw
+p1Gt2eNNWdi0GXSxvv5x9o5UYCNCkmb9Ot3/l4aVMe+jxwtd6b0xjjIry/Orw4Y3
+L4Zu5x07np5K+RxKer9Y6zlKR6iyVME3r6a014dCoKVLpdUph+sTQq3qn2PmdFYk
+XM6eAlECgYEA///UzS31YTqsMehPWEHWF+TkqZJfVCegZgSCGOUXkPXAZoLzVwsK
+WwMILYMDR9ur9lJ7xzcBtSc9PylZFX0hFfHeCE30XHZ0CaX2f07cVI4WxRYCDtNJ
+7rAb7r1ADG4jWEEqMuGBliDT8Sp/2zZfD9q47JnTQsrhgSW1YwJHh1kCgYEA01Qc
+fJyYnlLdZnuKUwu2AJslOBup2Ntp8IFRpUSuaPrC3h/WqUU+ALhhtkI6ZZTqdmoo
+9aRqEFwIlLOU2J4PempwOh8tVQoAz37Ye+J5DDfqqn2KUeC28qHhmjHPBz7bw3wa
+Nfs73/KsDNIElnygmk6emlUcN1l1kW0hdRLp6BsCgYBiCI1seWITds2EWysvaB7d
+jZkHWvdImdgx2R4c/HYW3BVu7EzVk3PGwJV8IES8WuIydQnTkzwDLGCm9GWZ9g4a
+gkH9uiSO2Am9vCF2RTPY6YTMuo3VMZKJZkV8GlsRp4e/f0zyqSrf2/htzVGjF+I1
+hxPz/0BIvrq2o0MgBDpyGQKBgAeNS+9QEUwnHe5Zn9nT408mPDBDHNC5FpIXrPlA
++RKbU3don90wskSIUkWXHEshBTfyF0Cf/YJUJ6JYwIr1Kwxu3U/WaWJOlzTTDZ1v
+vG+pV+N71QOUCjWlf1BpU0KpBmV3+9/N+JfKLkfPAYb3MS4SfSx6uiVoNwFZawaq
+BF3dAoGAYFombeE1Ky5CqoCu31CUvAX8FXI+32fZYC2YBguc9FMIVU9NCeBLBDIB
+D24UchcTfJLtn1GIMjv8+OSwiv7g2LlHlMB0q6j0k+9xkA9sMn5BgbsNs6Nsa+hu
+pp9Kl4jib8r434jOp4RoxkA6toI6rw88M8GZHNee1PW3MwMcdm4=
+-----END RSA PRIVATE KEY-----