diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e8a81fb264476201fd5ca118b13f8b93a1a7e0ee..7328d7b66303441798fd19ca1147b5b86d9214a6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -25,11 +25,16 @@ build_master:
 deploy_master:
   stage: deploy
   tags:
-    - deploy-alpha
+    - ns-cpd-p01-syn
   only:
     - master
+  before_script:
+    - NAMESPACE=ns-cpd-p01-syn
+    - export KUBECONFIG=$KUBE_CONFIG_CPD_PROD
   script:
-    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
-    - docker-compose pull
-    - docker-compose up -d self_data_docs
-    - docker rmi $(docker images 'registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/self-data-technical-doc' -f "dangling=true" -q)
+    - 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
+  
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 284ebc0336703cbfd1454203a45010a0c35c95fc..2740467cb4db6d55402fbad03fe1e0cb73db25a4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -18,10 +18,10 @@ RUN apk add --no-cache --virtual .build gcc musl-dev && pip install -r ./require
 RUN mkdocs build
 
 # Expose MkDocs development server port
-FROM nginx
-
+FROM nginxinc/nginx-unprivileged:1.25
+RUN rm -rf /etc/nginx/html/* 
 COPY --from=builder /app/site /usr/share/nginx/html
 RUN ls -l /usr/share/nginx/html
-EXPOSE 80
+EXPOSE 8080
 
 CMD ["nginx", "-g", "daemon off;"]
diff --git a/k8s/deployment.yml b/k8s/deployment.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8d134da606d76c3c3b77caf429cfc887cac31eb8
--- /dev/null
+++ b/k8s/deployment.yml
@@ -0,0 +1,27 @@
+---
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+  name: self-data-doc
+  namespace: ns-cpd-p01-syn
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: self-data-doc
+  template:
+    metadata:
+      labels:
+        app: self-data-doc
+    spec:
+      containers:
+        - name: self-data-doc
+          image: registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/self-data-technical-doc:latest
+          imagePullPolicy: Always
+          ports:
+            - containerPort: 8080
+              protocol: TCP
+      nodeSelector:
+        node-role.kubernetes.io/worker: ''
+      imagePullSecrets:
+        - name: forge-secret
diff --git a/k8s/route.yml b/k8s/route.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d322463ebe9bb8190c95c787fd58a87e877bd820
--- /dev/null
+++ b/k8s/route.yml
@@ -0,0 +1,148 @@
+kind: Route
+apiVersion: route.openshift.io/v1
+metadata:
+  name: self-data-doc-route
+  namespace: ns-cpd-p01-syn
+spec:
+  host: doc.self-data.apps.grandlyon.com
+  to:
+    kind: Service
+    name: self-data-doc-service
+    weight: 100
+  port:
+    targetPort: 8080
+  tls:
+    termination: edge
+    insecureEdgeTerminationPolicy: Redirect
+    certificate: >-
+      -----BEGIN CERTIFICATE-----
+
+      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
+
+      RNiMJUTOfECQrfJvLhg=
+
+      -----END CERTIFICATE-----
+
+      -----BEGIN CERTIFICATE-----
+
+      MIIF6TCCA9GgAwIBAgIQBeTcO5Q4qzuFl8umoZhQ4zANBgkqhkiG9w0BAQwFADCB
+
+      iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
+
+      cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
+
+      BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQw
+
+      OTEyMDAwMDAwWhcNMjQwOTExMjM1OTU5WjBfMQswCQYDVQQGEwJGUjEOMAwGA1UE
+
+      CBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4wDAYDVQQKEwVHYW5kaTEgMB4GA1UE
+
+      AxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+
+      DwAwggEKAoIBAQCUBC2meZV0/9UAPPWu2JSxKXzAjwsLibmCg5duNyj1ohrP0pIL
+
+      m6jTh5RzhBCf3DXLwi2SrCG5yzv8QMHBgyHwv/j2nPqcghDA0I5O5Q1MsJFckLSk
+
+      QFEW2uSEEi0FXKEfFxkkUap66uEHG4aNAXLy59SDIzme4OFMH2sio7QQZrDtgpbX
+
+      bmq08j+1QvzdirWrui0dOnWbMdw+naxb00ENbLAb9Tr1eeohovj0M1JLJC0epJmx
+
+      bUi8uBL+cnB89/sCdfSN3tbawKAyGlLfOGsuRTg/PwSWAP2h9KK71RfWJ3wbWFmV
+
+      XooS/ZyrgT5SKEhRhWvzkbKGPym1bgNi7tYFAgMBAAGjggF1MIIBcTAfBgNVHSME
+
+      GDAWgBRTeb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUs5Cn2MmvTs1hPJ98
+
+      rV1/Qf1pMOowDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
+
+      VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMCIGA1UdIAQbMBkwDQYLKwYBBAGy
+
+      MQECAhowCAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl
+
+      cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy
+
+      bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy
+
+      dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ
+
+      aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAWGf9
+
+      crJq13xhlhl+2UNG0SZ9yFP6ZrBrLafTqlb3OojQO3LJUP33WbKqaPWMcwO7lWUX
+
+      zi8c3ZgTopHJ7qFAbjyY1lzzsiI8Le4bpOHeICQW8owRc5E69vrOJAKHypPstLbI
+
+      FhfFcvwnQPYT/pOmnVHvPCvYd1ebjGU6NSU2t7WKY28HJ5OxYI2A25bUeo8tqxyI
+
+      yW5+1mUfr13KFj8oRtygNeX56eXVlogMT8a3d2dIhCe2H7Bo26y/d7CQuKLJHDJd
+
+      ArolQ4FCR7vY4Y8MDEZf7kYzawMUgtN+zY+vkNaOJH1AQrRqahfGlZfh8jjNp+20
+
+      J0CT33KpuMZmYzc4ZCIwojvxuch7yPspOqsactIGEk72gtQjbz7Dk+XYtsDe3CMW
+
+      1hMwt6CaDixVBgBwAc/qOR2A24j3pSC4W/0xJmmPLQphgzpHphNULB7j7UTKvGof
+
+      KA5R2d4On3XNDgOVyvnFqSot/kGkoUeuDcL5OWYzSlvhhChZbH2UF3bkRYKtcCD9
+
+      0m9jqNf6oDP6N8v3smWe2lBvP+Sn845dWDKXcCMu5/3EFZucJ48y7RetWIExKREa
+
+      m9T8bJUox04FB6b9HbwZ4ui3uRGKLXASUoWNjDNKD/yZkuBjcNqllEdjB+dYxzFf
+
+      BT02Vf6Dsuimrdfp5gJ0iHRc2jTbkNJtUQoj1iM=
+
+      -----END CERTIFICATE-----
+    key: "-----BEGIN PRIVATE KEY-----\r\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDgji/xEssQW7YW\r\nJYFvmZP1kwP0HZ97VHDhFIzIrJBidQIidEvG4aGEvIDE0+99pKpItlYo19ZNaPZO\r\nY1uSN8F37pBY5u1qXHpgR1oTLPjCtqa4Lnjzy6ulmXQfva+L40diVuVl7LlWn5Qy\r\nMtGTDuAZkUjX8Bx+j6i0mXXakI0vxSc25hWL16qAt6cg+Js+jXL7Z/PThG6pw1Rd\r\nLIEqYihaFf7q4yEddkQvAivnDODvUAliFKL4JfSMjGFMbUY6o0DORiHqilYgdHxn\r\nN9YQ0JSN9tRYqpz7gAIgFzaRJk6ga32yFYiPDmQY/e0Xfe1vEhx4HTn//ATM8NtK\r\ndLQfiT1DAgMBAAECggEAUkzallTodszeHhzN5SyY9VrWCpzmzClFG8FP3eadHnC7\r\nAQy1jyU38PGzkjAI6Pg2buLhDiQZB5MOHum8cIkdz8pwPh0Y67AMLAhKo5eKbrbJ\r\nwNxLeTLu7Iki7dU0JyV8DrdBaUtLHEvtYT6N4AOGL+i3FWmLz/jwAIz0DFCJZnWA\r\nTARvjkgJA+Y4egu218KNwy99tlfN4O6R+dGl940hL6h4Z3qKk3R875T0wxTpSh+A\r\ngw0kC1bKfSa+U4i4FxbHbok8VlpteC8hlM9Ti+NBpTLSDc4FGfGlMSa4GK+u21uN\r\nd65FZqpQRjF6M7OjPQQbceQQH+fxb6gcFZlbmOm6JQKBgQD43v1JfLMoEWxLRFtO\r\n28eRMNAFtlQ4twZ9cAenv3mrhZtfHeEc6PqKKqKiHgyJ8khGjg+IBITu1ZsV7Gfe\r\n5eE7Kfe1uYfNkqA1irI5AQWQ8jsQbal+HNZUr/c1nB7cj3CTV7mHQV9KfWImon+W\r\nX2mfwPSTZ8OLvXDrzNccfSG0lwKBgQDm/OMzbGunZF9rJHwUHKDfMDLqJUsm3VZA\r\nfANhThk5YhBJ4xz4Ti3YKveMufNLt5nX9QaymBFcC4sYVLfCPDraBUQJqZzy0Yh6\r\nxDu6ebr6kMRIn/SKMOL+q49yURRN0saQr0ZHIqkgehNixVBgGlQWOmQIHEGwPGl/\r\ncjesTCE2NQKBgQDyF7k8q1l8OLan4S8RXyqbSmiRpfP319MwYrKPs+uftrCVrnM1\r\ntE1D6oWaPrDj4BP+zmK9ZegKjS/3+6hvZB/ddc3JsVkx2NiQPQNyAFRx07ExIfwm\r\n+dZlO2e3ds9urvpL2qJXuHgB9kZsXtbOaLJO/Vztp5rJbNdUCkeXJwKKsQKBgDaX\r\ndBcWO8c/GLIY2F5kebzmBlKCZ+WSkC0DYkUgESQXwiPEUnd4+qrJVOJknFS72tdI\r\naMHS4N9xNvmUJC360Cnw7qid9qMI1Im3USp8VK2dg1Zqv3/dl/h6kZeCBBt0gkt1\r\nsVVkorYzQ9unKJzd/BuYx0WHcBr33DMrym6lO4A1AoGAY0ZDglX4ZeZmK2ppsy30\r\nG9/Q3elGQkAs6S/PWq/GkDJ0J+31wDy82L1rseL9P2v483g8Dwdrjt8vA8JkyZE6\r\nIy1y1z5PYfKK+WABSyYUhNP21USFfLxSI0Scw8Z/75022CNUImUZ4H637p6DKecr\r\nk3bY438tjaRkHjmdYI0TSZk=\r\n-----END PRIVATE KEY-----\r\n"
+  wildcardPolicy: None
diff --git a/k8s/service.yml b/k8s/service.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c908c1c4479bf065b44ebb836487778adae6f661
--- /dev/null
+++ b/k8s/service.yml
@@ -0,0 +1,12 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: self-data-doc-service
+  namespace: ns-cpd-p01-syn
+spec:
+  selector:
+    app: self-data-doc
+  ports:
+    - protocol: TCP
+      port: 80
+      targetPort: 8080