diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..939993500c43ffa137554a349f58c3949a651a4e
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,19 @@
+stages:
+  - build
+  - deploy
+
+build:
+  stage: build
+  tags:
+    - build
+  only:
+    - master
+  script:
+    - docker-compose build
+
+deploy:
+  stage: deploy
+  only:
+    - master
+  script:
+    - docker-compose --project-name portail-data-documentation up -d --force-recreate
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..5fe2165537f674bad4d43993b076336c60b9b1b2
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,20 @@
+
+FROM python:3.6.8-alpine3.9
+
+# Set build directory
+WORKDIR /app
+
+# add the current directory to the container as /app
+ADD . /docs
+# Perform build and cleanup artifacts
+RUN pip install mkdocs && pip install  mkdocs-material
+
+# Set working directory
+WORKDIR /docs
+
+# Expose MkDocs development server port
+EXPOSE 8000
+
+# Start development server by default
+ENTRYPOINT ["mkdocs"]
+CMD ["serve", "--dev-addr=0.0.0.0:8000"]
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..77469ded75fd6585da3a3555723660973175deac
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,14 @@
+version: '3.6'
+
+services:
+  mkdocs:
+    build:
+      context: ./
+    ports:
+      - 2077:8000
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "2m"
+        max-file: "5"
+    restart: on-failure
\ No newline at end of file
diff --git a/accessibility.md b/docs/accessibility/accessibility.md
similarity index 100%
rename from accessibility.md
rename to docs/accessibility/accessibility.md
diff --git a/architecture/admin-gui.md b/docs/architecture/admin-gui.md
similarity index 100%
rename from architecture/admin-gui.md
rename to docs/architecture/admin-gui.md
diff --git a/architecture/admin-tools.md b/docs/architecture/admin-tools.md
similarity index 100%
rename from architecture/admin-tools.md
rename to docs/architecture/admin-tools.md
diff --git a/architecture/api-gateway.md b/docs/architecture/api-gateway.md
similarity index 100%
rename from architecture/api-gateway.md
rename to docs/architecture/api-gateway.md
diff --git a/architecture/cms.md b/docs/architecture/cms.md
similarity index 96%
rename from architecture/cms.md
rename to docs/architecture/cms.md
index 1424d654e3d99f67c712e55b93ab9974e374d9d8..8baa1f38a747b6b354ed8ff71f0fe8e5f79f300e 100644
--- a/architecture/cms.md
+++ b/docs/architecture/cms.md
@@ -4,7 +4,7 @@ For all the editorial content on the portal one CMS is used to offer the possibi
 
 ## Ghost: headless CMS
 
-![ghost-logo](/assets/ghost-logo.png)
+![ghost-logo](/docs/assets/ghost-logo.png)
 
 The choice went for the open source CMS [Ghost](https://ghost.org/), replacing Wordpress as our first choice at the beginning of the project.  
 Whereas it's not perfect and there is still room for improvement, this is a great tool to use to create content in a beautiful user interface. The API allows us to get all the information needed for the web application by a REST API.
diff --git a/architecture/monitoring.md b/docs/architecture/monitoring.md
similarity index 100%
rename from architecture/monitoring.md
rename to docs/architecture/monitoring.md
diff --git a/architecture/services/authentication.md b/docs/architecture/services/authentication.md
similarity index 97%
rename from architecture/services/authentication.md
rename to docs/architecture/services/authentication.md
index a2943c24c9150c3fd76b215a40ca40292a9e570c..63735b58a7aa9d95ba289331ebe3734ef80ab8af 100644
--- a/architecture/services/authentication.md
+++ b/docs/architecture/services/authentication.md
@@ -13,7 +13,7 @@ This service also provides endpoints to retrieve and update a user profile.
 
 ## How it works
 
-![authentication-service](/assets/authentication-service.png)
+![authentication-service](/docs/assets/authentication-service.png)
 
 The entrypoint of the service is a REST API provided by a [NestJS](https://github.com/nestjs/nest) application. It depends on two other services:
 
diff --git a/architecture/services/csv-catalog-downloader.md b/docs/architecture/services/csv-catalog-downloader.md
similarity index 100%
rename from architecture/services/csv-catalog-downloader.md
rename to docs/architecture/services/csv-catalog-downloader.md
diff --git a/architecture/services/elasticsearch/elasticsearch.md b/docs/architecture/services/elasticsearch/elasticsearch.md
similarity index 100%
rename from architecture/services/elasticsearch/elasticsearch.md
rename to docs/architecture/services/elasticsearch/elasticsearch.md
diff --git a/architecture/services/elasticsearch/indexer.md b/docs/architecture/services/elasticsearch/indexer.md
similarity index 100%
rename from architecture/services/elasticsearch/indexer.md
rename to docs/architecture/services/elasticsearch/indexer.md
diff --git a/architecture/services/legacy-auth-middleware.md b/docs/architecture/services/legacy-auth-middleware.md
similarity index 100%
rename from architecture/services/legacy-auth-middleware.md
rename to docs/architecture/services/legacy-auth-middleware.md
diff --git a/architecture/services/mail.md b/docs/architecture/services/mail.md
similarity index 100%
rename from architecture/services/mail.md
rename to docs/architecture/services/mail.md
diff --git a/architecture/services/media-library.md b/docs/architecture/services/media-library.md
similarity index 100%
rename from architecture/services/media-library.md
rename to docs/architecture/services/media-library.md
diff --git a/architecture/services/organizations.md b/docs/architecture/services/organizations.md
similarity index 96%
rename from architecture/services/organizations.md
rename to docs/architecture/services/organizations.md
index 55e0fe762936c42b2dde0a60c7574cb448924287..133676a7c3373382df17b88a5db94faff2dadfb8 100644
--- a/architecture/services/organizations.md
+++ b/docs/architecture/services/organizations.md
@@ -8,7 +8,7 @@ In our application, one organization is usually a provider of data, used in the
 
 ## How it works
 
-![organizations-service](/assets/organizations-service.png)
+![organizations-service](/docs/assets/organizations-service.png)
 
 The entrypoint of the service is a REST API provided by a [NestJS](https://github.com/nestjs/nest) application. This backend application interacts with a PostgresSQL database through an ORM called [TypeORM](https://github.com/typeorm/typeorm).
 
diff --git a/architecture/services/resources.md b/docs/architecture/services/resources.md
similarity index 97%
rename from architecture/services/resources.md
rename to docs/architecture/services/resources.md
index 49867847a5404205e0e485aa39e19ff90c2b09cf..836f9f450ad32c1ea8321fff260041b4728849cf 100644
--- a/architecture/services/resources.md
+++ b/docs/architecture/services/resources.md
@@ -10,7 +10,7 @@ the output of a Web Feature Service (WFS), standard service providing an interfa
 
 ## How it works
 
-![resources-service](/assets/organizations-service.png)
+![resources-service](/docs/assets/organizations-service.png)
 
 The entrypoint of the service is a REST API provided by a [NestJS](https://github.com/nestjs/nest) application. This backend application interacts with a PostgresSQL database through an ORM called [TypeORM](https://github.com/typeorm/typeorm).
 
diff --git a/architecture/web-app.md b/docs/architecture/web-app.md
similarity index 100%
rename from architecture/web-app.md
rename to docs/architecture/web-app.md
diff --git a/assets/authentication-service.png b/docs/assets/authentication-service.png
similarity index 100%
rename from assets/authentication-service.png
rename to docs/assets/authentication-service.png
diff --git a/assets/ghost-logo.png b/docs/assets/ghost-logo.png
similarity index 100%
rename from assets/ghost-logo.png
rename to docs/assets/ghost-logo.png
diff --git a/assets/organizations-service.png b/docs/assets/organizations-service.png
similarity index 100%
rename from assets/organizations-service.png
rename to docs/assets/organizations-service.png
diff --git a/beta-deployment.md b/docs/beta-deployment/beta-deployment.md
similarity index 100%
rename from beta-deployment.md
rename to docs/beta-deployment/beta-deployment.md
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..62049be0fe22a5f1722a9d2514580b4526678d74
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,32 @@
+# Welcome to the functional documentation of portail-data
+
+## Commands
+
+* `mkdocs new [dir-name]` - Create a new project.
+* `mkdocs serve` - Start the live-reloading docs server.
+* `mkdocs build` - Build the documentation site.
+* `mkdocs help` - Print this help message.
+
+## Setting files hierarchy
+    inside mkdocs.yml use the key nav: to configure the md files hierarchy
+
+    nav:
+        - Home: index.md
+        - Architecture Guide:
+            - Admin-gui: architecture/admin-gui.md
+            - Admin-tools: architecture/admin-tools.md
+            - Api-gateway: architecture/api-gateway.md
+            - CMS: architecture/cms.md
+            - Monitoring: architecture/monitoring.md
+            - Web-app: architecture/web-app.md
+            - Service:
+                - authentification: architecture/service/autentification.md
+                - Elasticsearch:
+                    - Indexer: architecture/service/elasticsearch/indexer.md
+
+## Project layout
+
+    mkdocs.yml    # The main file and configuration file.
+    docs/
+        index.md  # The documentation homepage.
+        ...       # Other markdown pages, images and other files.
diff --git a/gitflow-ci-cd.md b/docs/miscellaneous/gitflow-ci-cd.md
similarity index 100%
rename from gitflow-ci-cd.md
rename to docs/miscellaneous/gitflow-ci-cd.md
diff --git a/sass-recommandation.md b/docs/miscellaneous/sass-recommandation.md
similarity index 100%
rename from sass-recommandation.md
rename to docs/miscellaneous/sass-recommandation.md
diff --git a/vscode-settings.md b/docs/miscellaneous/vscode-settings.md
similarity index 100%
rename from vscode-settings.md
rename to docs/miscellaneous/vscode-settings.md
diff --git a/webapp-auth.md b/docs/miscellaneous/webapp-auth.md
similarity index 100%
rename from webapp-auth.md
rename to docs/miscellaneous/webapp-auth.md
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 0000000000000000000000000000000000000000..378eda7c0340b54d13e03fda5937ecf7e5fb0d2e
--- /dev/null
+++ b/mkdocs.yml
@@ -0,0 +1,24 @@
+site_name: Portail Data Functional Documentation
+site_description: Portail Data Project Documentation with Markdown.
+site_author: MkDocs Team
+
+theme:
+  name: 'material'
+
+nav:
+    - Home: index.md
+    - Architecture Guide:
+        - Admin-gui: architecture/admin-gui.md
+        - Admin-tools: architecture/admin-tools.md
+        - Api-gateway: architecture/api-gateway.md
+        - CMS: architecture/cms.md
+        - Monitoring: architecture/monitoring.md
+        - Web-app: architecture/web-app.md
+        - Service:
+            - authentification: architecture/service/autentification.md
+            - Elasticsearch:
+                - Indexer: architecture/service/elasticsearch/indexer.md
+    - About:
+        - Gitflow: miscellaneous/gitflow-ci-cd.md
+        - VSCode: miscellaneous/vscode-settings.md
+        - Webapp: miscellaneous/webapp-auth.md