diff --git a/.env.unix.example b/.env.unix.example
index 4e388f92928dcb7da1ed2de91c63966c591cc5d6..7fe5abde878006e4d3e08c56db1e74bab8501400 100644
--- a/.env.unix.example
+++ b/.env.unix.example
@@ -1,8 +1,7 @@
-DBREPO_CLIENT_SECRET=MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG
-RABBITMQ_CLIENT_SECRET=JEC2FexxrX4N65fLeDGukAl6R3Lc9y0u
-JWT_ISSUER=http://localhost/realms/dbrepo
-JWT_PUBKEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB
-JWT_CERT=MIICmzCCAYMCBgGG3GWyBTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZkYnJlcG8wHhcNMjMwMzEzMTkxMzE3WhcNMzMwMzEzMTkxNDU3WjARMQ8wDQYDVQQDDAZkYnJlcG8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqqcdDYFZZb28M0tEJzEP77FmD/Xqioyj9zWX6VwUSOMAgmMmn8eqs9hT9T0a+q4YTo9tUW1PNbUpwprA5b4Uk04DcIajxDVMUR/PjcHytmkqwVskq9AZW/Vngdoo+8tSbuIybwe/3Vwt266hbHpDcM97a+DXcYooRl7tQWCEX7RP27wQrMD9epDQ6IgKayZg9vC9/03dsIqwH9jXQRiZlFvwiEKhX2aY7lPGBaCK414JO00K/Z49iov9TRa/IYVbSt5qwgrx6DcqsBSPwOnI6A85UGfeUEZ/7coVJiL7RvBlsllapsL9eWTbQajVh94k9Ei3sibEPbtH+U2OAM78zAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAASnN1Cuif1sdfEK2kWAURSXGJCohCROLWdKFjaeHPRaEfpbFJsgxW0Yj3nwX5O3bUlOWoTyENwnXSsXMQsqnNi+At32CKaKO8+AkhAbgQL9F0B+KeJwmYv3cUj5N/LYkJjBvZBzUZ4Ugu5dcxH0k7AktLAIwimkyEnxTNolOA3UyrGGpREr8MCKWVr10RFuOpF/0CsJNNwbHXzalO9D756EUcRWZ9VSg6QVNso0YYRKTnILWDn9hcTRnqGy3SHo3anFTqQZ+BB57YbgFWy6udC0LYRB3zdp6zNti87eu/VEymiDY/mmo1AB8Tm0b6vxFz4AKcL3ax5qS6YnZ9efSzk=
+DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG"
+JWT_ISSUER="http://localhost/realms/dbrepo"
+JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
+JWT_CERT="MIICmzCCAYMCBgGG3GWyBTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZkYnJlcG8wHhcNMjMwMzEzMTkxMzE3WhcNMzMwMzEzMTkxNDU3WjARMQ8wDQYDVQQDDAZkYnJlcG8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqqcdDYFZZb28M0tEJzEP77FmD/Xqioyj9zWX6VwUSOMAgmMmn8eqs9hT9T0a+q4YTo9tUW1PNbUpwprA5b4Uk04DcIajxDVMUR/PjcHytmkqwVskq9AZW/Vngdoo+8tSbuIybwe/3Vwt266hbHpDcM97a+DXcYooRl7tQWCEX7RP27wQrMD9epDQ6IgKayZg9vC9/03dsIqwH9jXQRiZlFvwiEKhX2aY7lPGBaCK414JO00K/Z49iov9TRa/IYVbSt5qwgrx6DcqsBSPwOnI6A85UGfeUEZ/7coVJiL7RvBlsllapsL9eWTbQajVh94k9Ei3sibEPbtH+U2OAM78zAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAASnN1Cuif1sdfEK2kWAURSXGJCohCROLWdKFjaeHPRaEfpbFJsgxW0Yj3nwX5O3bUlOWoTyENwnXSsXMQsqnNi+At32CKaKO8+AkhAbgQL9F0B+KeJwmYv3cUj5N/LYkJjBvZBzUZ4Ugu5dcxH0k7AktLAIwimkyEnxTNolOA3UyrGGpREr8MCKWVr10RFuOpF/0CsJNNwbHXzalO9D756EUcRWZ9VSg6QVNso0YYRKTnILWDn9hcTRnqGy3SHo3anFTqQZ+BB57YbgFWy6udC0LYRB3zdp6zNti87eu/VEymiDY/mmo1AB8Tm0b6vxFz4AKcL3ax5qS6YnZ9efSzk="
 SHARED_FILESYSTEM=/tmp
 LOG_LEVEL=trace
 ELASTIC_PASSWORD=elastic
diff --git a/dbrepo-broker-service/Dockerfile b/dbrepo-broker-service/Dockerfile
index 8dcb22970b3c2cb5cbd4379b4316995e79e38252..0813cf4a38450ca2fa09fca4bd1c0f2b112b66df 100644
--- a/dbrepo-broker-service/Dockerfile
+++ b/dbrepo-broker-service/Dockerfile
@@ -13,8 +13,8 @@ COPY ./rabbitmq.conf /etc/rabbitmq/rabbitmq.conf
 
 WORKDIR /app
 
-ENV JWT_PUBKEY=public-key
-ENV JWT_CERT=cert
+ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
+ENV JWT_CERT="MIICmzCCAYMCBgGG3GWyBTANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZkYnJlcG8wHhcNMjMwMzEzMTkxMzE3WhcNMzMwMzEzMTkxNDU3WjARMQ8wDQYDVQQDDAZkYnJlcG8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqqcdDYFZZb28M0tEJzEP77FmD/Xqioyj9zWX6VwUSOMAgmMmn8eqs9hT9T0a+q4YTo9tUW1PNbUpwprA5b4Uk04DcIajxDVMUR/PjcHytmkqwVskq9AZW/Vngdoo+8tSbuIybwe/3Vwt266hbHpDcM97a+DXcYooRl7tQWCEX7RP27wQrMD9epDQ6IgKayZg9vC9/03dsIqwH9jXQRiZlFvwiEKhX2aY7lPGBaCK414JO00K/Z49iov9TRa/IYVbSt5qwgrx6DcqsBSPwOnI6A85UGfeUEZ/7coVJiL7RvBlsllapsL9eWTbQajVh94k9Ei3sibEPbtH+U2OAM78zAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAASnN1Cuif1sdfEK2kWAURSXGJCohCROLWdKFjaeHPRaEfpbFJsgxW0Yj3nwX5O3bUlOWoTyENwnXSsXMQsqnNi+At32CKaKO8+AkhAbgQL9F0B+KeJwmYv3cUj5N/LYkJjBvZBzUZ4Ugu5dcxH0k7AktLAIwimkyEnxTNolOA3UyrGGpREr8MCKWVr10RFuOpF/0CsJNNwbHXzalO9D756EUcRWZ9VSg6QVNso0YYRKTnILWDn9hcTRnqGy3SHo3anFTqQZ+BB57YbgFWy6udC0LYRB3zdp6zNti87eu/VEymiDY/mmo1AB8Tm0b6vxFz4AKcL3ax5qS6YnZ9efSzk="
 
 COPY ./init.sh ./init.sh
 COPY ./service_ready /usr/bin/service_ready
diff --git a/dbrepo-broker-service/register.py b/dbrepo-broker-service/register.py
deleted file mode 100644
index 0f84efc21c1e5cf0539f4144898d36dd98ddc75c..0000000000000000000000000000000000000000
--- a/dbrepo-broker-service/register.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from py_eureka_client import eureka_client
-import py_eureka_client.logger as logger
-import datetime
-
-logger.set_level("ERROR")
-
-
-def register():
-    eureka_client.init(eureka_server="http://discovery-service:9090/eureka/",
-                       app_name="broker-service",
-                       instance_ip="broker-service",
-                       instance_host="broker-service",
-                       instance_port=15672)
-
-
-if __name__ == "__main__":
-    register()
diff --git a/dbrepo-container-service/Dockerfile b/dbrepo-container-service/Dockerfile
index 2ddbfd3f85a3fc34da1ecc6503d2f3314377f2b4..3495a8bfbb6ef1d20acf3597e3879ecd494240d3 100644
--- a/dbrepo-container-service/Dockerfile
+++ b/dbrepo-container-service/Dockerfile
@@ -33,10 +33,10 @@ ENV BROKER_PASSWORD=fda
 ENV SHARED_FILESYSTEM=/tmp
 ENV USER_NETWORK=userdb
 ENV LOG_LEVEL=debug
-ENV DBREPO_CLIENT_SECRET=client-secret
-ENV CLIENT_ID=dbrepo-client
-ENV JWT_ISSUER=http://localhost/realms/dbrepo
-ENV JWT_PUBKEY=public-key
+ENV CLIENT_ID="dbrepo-client"
+ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG"
+ENV JWT_ISSUER="http://localhost/realms/dbrepo"
+ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
 
 WORKDIR /app
 
diff --git a/dbrepo-container-service/README.md b/dbrepo-container-service/README.md
index a5ae3e58a15a826ac6d96403e5ff21bc420ef114..ab86845542517a662ed2ddc02c33c544a24128f9 100644
--- a/dbrepo-container-service/README.md
+++ b/dbrepo-container-service/README.md
@@ -1,6 +1,6 @@
 # Container Service
 
-## Actuator
+## Actuator Endpoints
 
 - Actuator Info: http://localhost:9091/actuator/info
 - Actuator Health: http://localhost:9091/actuator/health
diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java
index 328f77a6fc2ad0dbdc8a74336e908725e4b53e17..0854b2b98e1e30ac4827ed3783c71d22467df885 100644
--- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java
+++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java
@@ -65,10 +65,10 @@ public class ContainerEndpointIntegrationTest extends BaseUnitTest {
         DockerConfig.createAllNetworks();
         /* metadata database */
         realmRepository.save(REALM_DBREPO);
-        userRepository.save(USER_1_SIMPLE);
-        userRepository.save(USER_2_SIMPLE);
-        userRepository.save(USER_3_SIMPLE);
         imageRepository.save(IMAGE_1);
+        userRepository.save(USER_1);
+        userRepository.save(USER_2);
+        userRepository.save(USER_3);
     }
 
     @AfterEach
diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
index 066294a208391c94bdd9b8f0a2a9aad4c29ca4ef..6c0bf962b36c494c0158413026e1563c30b83d50 100644
--- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
+++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
@@ -268,6 +268,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest {
     @WithMockUser(username = USER_2_USERNAME, authorities = {"modify-image"})
     public void modify_hasRole_succeeds() throws ImageNotFoundException {
         final ImageChangeDto request = ImageChangeDto.builder()
+                .registry(IMAGE_1_REGISTRY)
                 .defaultPort(IMAGE_1_PORT)
                 .dialect(IMAGE_1_DIALECT)
                 .jdbcMethod(IMAGE_1_JDBC)
diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
index 9c6cd35a83a32be64c353145a053fb9e2539efd1..cdbcd6b052bf3918c8c4ff44e5904529288d92de 100644
--- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
+++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
@@ -9,7 +9,9 @@ import at.tuwien.repository.jpa.ImageRepository;
 import at.tuwien.repository.jpa.UserRepository;
 import at.tuwien.service.impl.ImageServiceImpl;
 import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang3.RandomUtils;
 import org.apache.http.auth.BasicUserPrincipal;
+import org.apache.tomcat.util.buf.HexUtils;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -54,6 +56,7 @@ public class ImageServiceIntegrationTest extends BaseUnitTest {
     public void create_succeeds()
             throws ImageAlreadyExistsException, DockerClientException, ImageNotFoundException, UserNotFoundException {
         final ImageCreateDto request = ImageCreateDto.builder()
+                .registry(IMAGE_2_REGISTRY)
                 .repository(IMAGE_2_REPOSITORY)
                 .tag(IMAGE_2_TAG)
                 .jdbcMethod(IMAGE_2_JDBC)
@@ -134,10 +137,12 @@ public class ImageServiceIntegrationTest extends BaseUnitTest {
 
     @Test
     public void pull_fails() {
+        final String repository = HexUtils.toHexString(RandomUtils.nextBytes(16));
+        final String tag = HexUtils.toHexString(RandomUtils.nextBytes(16));
 
         /* test */
         assertThrows(ImageNotFoundException.class, () -> {
-            imageService.pull("un1c0rn", "v420.420");
+            imageService.pull("docker.io/library", repository, tag);
         });
     }
 
diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
index 8da465bcabe2b9d873932887b67e8bb287ee22fb..c75bfe2f6eda6923c4ef9819388e489d185e9f4a 100644
--- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
+++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
@@ -102,6 +102,7 @@ public class ImageServiceUnitTest extends BaseUnitTest {
     @Test
     public void update_succeeds() throws ImageNotFoundException {
         final ImageChangeDto request = ImageChangeDto.builder()
+                .registry(IMAGE_1_REGISTRY)
                 .environment(IMAGE_1_ENV_DTO)
                 .defaultPort(IMAGE_1_PORT)
                 .build();
@@ -121,6 +122,7 @@ public class ImageServiceUnitTest extends BaseUnitTest {
     @Test
     public void update_port_succeeds() throws ImageNotFoundException {
         final ImageChangeDto request = ImageChangeDto.builder()
+                .registry(IMAGE_1_REGISTRY)
                 .environment(IMAGE_1_ENV_DTO)
                 .defaultPort(9999)
                 .build();
diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/config/ReadyConfig.java b/dbrepo-container-service/services/src/main/java/at/tuwien/config/ReadyConfig.java
index 37617f6ccf2abcfe03e994bfa44e3c445532951a..07dd871683a1e5ba8cc992cd81bd8d1a803c5402 100644
--- a/dbrepo-container-service/services/src/main/java/at/tuwien/config/ReadyConfig.java
+++ b/dbrepo-container-service/services/src/main/java/at/tuwien/config/ReadyConfig.java
@@ -18,6 +18,7 @@ import java.io.IOException;
 public class ReadyConfig {
 
     private final ImageService imageService;
+    private final static String registry = "docker.io/library";
     private final static String imageRepository = "mariadb";
     private final static String imageTag = "10.5";
 
@@ -32,12 +33,12 @@ public class ReadyConfig {
     @EventListener(ApplicationReadyEvent.class)
     public void init() throws IOException, ImageNotFoundException {
         if (!imageService.exists(imageRepository, imageTag)) {
-            log.debug("image {}:{} is not present on the host", imageRepository, imageTag);
-            log.debug("pulling image {}:{}", imageRepository, imageTag);
-            imageService.pull(imageRepository, imageTag);
+            log.debug("image {}/{}:{} is not present on the host", registry, imageRepository, imageTag);
+            log.debug("pulling image {}/{}:{}", registry, imageRepository, imageTag);
+            imageService.pull(registry, imageRepository, imageTag);
         } else {
-            log.debug("image {}:{} is present on the host", imageRepository, imageTag);
-            log.trace("skip pulling image {}:{}", imageRepository, imageTag);
+            log.debug("image {}/{}:{} is present on the host", registry, imageRepository, imageTag);
+            log.trace("skip pulling image {}/{}:{}", registry, imageRepository, imageTag);
         }
         Files.touch(new File(readyPath));
         log.info("Service is ready");
diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/service/ImageService.java b/dbrepo-container-service/services/src/main/java/at/tuwien/service/ImageService.java
index 9c3fb46ca1cbf9e2d4d02d60c2fbb2dbab29e630..e95c86e6eb7874b3390a0e86ea7a16cf14377d0c 100644
--- a/dbrepo-container-service/services/src/main/java/at/tuwien/service/ImageService.java
+++ b/dbrepo-container-service/services/src/main/java/at/tuwien/service/ImageService.java
@@ -71,11 +71,12 @@ public interface ImageService {
     boolean exists(String repository, String tag);
 
     /**
-     * Pulls a container image by given repository and tag.
+     * Pulls a container image by given registry, repository and tag.
      *
+     * @param registry   The registry.
      * @param repository The repository.
      * @param tag        The tag.
      * @throws ImageNotFoundException The image was not found.
      */
-    void pull(String repository, String tag) throws ImageNotFoundException;
+    void pull(String registry, String repository, String tag) throws ImageNotFoundException;
 }
diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java b/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
index d1cf69056a02d8e04e980c8b8d3cea90294f8cd0..c7e16a398dff015c0da0131759bf635163591d6a 100644
--- a/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
+++ b/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
@@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import jakarta.persistence.EntityNotFoundException;
 import jakarta.validation.ConstraintViolationException;
+
 import java.security.Principal;
 import java.time.Duration;
 import java.time.Instant;
@@ -73,8 +74,9 @@ public class ImageServiceImpl implements ImageService {
         if (imageRepository.findByRepositoryAndTag(createDto.getRepository(), createDto.getTag()).isPresent()) {
             log.error("Failed to create image {}:{}, it already exists in the metadata database",
                     createDto.getRepository(), createDto.getTag());
-            throw new ImageAlreadyExistsException("Failed to create image");
+            throw new ImageAlreadyExistsException("Failed to create image " + createDto.getRepository() + ":" + createDto.getTag());
         }
+        image.setRegistry(createDto.getRegistry());
         image.setEnvironment(imageMapper.imageEnvironmentItemDtoToEnvironmentItemList(createDto.getEnvironment()));
         image.setDefaultPort(createDto.getDefaultPort());
         image.setDialect(createDto.getDialect());
@@ -96,8 +98,6 @@ public class ImageServiceImpl implements ImageService {
     @Transactional
     public ContainerImage update(Long imageId, ImageChangeDto changeDto) throws ImageNotFoundException {
         final ContainerImage image = find(imageId);
-        /* pull changes */
-        pull(image.getRepository(), image.getTag());
         /* get new infos */
         final ContainerImage dockerImage = inspect(image.getRepository(), image.getTag());
         if (!changeDto.getDefaultPort().equals(image.getDefaultPort())) {
@@ -111,12 +111,15 @@ public class ImageServiceImpl implements ImageService {
             log.debug("environment changed for image with id {}", imageId);
             log.trace("environment changed from {} to {} for image with id {}", env, image.getEnvironment(), imageId);
         }
+        image.setRegistry(changeDto.getRegistry());
         image.setCompiled(dockerImage.getCompiled());
         image.setHash(dockerImage.getHash());
         image.setSize(dockerImage.getSize());
         image.setDialect(changeDto.getDialect());
         image.setDriverClass(changeDto.getDriverClass());
         image.setJdbcMethod(changeDto.getJdbcMethod());
+        /* pull changes */
+        pull(image.getRegistry(), image.getRepository(), image.getTag());
         /* update metadata db */
         final ContainerImage out = imageRepository.save(image);
         log.info("Updated image with id {}", out.getId());
@@ -171,21 +174,21 @@ public class ImageServiceImpl implements ImageService {
     }
 
     @Override
-    public void pull(String repository, String tag) throws ImageNotFoundException {
-        log.debug("pulling image {}:{}", repository, tag);
+    public void pull(String registry, String repository, String tag) throws ImageNotFoundException {
+        log.debug("pulling image {}/{}:{}", registry, repository, tag);
         final ResultCallback.Adapter<PullResponseItem> response;
         try {
             response = dockerClient.pullImageCmd(repository)
+                    .withRegistry(registry)
                     .withTag(tag)
                     .start();
-            log.trace("pulled image {}", response);
             final Instant now = Instant.now();
             response.awaitCompletion();
-            log.info("Pulled image {}:{}", repository, tag);
-            log.debug("pulled image {}:{} in {} seconds", repository, tag, Duration.between(now, Instant.now()).getSeconds());
+            log.info("Pulled image {}/{}:{}", registry, repository, tag);
+            log.debug("pulled image {}/{}:{} in {} seconds", registry, repository, tag, Duration.between(now, Instant.now()).getSeconds());
         } catch (NotFoundException | InternalServerErrorException | InterruptedException e) {
-            log.warn("Failed to pull image {}:{}, reason: {}", repository, tag, e.getMessage());
-            throw new ImageNotFoundException("Failed to pull image", e);
+            log.warn("Failed to pull image {}/{}:{}, reason: {}", registry, repository, tag, e.getMessage());
+            throw new ImageNotFoundException("Failed to pull image " + registry + "/" + repository + ":" + tag, e);
         }
     }
 
diff --git a/dbrepo-database-service/Dockerfile b/dbrepo-database-service/Dockerfile
index 0b19effac9546e50027dff3db4486dd5975b19a7..bf79827ee7dd87c0b008b564516ac582764a3c5e 100644
--- a/dbrepo-database-service/Dockerfile
+++ b/dbrepo-database-service/Dockerfile
@@ -30,15 +30,14 @@ ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
 ENV BROKER_USERNAME=fda
 ENV BROKER_PASSWORD=fda
-ENV SEARCH_ENDPOINT=search-service
-ENV SEARCH_USERNAME=elastic
-ENV SEARCH_PASSWORD=elastic
+ENV ELASTIC_USERNAME=elastic
+ENV ELASTIC_PASSWORD=elastic
 ENV GATEWAY_ENDPOINT=http://gateway-service
 ENV LOG_LEVEL=debug
-ENV DBREPO_CLIENT_SECRET=client-secret
-ENV CLIENT_ID=dbrepo-client
-ENV JWT_ISSUER=http://localhost/realms/dbrepo
-ENV JWT_PUBKEY=public-key
+ENV CLIENT_ID="dbrepo-client"
+ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG"
+ENV JWT_ISSUER="http://localhost/realms/dbrepo"
+ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
 
 WORKDIR /app
 
diff --git a/dbrepo-database-service/rest-service/src/main/resources/application.yml b/dbrepo-database-service/rest-service/src/main/resources/application.yml
index f3bbe67a229ca7e98b6c58647c2a50baea698eb0..3c555dd20b32f8925acff0121346f9c1452deeca 100644
--- a/dbrepo-database-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-database-service/rest-service/src/main/resources/application.yml
@@ -29,7 +29,7 @@ spring:
     password: "${BROKER_PASSWORD}"
   elasticsearch:
     password: "${ELASTIC_PASSWORD}"
-    username: elastic
+    username: "${ELASTIC_USERNAME}"
     uris: http://search-service:9200
 management.endpoints.web.exposure.include: health,info,prometheus
 server:
diff --git a/dbrepo-identifier-service/Dockerfile b/dbrepo-identifier-service/Dockerfile
index e4f562d63e1be114846dc139a4c8b249502c44af..dc830d8b754b07732789ecafc3e42df63f0b8215 100644
--- a/dbrepo-identifier-service/Dockerfile
+++ b/dbrepo-identifier-service/Dockerfile
@@ -32,10 +32,10 @@ ENV METADATA_PASSWORD=dbrepo
 ENV GATEWAY_ENDPOINT=http://gateway-service
 ENV WEBSITE=http://localhost
 ENV LOG_LEVEL=debug
-ENV DBREPO_CLIENT_SECRET=client-secret
-ENV CLIENT_ID=dbrepo-client
-ENV JWT_ISSUER=http://localhost/realms/dbrepo
-ENV JWT_PUBKEY=public-key
+ENV CLIENT_ID="dbrepo-client"
+ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG"
+ENV JWT_ISSUER="http://localhost/realms/dbrepo"
+ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
 
 WORKDIR /app
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java
index 3c4c5e1a21b262b8f7051059db7b06e5b9a24125..d982c237368dd138223913ea7db1295401941e70 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java
@@ -19,6 +19,10 @@ public class ImageBriefDto {
     @NotNull
     private Long id;
 
+    @NotBlank
+    @Schema(example = "docker.io/library")
+    private String registry;
+
     @NotBlank
     @Schema(example = "mariadb")
     private String repository;
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java
index 3e7f14ac5448a6b7e5f064e338de38c38e32d144..dc19e4e0e22f3683dcec0e0f5f3308df60ec1fd8 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java
@@ -20,6 +20,10 @@ import java.util.List;
 @ToString
 public class ImageChangeDto {
 
+    @NotBlank
+    @Schema(example = "docker.io/library")
+    private String registry;
+
     @Min(value = 1024, message = "only user ports are allowed 1024-65535")
     @Max(value = 65535, message = "only user ports are allowed 1024-65535")
     @Schema(example = "5432")
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java
index 7da9a9cdeb0e62f83ce87db238b33717cea897bd..64676aa01b9d3cdf42446f549950b10ab9ea7261 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java
@@ -3,6 +3,8 @@ package at.tuwien.api.container.image;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
 import lombok.*;
 
 import jakarta.validation.constraints.NotBlank;
@@ -20,6 +22,10 @@ import java.util.List;
 @ToString
 public class ImageCreateDto {
 
+    @NotBlank
+    @Schema(example = "docker.io/library")
+    private String registry;
+
     @NotBlank
     @Schema(example = "mariadb")
     private String repository;
@@ -44,6 +50,8 @@ public class ImageCreateDto {
 
     @NotNull
     @JsonProperty("default_port")
+    @Min(value = 1024, message = "only user ports are allowed 1024-65535")
+    @Max(value = 65535, message = "only user ports are allowed 1024-65535")
     @Parameter(required = true, example = "3006")
     private Integer defaultPort;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java
index b1606bdd277615c8f837894c27a7cb311bab84ec..8dfb917afd39c20e906587dc00fb5d3155d57537 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java
@@ -26,6 +26,10 @@ public class ImageDto {
     @NotNull
     private Long id;
 
+    @NotBlank
+    @Schema(example = "docker.io/library")
+    private String registry;
+
     @NotBlank
     @Schema(example = "mariadb")
     private String repository;
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
index 9f0b8842782ab9b658e4fc253dd5d8e95cc05714..440ef8627d18d2033dda9a5683f9602b4dae8169 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
@@ -32,6 +32,9 @@ public class ContainerImage {
     @Column(nullable = false)
     private String repository;
 
+    @Column(nullable = false, columnDefinition = "TEXT default 'docker.io/library'")
+    private String registry;
+
     @Column(nullable = false)
     private String tag;
 
diff --git a/dbrepo-metadata-db/setup-schema.sql b/dbrepo-metadata-db/setup-schema.sql
index 737ef8e464c454a171e53150f19bd98ed9cff20a..db145811a11093d65a2961ac508371bfead606eb 100644
--- a/dbrepo-metadata-db/setup-schema.sql
+++ b/dbrepo-metadata-db/setup-schema.sql
@@ -3,6 +3,7 @@ BEGIN;
 CREATE TABLE IF NOT EXISTS `fda`.`mdb_images`
 (
     id            bigint                 NOT NULL AUTO_INCREMENT,
+    registry      text                   NOT NULL DEFAULT 'docker.io/library',
     repository    character varying(255) NOT NULL,
     tag           character varying(255) NOT NULL,
     default_port  integer                NOT NULL,
diff --git a/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java
index 13c1cee40c5eded82ceec8d0e3ea84ca25e421e7..363c82a0e197384dd199f6d0f00c72c90ada7321 100644
--- a/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java
+++ b/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java
@@ -662,6 +662,7 @@ public abstract class BaseTest {
             USER_5_PASSWORD, USER_5_DETAILS.getAuthorities());
 
     public final static Long IMAGE_1_ID = 1L;
+    public final static String IMAGE_1_REGISTRY = "docker.io/library";
     public final static String IMAGE_1_REPOSITORY = "mariadb";
     public final static String IMAGE_1_TAG = "10.5";
     public final static String IMAGE_1_HASH = "d6a5e003eae42397f7ee4589e9f21e231d3721ac131970d2286bd616e7f55bb4";
@@ -736,6 +737,7 @@ public abstract class BaseTest {
             .build();
 
     public final static ImageCreateDto IMAGE_1_CREATE_DTO = ImageCreateDto.builder()
+            .registry(IMAGE_1_REGISTRY)
             .repository(IMAGE_1_REPOSITORY)
             .tag(IMAGE_1_TAG)
             .dialect(IMAGE_1_DIALECT)
@@ -795,6 +797,7 @@ public abstract class BaseTest {
 
     public final static ContainerImage IMAGE_1 = ContainerImage.builder()
             .id(IMAGE_1_ID)
+            .registry(IMAGE_1_REGISTRY)
             .repository(IMAGE_1_REPOSITORY)
             .tag(IMAGE_1_TAG)
             .hash(IMAGE_1_HASH)
@@ -810,6 +813,7 @@ public abstract class BaseTest {
 
     public final static ContainerImage IMAGE_1_SIMPLE = ContainerImage.builder()
             .id(IMAGE_1_ID)
+            .registry(IMAGE_1_REGISTRY)
             .repository(IMAGE_1_REPOSITORY)
             .tag(IMAGE_1_TAG)
             .hash(IMAGE_1_HASH)
@@ -825,6 +829,7 @@ public abstract class BaseTest {
 
     public final static ImageDto IMAGE_1_DTO = ImageDto.builder()
             .id(IMAGE_1_ID)
+            .registry(IMAGE_1_REGISTRY)
             .repository(IMAGE_1_REPOSITORY)
             .tag(IMAGE_1_TAG)
             .hash(IMAGE_1_HASH)
@@ -840,11 +845,13 @@ public abstract class BaseTest {
 
     public final static ImageBriefDto IMAGE_1_BRIEF_DTO = ImageBriefDto.builder()
             .id(IMAGE_1_ID)
+            .registry(IMAGE_1_REGISTRY)
             .repository(IMAGE_1_REPOSITORY)
             .tag(IMAGE_1_TAG)
             .build();
 
     public final static Long IMAGE_2_ID = 2L;
+    public final static String IMAGE_2_REGISTRY = "docker.io/library";
     public final static String IMAGE_2_REPOSITORY = "mysql";
     public final static String IMAGE_2_TAG = "8.0";
     public final static String IMAGE_2_HASH = "83b40f2726e5";
diff --git a/dbrepo-metadata-service/Dockerfile b/dbrepo-metadata-service/Dockerfile
index 813cdbc04fe85788e1689ca3167876c3d96bb714..01074e28f09122b7a3945f6f5a0581d18e43f3a4 100644
--- a/dbrepo-metadata-service/Dockerfile
+++ b/dbrepo-metadata-service/Dockerfile
@@ -29,10 +29,10 @@ ENV METADATA_DB=fda
 ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
 ENV GATEWAY_ENDPOINT=http://gateway-service
-ENV PID_BASE="http://example.com/pid/"
+ENV PID_BASE="http://localhost/pid/"
 ENV REPOSITORY_NAME="Example Repository"
-ENV BASE_URL="http://example.com"
-ENV ADMIN_MAIL="noreply@example.com"
+ENV BASE_URL="http://localhost"
+ENV ADMIN_MAIL="noreply@localhost"
 ENV EARLIEST_DATESTAMP="2022-09-17T18:23:00Z"
 ENV DELETED_RECORD=persistent
 ENV GRANULARITY="YYYY-MM-DDThh:mm:ssZ"
diff --git a/dbrepo-query-service/Dockerfile b/dbrepo-query-service/Dockerfile
index df2847401afee2797b5e4a3311fc11ce9993f51e..ae991534fba48ef396dea2594e7426d085cc97f1 100644
--- a/dbrepo-query-service/Dockerfile
+++ b/dbrepo-query-service/Dockerfile
@@ -35,10 +35,10 @@ ENV GATEWAY_ENDPOINT=http://gateway-service
 ENV SHARED_FILESYSTEM=/tmp
 ENV BROKER_CONSUMERS=2
 ENV LOG_LEVEL=debug
-ENV DBREPO_CLIENT_SECRET=client-secret
-ENV CLIENT_ID=dbrepo-client
-ENV JWT_ISSUER=http://localhost/realms/dbrepo
-ENV JWT_PUBKEY=public-key
+ENV CLIENT_ID="dbrepo-client"
+ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG"
+ENV JWT_ISSUER="http://localhost/realms/dbrepo"
+ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
 ENV NOT_SUPPORTED_KEYWORDS=\\*,AVG,BIT_AND,BIT_OR,BIT_XOR,COUNT,COUNTDISTINCT,GROUP_CONCAT,JSON_ARRAYAGG,JSON_OBJECTAGG,MAX,MIN,STD,STDDEV,STDDEV_POP,STDDEV_SAMP,SUM,VARIANCE,VAR_POP,VAR_SAMP,--
 
 WORKDIR /app
diff --git a/dbrepo-semantics-service/Dockerfile b/dbrepo-semantics-service/Dockerfile
index f87e006d6ba7b1e4c743577513ef3abf1213d93d..b75bb73f04b4d0745e5c8ee1018b7644d380a4fd 100644
--- a/dbrepo-semantics-service/Dockerfile
+++ b/dbrepo-semantics-service/Dockerfile
@@ -29,8 +29,8 @@ ENV METADATA_DB=fda
 ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
 ENV LOG_LEVEL=debug
-ENV JWT_ISSUER=http://localhost/realms/dbrepo
-ENV JWT_PUBKEY=public-key
+ENV JWT_ISSUER="http://localhost/realms/dbrepo"
+ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
 
 WORKDIR /app
 
diff --git a/dbrepo-table-service/Dockerfile b/dbrepo-table-service/Dockerfile
index 03486d1abf34320ddef700dc2588cb230668920e..4e26c7ceb5b646e39eea7f7527a3c78fb540c062 100644
--- a/dbrepo-table-service/Dockerfile
+++ b/dbrepo-table-service/Dockerfile
@@ -33,10 +33,10 @@ ENV BROKER_PASSWORD=fda
 ENV SHARED_FILESYSTEM=/tmp
 ENV USER_NETWORK=userdb
 ENV LOG_LEVEL=debug
-ENV DBREPO_CLIENT_SECRET=client-secret
-ENV CLIENT_ID=dbrepo-client
-ENV JWT_ISSUER=http://localhost/realms/dbrepo
-ENV JWT_PUBKEY=public-key
+ENV CLIENT_ID="dbrepo-client"
+ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG"
+ENV JWT_ISSUER="http://localhost/realms/dbrepo"
+ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
 
 WORKDIR /app
 
diff --git a/dbrepo-ui/Dockerfile b/dbrepo-ui/Dockerfile
index f3b107c8d845d63d085fc96dcf04e85be47e8dfe..c286e5a6db94b9405ab76bd662c133946e2274ad 100644
--- a/dbrepo-ui/Dockerfile
+++ b/dbrepo-ui/Dockerfile
@@ -50,13 +50,13 @@ ENV SANDBOX=false
 ENV SEARCH="http://search-service:9200"
 ENV SHARED_FILESYSTEM="/tmp"
 ENV LOGO="/logo.png"
-ENV MAIL_VERIFY=false
 ENV ELASTIC_USERNAME="elastic"
 ENV ELASTIC_PASSWORD="elastic"
-ENV VERSION="${TAG}"
+ENV VERSION="${TAG:-latest}"
 ENV TITLE="Database Repository"
 ENV ICON="/favicon.ico"
-ENV DBREPO_CLIENT_SECRET="client-secret"
+ENV DBREPO_CLIENT_ID="dbrepo-client"
+ENV DBREPO_CLIENT_SECRET="MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG"
 ENV GIT_HASH="deadbeef"
 
 WORKDIR /app
diff --git a/dbrepo-ui/api/authentication.service.js b/dbrepo-ui/api/authentication.service.js
index 5c86f9cd95a9a6a005934ed7908af719e6a10a06..edff0edaa9d88dfae47662d78aeaf7b5fcb6a08b 100644
--- a/dbrepo-ui/api/authentication.service.js
+++ b/dbrepo-ui/api/authentication.service.js
@@ -3,7 +3,7 @@ import store from '@/store'
 import qs from 'qs'
 import UserMapper from '@/api/user.mapper'
 import axios from 'axios'
-import { baseURL, clientSecret } from '../config'
+import { baseURL, clientSecret, clientId } from '../config'
 
 /**
  * Service class for interaction with Authentication Service in the back end.
@@ -20,7 +20,7 @@ class AuthenticationService {
    */
   authenticatePlain (username, password) {
     const payload = {
-      client_id: 'dbrepo-client',
+      client_id: clientId,
       username,
       password,
       grant_type: 'password',
@@ -50,7 +50,7 @@ class AuthenticationService {
 
   authenticateToken (refreshToken) {
     const payload = {
-      client_id: 'dbrepo-client',
+      client_id: clientId,
       grant_type: 'refresh_token',
       client_secret: clientSecret,
       refresh_token: refreshToken
diff --git a/dbrepo-ui/config.js b/dbrepo-ui/config.js
index bc199503b7207296f1a4828012d5cf9417329da6..b7ad7a38e54e96150c74353410fe787adfa46fe6 100644
--- a/dbrepo-ui/config.js
+++ b/dbrepo-ui/config.js
@@ -14,6 +14,7 @@ config.logo = process.env.LOGO || '/logo.png'
 config.mailVerify = process.env.MAIL_VERIFY || false
 config.tokenMax = process.env.TOKEN_MAX || 5
 config.elasticPassword = process.env.ELASTIC_PASSWORD || 'elastic'
+config.clientId = process.env.DBREPO_CLIENT_ID || 'dbrepo-client'
 config.clientSecret = process.env.DBREPO_CLIENT_SECRET || 'MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG'
 config.defaultPublisher = process.env.DEFAULT_PID_PUBLISHER || 'Technische Universität Wien'
 config.doiUrl = process.env.DOI_URL || 'https://doi.org'
diff --git a/dbrepo-ui/nuxt.config.js b/dbrepo-ui/nuxt.config.js
index fee9bcc80148bcbb1f04974a4875c88d56762c6f..77cc36bb2a9ed4a7dbc5dfb7548882452034e9cb 100644
--- a/dbrepo-ui/nuxt.config.js
+++ b/dbrepo-ui/nuxt.config.js
@@ -1,6 +1,6 @@
 import path from 'path'
 import colors from 'vuetify/es5/util/colors'
-import { api, icon, search, clientSecret, title, sandbox, logo, version, defaultPublisher, doiUrl, baseUrl, gitHash } from './config'
+import { api, icon, search, clientSecret, title, sandbox, logo, version, defaultPublisher, doiUrl, baseUrl, gitHash, clientId } from './config'
 
 const proxy = {}
 
@@ -91,6 +91,7 @@ export default {
     sandbox,
     version,
     logo,
+    clientId,
     clientSecret,
     defaultPublisher,
     doiUrl,
diff --git a/dbrepo-user-service/Dockerfile b/dbrepo-user-service/Dockerfile
index 4255e803ee5c8f0c4a1f39b1890027a8a716a5df..fb50823d3c479dacb13530a0b9efed658d521c59 100644
--- a/dbrepo-user-service/Dockerfile
+++ b/dbrepo-user-service/Dockerfile
@@ -29,10 +29,10 @@ ENV METADATA_DB=fda
 ENV METADATA_USERNAME=root
 ENV METADATA_PASSWORD=dbrepo
 ENV GATEWAY_ENDPOINT=http://gateway-service
-ENV JWT_ISSUER=http://localhost/realms/dbrepo
-ENV JWT_PUBKEY=public-key
+ENV JWT_ISSUER="http://localhost/realms/dbrepo"
+ENV JWT_PUBKEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
 ENV LOG_LEVEL=debug
-ENV DEFAULT_ROLE=default-researcher-roles
+ENV DEFAULT_ROLE="default-researcher-roles"
 ENV ELASTIC_PASSWORD=elastic
 
 WORKDIR /app
@@ -44,6 +44,6 @@ HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD service_ready
 
 COPY --from=build ./rest-service/target/rest-service-*.jar ./user-service.jar
 
-EXPOSE 9093
+EXPOSE 9098
 
 ENTRYPOINT ["java", "-Dlog4j2.formatMsgNoLookups=true", "-jar", "./user-service.jar"]
diff --git a/docker-compose.yml b/docker-compose.yml
index c3a776b09e398d3921ff7fc4d7eb6cee1a083a6b..d921ef70ef3826540d2ab87199b3b52452a5dc1d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -31,6 +31,7 @@ networks:
         - subnet: 172.32.0.0/16
 
 services:
+
   dbrepo-metadata-db:
     restart: "no"
     container_name: dbrepo-metadata-db
@@ -154,7 +155,7 @@ services:
     env_file:
       - .env
     volumes:
-      - /var/run/docker.sock:/var/run/docker.sock
+      - "/var/run/docker.sock:/var/run/docker.sock"
       - "/tmp:/tmp"
     depends_on:
       dbrepo-authentication-service:
@@ -261,7 +262,7 @@ services:
       - .env
     volumes:
       - "/tmp:/tmp"
-      - /var/run/docker.sock:/var/run/docker.sock
+      - "/var/run/docker.sock:/var/run/docker.sock"
     depends_on:
       dbrepo-metadata-db:
         condition: service_healthy