diff --git a/dbrepo-dashboard-service/Dockerfile b/dbrepo-dashboard-service/Dockerfile
index 3c1f201870de1de6f98da3955e39c69565e99c35..00fc60339b15b2e1ebeda9dbbf7849c96bd7a401 100644
--- a/dbrepo-dashboard-service/Dockerfile
+++ b/dbrepo-dashboard-service/Dockerfile
@@ -1,4 +1,4 @@
-FROM docker.io/grafana/grafana-oss:11.2.2 AS runtime
+FROM docker.io/bitnami/grafana:10.4.9-debian-12-r0 AS runtime
 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
 
 WORKDIR /app
diff --git a/dbrepo-dashboard-service/grafana.ini b/dbrepo-dashboard-service/grafana.ini
index cc2f5d41a63f1106d0e6b59bba175c4becb16a73..1f8d9c1ef376dfd487ebf122789b557237134e35 100644
--- a/dbrepo-dashboard-service/grafana.ini
+++ b/dbrepo-dashboard-service/grafana.ini
@@ -1,4 +1,7 @@
 [server]
+protocol = http
+domain = localhost
+root_url = http://%(domain)s/dashboard/
 http_port = 3000
 
 [security]
diff --git a/dbrepo-gateway-service/dbrepo.conf b/dbrepo-gateway-service/dbrepo.conf
index ecb92ac3da83b6a37f4824d4e0ac75d37a09b298..e61d202266b9a064efb96244f9c3eb0dbbf1ac13 100644
--- a/dbrepo-gateway-service/dbrepo.conf
+++ b/dbrepo-gateway-service/dbrepo.conf
@@ -48,6 +48,26 @@ server {
     listen 80 default_server;
     server_name _;
 
+    location /dashboard/ {
+        rewrite  ^/dashboard/(.*)  /$1 break;
+        proxy_set_header           Host $host;
+        proxy_set_header           X-Real-IP $remote_addr;
+        proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header           X-Forwarded-Proto $scheme;
+        proxy_pass                 http://dashboard-service;
+        proxy_read_timeout         90;
+    }
+
+    # Proxy Grafana Live WebSocket connections.
+    location /dashboard/api/live/ {
+        rewrite  ^/dashboard/(.*)  /$1 break;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade $http_upgrade;
+        proxy_set_header Connection $connection_upgrade;
+        proxy_set_header Host $host;
+        proxy_pass http://dashboard-service;
+    }
+
     location /api/search {
         proxy_set_header        Host $host;
         proxy_set_header        X-Real-IP $remote_addr;
diff --git a/dbrepo-ui/components/table/TableImport.vue b/dbrepo-ui/components/table/TableImport.vue
index e55db4130e893810d22bf93ea4308c6e97a2b060..f1658a58bb7663ad2cf65725458b26ebb38cf59d 100644
--- a/dbrepo-ui/components/table/TableImport.vue
+++ b/dbrepo-ui/components/table/TableImport.vue
@@ -83,39 +83,6 @@
               </v-select>
             </v-col>
           </v-row>
-          <v-row dense>
-            <v-col md="8">
-              <v-text-field
-                v-model="tableImport.null_element"
-                clearable
-                persistent-hint
-                :variant="inputVariant"
-                :hint="$t('pages.table.subpages.import.null.hint')"
-                :label="$t('pages.table.subpages.import.null.label')"/>
-            </v-col>
-          </v-row>
-          <v-row dense>
-            <v-col md="8">
-              <v-text-field
-                v-model="tableImport.true_element"
-                clearable
-                persistent-hint
-                :variant="inputVariant"
-                :hint="$t('pages.table.subpages.import.true.hint')"
-                :label="$t('pages.table.subpages.import.true.label')"/>
-            </v-col>
-          </v-row>
-          <v-row dense>
-            <v-col md="8">
-              <v-text-field
-                v-model="tableImport.false_element"
-                clearable
-                persistent-hint
-                :variant="inputVariant"
-                :hint="$t('pages.table.subpages.import.false.hint')"
-                :label="$t('pages.table.subpages.import.false.label')"/>
-            </v-col>
-          </v-row>
         </v-container>
       </v-form>
     </v-stepper-window>
@@ -356,9 +323,6 @@ export default {
     this.cacheStore.setUploadProgress(null)
     this.setQueryParamSafely('location')
     this.setQueryParamSafely('quote')
-    this.setQueryParamSafely('false_element')
-    this.setQueryParamSafely('true_element')
-    this.setQueryParamSafely('null_element')
     this.setQueryParamSafely('separator')
     this.setQueryParamSafely('line_termination')
     this.setQueryParamSafely('skip_lines')
@@ -541,9 +505,6 @@ export default {
             separator: this.tableImport.separator,
             skip_lines: this.tableImport.skip_lines,
             quote: this.tableImport.quote,
-            null_element: this.tableImport.null_element,
-            true_element: this.tableImport.true_element,
-            false_element: this.tableImport.false_element
           })
           this.loading = false
         })
diff --git a/dbrepo-ui/dto/index.ts b/dbrepo-ui/dto/index.ts
index 66cc6d8ac7c41226240fb7a7fdff85f3ad3c5d7e..543bd0a3910a7f8ffbe2d0d10486234e2c446424 100644
--- a/dbrepo-ui/dto/index.ts
+++ b/dbrepo-ui/dto/index.ts
@@ -532,9 +532,6 @@ interface ImportCsv {
   separator: string;
   quote: string;
   skip_lines: number;
-  false_element: string;
-  true_element: string;
-  null_element: string;
   line_termination: string;
 }
 
@@ -656,9 +653,6 @@ interface ImportDto {
   separator: string;
   quote: string;
   skip_lines: number;
-  false_element: string;
-  true_element: string;
-  null_element: string;
   line_termination: string;
 }
 
diff --git a/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue b/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue
index c3b5a38c7ab8f95892ecf496325d8365dd5f1fcb..e1d71643ea84be7a727ba031715f72ce817b4209 100644
--- a/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue
+++ b/dbrepo-ui/pages/database/[database_id]/table/create/dataset.vue
@@ -241,9 +241,6 @@ export default {
       tableImport: {
         location: null,
         quote: '"',
-        false_element: null,
-        true_element: null,
-        null_element: '',
         separator: ',',
         line_termination: null,
         skip_lines: 1
@@ -364,9 +361,6 @@ export default {
       this.tableImport.separator = separator
       this.tableImport.skip_lines = skip_lines
       this.tableImport.quote = quote
-      this.tableImport.null_element = null_element
-      this.tableImport.true_element = true_element
-      this.tableImport.false_element = false_element
       if (filename) {
         this.step = 4
       }
diff --git a/docker-compose.yml b/docker-compose.yml
index d21cc5edb4e7ac86b59ce8926d571d483529c101..9a13b7ca63e2b49ecc32e7004bce2e6ecdc704eb 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -458,17 +458,12 @@ services:
       network: host
     volumes:
       - dashboard-service-data:/opt/bitnami/grafana/data
-    ports:
-      - "3000:3000"
     environment:
-      GF_SERVER_DOMAIN: "dashboard-service"
-      GF_SERVER_ROOT_URL: "${BASE_URL:-http://localhost}"
-      GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION: "true"
       LDAP_ADMIN_USERNAME: "${IDENTITY_SERVICE_ADMIN_USERNAME:-admin}"
       LDAP_ADMIN_PASSWORD: "${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin}"
       LDAP_ROOT: "${IDENTITY_SERVICE_ROOT:-dc=dbrepo,dc=at}"
     healthcheck:
-      test: test -f /var/lib/grafana/grafana.db
+      test: test -f /opt/bitnami/grafana/tmp/grafana.pid
       interval: 10s
       timeout: 5s
       retries: 12