diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6bdffef12e0b7a0ec983502608cbb9522b4a00e7..46cb835209c5a3638df5dad405f35b2d0401383a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -34,12 +34,12 @@ maven-compile:
 maven-test:
   # DinD service is required for Testcontainers
   services:
-    - docker:dind
+    - docker:20-dind
 
   variables:
     # Instruct Testcontainers to use the daemon of DinD.
     DOCKER_HOST: 'tcp://docker:2375'
-
+    DOCKER_TLS_CERTDIR: ""
   #  before_script:
   #    - docker info
   stage: test
diff --git a/src/main/resources/config/application-prod.yml b/src/main/resources/config/application-prod.yml
index 4c551a9fdc9ba888627a36ca40a47fdc14496b70..3a70a284551bb59835838e8cb65fe9f8f46cee20 100644
--- a/src/main/resources/config/application-prod.yml
+++ b/src/main/resources/config/application-prod.yml
@@ -111,6 +111,10 @@ jhipster:
       time-to-live-seconds: 3600 # By default objects stay 1 hour in the cache
       max-entries: 1000 # Number of objects in each cache entry
   security:
+    oauth2:
+      audience:
+    # TODO: audience seems not really relevant, could be omitted? It is identical with client-id above
+    #        - 149276ac11138d9ba72fb3cd12815e3fa2f372866df0eac0f7d1aae5fdffea24
     authentication:
       jwt:
         # This token must be encoded using Base64 and be at least 256 bits long (you can type `openssl rand -base64 64` on your command line to generate a 512 bits one)
diff --git a/src/main/resources/config/application-staging.yml b/src/main/resources/config/application-staging.yml
index 8732adad58051082cf0733a565065c528447fa80..72e5e72f414781011df613728eaf02aea144704b 100644
--- a/src/main/resources/config/application-staging.yml
+++ b/src/main/resources/config/application-staging.yml
@@ -19,6 +19,8 @@ logging:
     tech.jhipster: DEBUG
     org.hibernate.SQL: DEBUG
     at.ac.uibk.gitsearch: DEBUG
+    org.glassfish.jersey.client.ClientExecutorProvidersConfigurator: INFO
+    javax.management.mbeanserver: INFO
 
 management:
   health:
@@ -26,12 +28,12 @@ management:
       enabled: false
 
 spring:
-  profiles:
-    active: dev
-    include:
-      - doc-api
-      # Uncomment to activate TLS for the dev profile
-      #- tls
+  # profiles:
+  #    active: staging
+  #    include:
+  #      - doc-api
+  # Uncomment to activate TLS for the dev profile
+  #- tls
   devtools:
     restart:
       enabled: false
@@ -43,46 +45,49 @@ spring:
       indent-output: true
   datasource:
     type: com.zaxxer.hikari.HikariDataSource
-    url: jdbc:h2:file:./target/h2db/db/gitsearch;DB_CLOSE_DELAY=-1
-    username: gitsearch
+    url: jdbc:mysql://localhost:3306/gitsearch?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true
+    username: root
     password:
     hikari:
       poolName: Hikari
       auto-commit: false
-  h2:
-    console:
-      # disable spring boot built-in h2-console since we start it manually with correct configuration
-      enabled: true
-  jpa:
-    database-platform: tech.jhipster.domain.util.FixedH2Dialect
+      data-source-properties:
+        cachePrepStmts: true
+        prepStmtCacheSize: 250
+        prepStmtCacheSqlLimit: 2048
+        useServerPrepStmts: true
   elasticsearch:
     uris: http://localhost:9200
   liquibase:
     # Remove 'faker' if you do not want the sample data to be loaded automatically
-    contexts: dev, faker
+    contexts: dev
   mail:
-    host: localhost
+    host: smtp.uibk.ac.at
     port: 25
-    username:
-    password:
+    username: ${MAIL_USERNAME}
+    password: ${MAIL_PASSWORD}
   messages:
     cache-duration: PT1S # 1 second, see the ISO 8601 standard
   thymeleaf:
-    cache: false
+    cache: true
   security:
     oauth2:
       client:
         provider:
           gitlabOidc:
-            issuer-uri: https://sharing.codeability-austria.uibk.ac.at
+            issuer-uri: ${SECURITY_OAUTH2_CLIENT_PROVIDER_GITLABOIDC_ISSUERURI}
         registration:
           gitlabOidc:
-            client-id: 149276ac11138d9ba72fb3cd12815e3fa2f372866df0eac0f7d1aae5fdffea24
-            client-secret: 6f480635241f420a361581f4837594ea6f48f5ee6f515c1aa89f325dd922dbb0
+            client-id: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_GITLABOIDC_CLIENTID}
+            client-secret: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_GITLABOIDC_CLIENTSECRET}
             scope: api,read_user,read_api,read_repository,write_repository,read_registry,write_registry,sudo,openid,profile,email
 
 server:
   port: 8080
+  compression:
+    enabled: true
+    mime-types: text/html,text/xml,text/plain,text/css, application/javascript, application/json
+    min-response-size: 1024
 
 # ===================================================================
 # JHipster specific properties
@@ -94,16 +99,16 @@ jhipster:
   cache: # Cache configuration
     ehcache: # Ehcache configuration
       time-to-live-seconds: 3600 # By default objects stay 1 hour in the cache
-      max-entries: 100 # Number of objects in each cache entry
+      max-entries: 1000 # Number of objects in each cache entry
   # CORS is only enabled by default with the "dev" profile
-  cors:
+  # cors:
     # Allow Ionic for JHipster by default (* no longer allowed in Spring Boot 2.4+)
-    allowed-origins: 'http://localhost:8100,https://localhost:8100,http://localhost:9000,https://localhost:9000,http://localhost:4200,https://localhost:4200'
-    allowed-methods: '*'
-    allowed-headers: '*'
-    exposed-headers: 'Authorization,Link,X-Total-Count,X-${jhipster.clientApp.name}-alert,X-${jhipster.clientApp.name}-error,X-${jhipster.clientApp.name}-params'
-    allow-credentials: true
-    max-age: 1800
+#    allowed-origins: 'http://localhost:8100,https://localhost:8100,http://localhost:9000,https://localhost:9000,http://localhost:4200,https://localhost:4200'
+#    allowed-methods: '*'
+#    allowed-headers: '*'
+#    exposed-headers: 'Authorization,Link,X-Total-Count,X-${jhipster.clientApp.name}-alert,X-${jhipster.clientApp.name}-error,X-${jhipster.clientApp.name}-params'
+#    allow-credentials: true
+#    max-age: 1800
   security:
     oauth2:
       audience:
@@ -112,12 +117,12 @@ jhipster:
     authentication:
       jwt:
         # This token must be encoded using Base64 and be at least 256 bits long (you can type `openssl rand -base64 64` on your command line to generate a 512 bits one)
-        base64-secret: ZTY3OGIwZWZhMzdhYTQ2NjAwNTdlNDQ2NWM4YjQyMzlhMWVkMTJlYTExYzMwMzBjOWIzM2E1OTRmZWZkZmYzYzZhNWQ5N2EzZjMyNTFkMjM0ZjNmOWRhYTYzNGEzZDE3NThkYTNmZGVmNTQ1MmRlZjg1YWY4NTU4OGVmNDBkZDI=
+        base64-secret: ${JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64SECRET}
         # Token is valid 24 hours
         token-validity-in-seconds: 86400
         token-validity-in-seconds-for-remember-me: 2592000
   mail: # specific JHipster mail property, for standard properties see MailProperties
-    base-url: http://127.0.0.1:8080
+    base-url: https://dev-exchange.codeability-austria.uibk.ac.at
   logging:
     use-json-format: false # By default, logs are not in Json format
     logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration
@@ -139,14 +144,12 @@ jhipster:
 
 application:
   registeredConnectors:
-    - url: 'http://localhost:8081/api/sharing/config'
-      accessToken: acdd-erdf-asd2-234f-234d-32eb
-    - url: 'http://localhost:8082/api/sharingPluginConfig'
-      accessToken: 2c8845a4-b3df-414b-a682-36e2313dc1c0
-  registeredConnectorsCallBackURL: http://localhost:8080/api
-  installationName: Sharing Plattform (Development)
+    - url: 'https://artemis.codeability-austria.uibk.ac.at/api/sharing/config'
+      accessToken: 'notYet'
+  registeredConnectorsCallBackURL: https://dev-exchange.codeability-austria.uibk.ac.at/api
+  installationName: Sharing Plattform (Staging)
   gitlab:
     url: https://sharing.codeability-austria.uibk.ac.at/
-    guestAccessToken: zPxPmJE3UXAZJpBzxqej
-    adminAccessToken: PJopKiYsK9AxqajfBxR6
+    guestAccessToken: ${APPLICATION_GITLAB_GENERALACCESSTOKEN}
+    adminAccessToken: ${APPLICATION_GITLAB_ADMINACCESSTOKEN}
   oerLink: https://oeresource-dev.logic.at