diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a535236acc2c5614afda0c09cf9999645c1218e1..320229f3939c0e8cd0e036e5ef484512c9ad3ac5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,37 +1,74 @@
 variables:
   DOCKER_DRIVER: overlay2
-  DOCKER_TLS_CERTDIR: ""
+  DOCKER_TLS_CERTDIR: ''
 
 stages:
   - build
   - deploy
 
-build_master:
+build:
   image: docker:git
   services:
-  - docker:dind
+    - docker:dind
   stage: build
   tags:
     - build-push-to-registry
   only:
+    - merge_requests
     - master
   script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
     - docker build -t registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/self-data-technical-doc .
     - docker push registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/self-data-technical-doc
 
-deploy_master:
+deploy_rec:
+  stage: deploy
+  tags:
+    - ns-cpd-r01-syn
+  only:
+    - merge_requests
+  needs:
+    - build
+  environment:
+    name: Recette - Self-Data Technical Docs
+    url: https://doc-self-data-rec.apps.grandlyon.com/
+  before_script:
+    - NAMESPACE=ns-cpd-r01-syn
+    - echo $READ_REGISTRY_TOKEN
+    - echo $KUBE_CONFIG_CPD_REC
+    - export KUBECONFIG=$KUBE_CONFIG_CPD_REC
+  script:
+    - find k8s/ -name '*.yml' -exec sed -i "s/{{NAMESPACE}}/$NAMESPACE/g" {} \;
+    - sed -i "s/{{HOSTNAME}}/doc-self-data-rec.apps.grandlyon.com/g" ./k8s/route.yml
+    - CA=$(awk 'NF {sub(/\r/, ""); printf "%s\\\\r\\\\n",$0;}' $APPS_CERT_CA);
+    - CRT=$(awk 'NF {sub(/\r/, ""); printf "%s\\\\r\\\\n",$0;}' $APPS_CERT_CRT);
+    - KEY=$(awk 'NF {sub(/\r/, ""); printf "%s\\\\r\\\\n",$0;}' $APPS_TLS_PRIVATE_KEY);
+    - sed -i -e "s|#CA#|$CA|" -e "s|#CRT#|$CRT|" -e "s|#KEY#|$KEY|" ./k8s/route.yml
+    - oc create secret -n $NAMESPACE docker-registry forge-secret --docker-server=$CI_REGISTRY --docker-username=forge-secret --docker-password=$READ_REGISTRY_TOKEN --dry-run=client -o yaml | oc apply -f -
+    - oc apply -f k8s/deployment.yml
+    - oc apply -f k8s/service.yml
+    - oc apply -f k8s/route.yml
+    - oc delete pod -l app=self-data-doc
+
+deploy_prod:
   stage: deploy
   tags:
     - ns-cpd-p01-syn
   only:
     - master
+  needs:
+    - build
+  environment:
+    name: Self-Data Technical Docs
+    url: https://doc-self-data.apps.grandlyon.com/
   before_script:
     - NAMESPACE=ns-cpd-p01-syn
     - echo $READ_REGISTRY_TOKEN
     - echo $KUBE_CONFIG_CPD_PROD
     - export KUBECONFIG=$KUBE_CONFIG_CPD_PROD
   script:
+    - find k8s/ -name '*.yml' -exec sed -i "s/{{NAMESPACE}}/$NAMESPACE/g" {} \;
+    - sed -i "s/{{HOSTNAME}}/doc-self-data-rec.apps.grandlyon.com/g" ./k8s/route.yml
     - CA=$(awk 'NF {sub(/\r/, ""); printf "%s\\\\r\\\\n",$0;}' $APPS_CERT_CA);
     - CRT=$(awk 'NF {sub(/\r/, ""); printf "%s\\\\r\\\\n",$0;}' $APPS_CERT_CRT);
     - KEY=$(awk 'NF {sub(/\r/, ""); printf "%s\\\\r\\\\n",$0;}' $APPS_TLS_PRIVATE_KEY);
@@ -41,4 +78,3 @@ deploy_master:
     - oc apply -f k8s/service.yml
     - oc apply -f k8s/route.yml
     - oc delete pod -l app=self-data-doc
-  
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
index 6540f7d81ef2a98c48948be49fb88d4c00f17060..403c0e317453d37e48607aaafe2c6f02c3f65088 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -4,7 +4,7 @@
 
 This documentation covers the technical aspects of projects developed by the Grandlyon in cooperation with [Cozy Cloud](https://cozy.io/fr/).
 
-In order to work with a self-data environment, there are a couple of prerequisites. 
+In order to work with a self-data environment, there are a couple of prerequisites.
 
 ## Resources
 
diff --git a/k8s/deployment.yml b/k8s/deployment.yml
index 8d134da606d76c3c3b77caf429cfc887cac31eb8..c443bc058f4b8dfa587b410304c7516e94bd96a3 100644
--- a/k8s/deployment.yml
+++ b/k8s/deployment.yml
@@ -3,7 +3,7 @@ kind: Deployment
 apiVersion: apps/v1
 metadata:
   name: self-data-doc
-  namespace: ns-cpd-p01-syn
+  namespace: {{NAMESPACE}}
 spec:
   replicas: 1
   selector:
diff --git a/k8s/route.yml b/k8s/route.yml
index aeb175f5e7bb386c63f6d024561b44a6656934d5..5953bb9190a8843d7492de3e7af33d71e4994f85 100644
--- a/k8s/route.yml
+++ b/k8s/route.yml
@@ -2,9 +2,9 @@ kind: Route
 apiVersion: route.openshift.io/v1
 metadata:
   name: self-data-doc-route
-  namespace: ns-cpd-p01-syn
+  namespace: {{NAMESPACE}}
 spec:
-  host: doc-self-data.apps.grandlyon.com
+  host: {{HOSTNAME}}
   to:
     kind: Service
     name: self-data-doc-service
diff --git a/k8s/service.yml b/k8s/service.yml
index c908c1c4479bf065b44ebb836487778adae6f661..67cb6b1e79d4fa1b5b5d99d78aa96454e6ab6e13 100644
--- a/k8s/service.yml
+++ b/k8s/service.yml
@@ -2,7 +2,7 @@ apiVersion: v1
 kind: Service
 metadata:
   name: self-data-doc-service
-  namespace: ns-cpd-p01-syn
+  namespace: {{NAMESPACE}}
 spec:
   selector:
     app: self-data-doc