diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8dc42d15a1125baf6958a0d9942eaaab5c0dd90b..ceccbc58e26def48d6c82be8238931b5f8af7122 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -13,6 +13,7 @@ cache:
 stages:
   - get-data
   - format-data
+  - get-meili-key
   - build
   - deploy
 
@@ -21,42 +22,38 @@ stages:
   - i=0; while [ "$i" -lt 12 ]; do docker info && break; sleep 5; i=$(( i + 1 )) ; done
   - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
 
+############# get-meili-key ###############
 
-.build:
-  stage: build
-  image: docker:24
-  # needs:
-  #   - format-pfam
+.get-meili-api-key:
+  image: python:3.11-bullseye
+  stage: get-meili-key
   variables:
-    CONTEXT: "."
-    DOCKERFILE: "Dockerfile"
-    BASE_URL: /wiki/
     MEILI_HOST: "http://localhost:7700"
-    MEILI_API_KEY: MASTER_KEY
   before_script:
-    - *docker-login
+    - apt update
+    - pip install meilisearch
   script:
-    - >
-      docker buildx build --pull -t "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA" 
-      --build-arg "BASE_URL=$BASE_URL" 
-      --build-arg "MEILI_HOST=$MEILI_HOST" 
-      --build-arg "MEILI_API_KEY=$MEILI_API_KEY" 
-      -f $DOCKERFILE $CONTEXT
-    - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA"
+    - ./scripts/set-meili-api-key-env.py --key "${MEILI_MASTER_KEY}" --host ${MEILI_HOST} >> build.env
+  artifacts:
+      reports:
+        dotenv: build.env
 
-# build:
-#   stage: build
-#   before_script:
-#     - npm ci
-#   script:
-#     - NUXT_APP_BASE_URL=/wiki/ npm run generate
-#   artifacts:
-#     paths:
-#       - .output/public
-#     untracked: false
-#     when: on_success
-#     expire_in: "30 days"
 
+set-meili-env:dev:
+  extends: .get-meili-api-key
+  variables:
+    MEILI_HOST: 'https://defense-finder-meilisearch.dev.pasteur.cloud'
+  rules:
+    - if: $CI_COMMIT_BRANCH != "main"  
+
+set-meili-env:prod:
+  extends: .get-meili-api-key
+  variables:
+    MEILI_HOST: 'https://defense-finder-meilisearch.pasteur.cloud'
+  rules:
+    - if: $CI_COMMIT_BRANCH == "main"  
+
+##############################
 get-zotero:
   image: python:3.11-bullseye
   stage: get-data
@@ -70,7 +67,6 @@ get-zotero:
     paths:
       - public/articles.json
 
-
 get-pfam:
   image: ubuntu:23.04
   stage: get-data
@@ -105,27 +101,58 @@ format-pfam:
   rules:
     - if: $CI_COMMIT_BRANCH == "main"
 
+
+################ BUILD ##########################
+
+.build:
+  stage: build
+  image: docker:24
+  # needs:
+  #   - format-pfam
+  variables:
+    CONTEXT: "."
+    DOCKERFILE: "Dockerfile"
+    BASE_URL: /wiki/
+    MEILI_HOST: "http://localhost:7700"
+  before_script:
+    - *docker-login
+  script:
+    - echo $MEILI_API_KEY
+    - >
+      docker buildx build --pull -t "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA" 
+      --build-arg "BASE_URL=$BASE_URL" 
+      --build-arg "MEILI_HOST=$MEILI_HOST" 
+      --build-arg "MEILI_API_KEY=$MEILI_API_KEY" 
+      -f $DOCKERFILE $CONTEXT
+    - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA"
+
+
+
 build:dev:wiki:
   extends: .build
+  needs:
+    - set-meili-env:dev
   variables:
     BASE_URL: /wiki/
-    MEILI_HOST: 'https://defense-finder-meilisearch.dev.pasteur.cloud'
-    MEILI_API_KEY: "${MEILI_MASTER_KEY}"
+    # MEILI_HOST: 'https://defense-finder-meilisearch.dev.pasteur.cloud'
+    # MEILI_API_KEY: "${MEILI_MASTER_KEY}"
   rules:
     - if: $CI_COMMIT_BRANCH != "main"  
 
 
 build:prod:wiki:
   extends: .build
+  needs:
+    - set-meili-env:prod
   variables:
     BASE_URL: /wiki/
-    MEILI_HOST: 'https://defense-finder-meilisearch.pasteur.cloud'
-    MEILI_API_KEY: "${MEILI_MASTER_KEY}"
+    # MEILI_HOST: 'https://defense-finder-meilisearch.pasteur.cloud'
+    # MEILI_API_KEY: "${MEILI_MASTER_KEY}"
   rules:
     - if: $CI_COMMIT_BRANCH == "main"  
 
 
-
+################ DEPLOY ##########################
 .deploy:
   stage: deploy
   image: harbor.pasteur.fr/kube-system/helm-kubectl:$HELM_VERSION
diff --git a/scripts/set-meili-api-key-env.py b/scripts/set-meili-api-key-env.py
new file mode 100755
index 0000000000000000000000000000000000000000..79fe7c58a884e83f3ab051ce803fafb3f863dfe1
--- /dev/null
+++ b/scripts/set-meili-api-key-env.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+
+import meilisearch
+import argparse
+
+
+parser = argparse.ArgumentParser(
+    prog="set-meili-api-key-env",
+    description="Create an env file with meili api key",
+)
+parser.add_argument("--key", type=str)  # option that takes a value
+parser.add_argument("--host", type=str)  # option that takes a value
+args = parser.parse_args()
+
+client = meilisearch.Client(args.host, args.key)
+keys = client.get_keys()
+
+api_key = [res.key for res in keys.results if res.name == "Default Search API Key"]
+if len(api_key) == 1:
+    print(f"MEILI_HOST={args.host}")
+    print(f"MEILI_API_KEY={api_key[0]}")