diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1668c70195d3bde777c4843787cadda53c8bbbc3..dc68ed7dbc884ebfa1215fc3fdb9207790d1b1f5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,6 +17,7 @@ stages:
   - build-frontend
   - test-backend
   - test-frontend
+  - test-deployment
   - build-docker
   - scan-docker
   - release-docker
@@ -121,6 +122,23 @@ test-frontend:
         path: ./dbrepo-ui/coverage/cobertura-coverage.xml
   coverage: '/TOTAL.*?([0-9]{1,3})%/'
 
+test-default-deployment:
+  stage: test-deployment
+  needs:
+    - test-frontend
+  script:
+    - "rm -f .env"
+    - "docker compose up -d || docker compose down"
+  coverage: '/TOTAL.*?([0-9]{1,3})%/'
+
+test-env-deployment:
+  stage: test-deployment
+  needs:
+    - test-frontend
+  script:
+    - "cp .env.unix.example .env"
+    - "docker compose up -d || docker compose down"
+
 scan-analyse-service:
   stage: scan-docker
   needs:
diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml
index 6f85ad5ef428398878d9ed33a45ac4b0d0df2e16..7f54196d6105ee2835788149600649975510c2fd 100644
--- a/docker-compose.prod.yml
+++ b/docker-compose.prod.yml
@@ -41,8 +41,9 @@ services:
       - ./setup-schema_local.sql:/docker-entrypoint-initdb.d/setup-schema_local.sql
     ports:
       - "3306:3306"
-    env_file:
-      - .env
+    environment:
+      MARIADB_DATABASE: "${METADATA_DB:-fda}"
+      MARIADB_ROOT_PASSWORD: "${METADATA_PASSWORD:-dbrepo}"
     healthcheck:
       test: mysqladmin ping --user="$METADATA_USERNAME" --password="$METADATA_PASSWORD" --silent
       interval: 10s
@@ -55,18 +56,16 @@ services:
     restart: "no"
     container_name: dbrepo-data-db
     hostname: data-db
-    image: mariadb:10.5
+    image: bitnami/mariadb:10.5
     networks:
       core:
     volumes:
       - data-db-data:/bitnami/mariadb
-      - "${SHARED_FILESYSTEM}:/tmp"
+      - "${SHARED_FILESYSTEM:-/tmp}:/tmp"
     ports:
       - "3307:3306"
-    env_file:
-      - .env
     environment:
-      - MARIADB_ROOT_PASSWORD=$USER_DB_PASSWORD
+      MARIADB_ROOT_PASSWORD: "${USER_DB_PASSWORD:-dbrepo}"
     healthcheck:
       test: mysqladmin ping --user="$USER_DB_USERNAME" --password="$USER_DB_PASSWORD" --silent
       interval: 10s
@@ -86,11 +85,9 @@ services:
       - auth-db-data:/bitnami/mariadb
     ports:
       - "3308:3306"
-    env_file:
-      - .env
     environment:
-      - MARIADB_ROOT_PASSWORD=$AUTH_PASSWORD
-      - MARIADB_DATABASE=$AUTH_DB
+      MARIADB_DATABASE: "${AUTH_DB:-keycloak}"
+      MARIADB_ROOT_PASSWORD: "${AUTH_PASSWORD:-dbrepo}"
     healthcheck:
       test: mysqladmin ping --user="$AUTH_USERNAME" --password="$AUTH_PASSWORD" --silent
       interval: 10s
@@ -108,11 +105,9 @@ services:
       - "--base-path=/api/upload/files/"
     networks:
       core:
-    env_file:
-      - .env
     volumes:
       - upload-service-data:/data
-      - "${SHARED_FILESYSTEM}:/srv/tusd-data/data"
+      - "${SHARED_FILESYSTEM:-/tmp}:/srv/tusd-data/data"
     logging:
       driver: json-file
 
@@ -126,12 +121,16 @@ services:
     ports:
       - "8443:8443"
       - "8080:8080"
-    env_file:
-      - .env
+    environment:
+      AUTH_DB: "${AUTH_DB:-keycloak}"
+      KC_DB_USERNAME: "${AUTH_USERNAME:-root}"
+      KC_DB_PASSWORD: "${AUTH_PASSWORD:-dbrepo}"
+      KEYCLOAK_ADMIN: "${KEYCLOAK_ADMIN:-fda}"
+      KEYCLOAK_ADMIN_PASSWORD: "${KEYCLOAK_ADMIN_PASSWORD:-fda}"
     volumes:
       - authentication-service-data:/opt/keycloak/data/
     depends_on:
-      dbrepo-metadata-db:
+      dbrepo-auth-db:
         condition: service_healthy
     logging:
       driver: json-file
@@ -143,12 +142,40 @@ services:
     image: dbrepo/metadata-service:latest
     networks:
       core:
-    env_file:
-      - .env
     volumes:
-      - "${SHARED_FILESYSTEM}:/tmp"
+      - "${SHARED_FILESYSTEM:-/tmp}:/tmp"
     ports:
       - "9099:9099"
+    environment:
+      ADMIN_MAIL: "${ADMIN_MAIL:-noreply@localhost}"
+      BASE_URL: "${BASE_URL:-http://localhost}"
+      GRANT_PRIVILEGES: "${GRANT_PRIVILEGES:-SELECT, CREATE, CREATE VIEW, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, INDEX, TRIGGER, INSERT, UPDATE, DELETE}"
+      BROKER_CONSUMERS: "${BROKER_CONSUMERS:-2}"
+      BROKER_ENDPOINT: "${BROKER_ENDPOINT:-http://broker-service:15672}"
+      BROKER_USERNAME: "${BROKER_USERNAME:-fda}"
+      BROKER_PASSWORD: "${BROKER_PASSWORD:-fda}"
+      DELETED_RECORD: "${DELETED_RECORD:-persistent}"
+      EARLIEST_DATESTAMP: "${EARLIEST_DATESTAMP:-2022-09-17T18:23:00Z}"
+      GRANULARITY: "${GRANULARITY:-YYYY-MM-DDThh:mm:ssZ}"
+      JWT_ISSUER: "${JWT_ISSUER:-http://localhost/realms/dbrepo}"
+      JWT_PUBKEY: "${JWT_PUBKEY:-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB}"
+      LOG_LEVEL: "${LOG_LEVEL:-debug}"
+      METADATA_DB: "${METADATA_DB:-fda}"
+      METADATA_HOST: "${METADATA_HOST:-metadata-db}"
+      METADATA_JDBC_EXTRA_ARGS: "${METADATA_JDBC_EXTRA_ARGS:-}"
+      METADATA_USERNAME: "${METADATA_USERNAME:-root}"
+      METADATA_PASSWORD: "${METADATA_PASSWORD:-dbrepo}"
+      NOT_SUPPORTED_KEYWORDS: "${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,--}"
+      PID_BASE: "${PID_BASE:-http://localhost/pid/}"
+      REPOSITORY_NAME: "${REPOSITORY_NAME:-Example Repository}"
+      SEARCH_USERNAME: "${SEARCH_USERNAME:-admin}"
+      SEARCH_PASSWORD: "${SEARCH_PASSWORD:-admin}"
+      SHARED_FILESYSTEM: "${SHARED_FILESYSTEM:-/tmp}"
+      USER_NETWORK: "${USER_NETWORK:-userdb}"
+      WEBSITE: "${WEBSITE:-http://localhost}"
+      KEYCLOAK_HOST: "${KEYCLOAK_HOST:-http://authentication-service:8080}"
+      KEYCLOAK_ADMIN: "${KEYCLOAK_ADMIN:-fda}"
+      KEYCLOAK_ADMIN_PASSWORD: "${KEYCLOAK_ADMIN_PASSWORD:-fda}"
     healthcheck:
       test: wget -qO- localhost:9099/actuator/health/readiness | grep -q "UP" || exit 1
       interval: 10s
@@ -173,10 +200,8 @@ services:
       core:
     ports:
       - "5000:5000"
-    env_file:
-      - .env
     volumes:
-      - "${SHARED_FILESYSTEM}:/tmp"
+      - "${SHARED_FILESYSTEM:-/tmp}:/tmp"
     logging:
       driver: json-file
 
@@ -190,8 +215,6 @@ services:
     ports:
       - "5672:5672"
       - "15672:15672"
-    env_file:
-      - .env
     depends_on:
       dbrepo-authentication-service:
         condition: service_healthy
@@ -209,8 +232,6 @@ services:
       core:
     ports:
       - 9200:9200
-    env_file:
-      - .env
     healthcheck:
       test: curl -s localhost:9200/_cat/indices || exit 1
       interval: 10s
@@ -238,8 +259,22 @@ services:
     networks:
       core:
       public:
-    env_file:
-      - .env
+    environment:
+      BROKER_USERNAME: "${BROKER_USERNAME:-fda}"
+      BROKER_PASSWORD: "${BROKER_PASSWORD:-fda}"
+      BROKER_LOGIN_URL: "${BROKER_LOGIN_URL:-/broker/}"
+      KEYCLOAK_LOGIN_URL: "${KEYCLOAK_LOGIN_URL:-/api/auth/}"
+      SHARED_FILESYSTEM: "${SHARED_FILESYSTEM:-/tmp}"
+      LOGO: "${LOGO:-/logo.png}"
+      SEARCH_USERNAME: "${SEARCH_USERNAME:-admin}"
+      SEARCH_PASSWORD: "${SEARCH_PASSWORD:-admin}"
+      VERSION: "${VERSION:-${TAG}}"
+      TITLE: "${TITLE:-Database Repository}"
+      ICON: "${ICON:-/favicon.ico}"
+      DBREPO_CLIENT_ID: "${DBREPO_CLIENT_ID:-dbrepo-client}"
+      DBREPO_CLIENT_SECRET: "${DBREPO_CLIENT_SECRET:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}"
+      UPLOAD_PATH: "${UPLOAD_PATH:-/tmp/}"
+      FORCE_SSL: "${FORCE_SSL:-false}"
     depends_on:
       dbrepo-upload-service:
         condition: service_started
@@ -274,3 +309,34 @@ services:
         condition: service_started
     logging:
       driver: json-file
+
+  dbrepo-search-sync-agent:
+    restart: "no"
+    container_name: dbrepo-search-sync-agent
+    hostname: search-startup-agent
+    image: dbrepo/search-sync-agent:latest
+    networks:
+      core:
+    environment:
+      METADATA_DB: ${METADATA_DB:-fda}
+      METADATA_HOST: ${METADATA_HOST:-metadata-db}
+      METADATA_JDBC_EXTRA_ARGS: ${METADATA_JDBC_EXTRA_ARGS:-}
+      METADATA_PASSWORD: ${METADATA_PASSWORD:-dbrepo}
+      METADATA_USERNAME: ${METADATA_USERNAME:-root}
+      SEARCH_USERNAME: ${SEARCH_USERNAME:-fda}
+      SEARCH_PASSWORD: ${SEARCH_PASSWORD:-fda}
+      LOG_LEVEL: ${LOG_LEVEL:-debug}
+    healthcheck:
+      test: wget -qO- localhost:9050/actuator/health/readiness | grep -q "UP" || exit 1
+      interval: 10s
+      timeout: 5s
+      retries: 12
+    depends_on:
+      dbrepo-metadata-db:
+        condition: service_healthy
+      dbrepo-search-db:
+        condition: service_started
+      dbrepo-authentication-service:
+        condition: service_healthy
+    logging:
+      driver: json-file
\ No newline at end of file