diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d39c017916d24e20cc1166a34ba1ff173b24e26e..31b4d8333624c51656c5487f9041c3b3b41c07d1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,6 +11,7 @@ stages:
   - test
   - build
   - quality
+  - deploy
   - publish
 
 test:
@@ -32,18 +33,55 @@ test:
     - master
     - merge_requests
 
-build:
+build-test:
   stage: build
   image: node:14.15.4-alpine
   before_script:
     - apk add git
+    - apk add bash
   script:
     - yarn
     - yarn build
+  only:
+    - merge_requests
+
+build-dev:
+  stage: build
+  image: node:14.15.4-alpine
+  before_script:
+    - apk add git
+    - apk add bash
+  script:
+    - yarn
+    - yarn build
+    - git config --global user.name build-pipeline
+    - git config --global user.email "$GIT_USER"
+    - git config --global user.password "$GIT_PWD"
+    - git config user.email "$GIT_USER"
+    - git remote set-url origin https://"$GIT_USER":"$GIT_PWD"@forge.grandlyon.com/web-et-numerique/llle_project/ecolyo.git
+    - git config --global credential.helper store
+    - yarn deploy-dev
   only:
     - dev
+
+build:
+  stage: build
+  image: node:14.15.4-alpine
+  before_script:
+    - apk add git
+    - apk add bash
+  script:
+    - yarn
+    - yarn build
+    - git config --global user.name build-pipeline
+    - git config --global user.email "$GIT_USER"
+    - git config --global user.password "$GIT_PWD"
+    - git config user.email "$GIT_USER"
+    - git remote set-url origin https://"$GIT_USER":"$GIT_PWD"@forge.grandlyon.com/web-et-numerique/llle_project/ecolyo.git
+    - git config --global credential.helper store
+    - yarn deploy
+  only:
     - master
-    - merge_requests
 
 build_stack:
   stage: build
@@ -87,3 +125,23 @@ sonarqube:
       -Dsonar.login=${SONAR_TOKEN}
       -Dsonar.cpd.exclusions=tests/**,src/**/*.spec.ts*
       -Dsonar.qualitygate.wait=true
+
+deploy_demo:
+  stage: deploy
+  tags:
+    - deploy
+  script:
+    - cd /root/easy-cozy/admin_scripts
+    - ./update_ecolyo_dev.sh demo
+  only:
+    - dev
+
+deploy_alpha:
+  stage: deploy
+  tags:
+    - deploy
+  script:
+    - cd /root/easy-cozy/admin_scripts
+    - ./update_all_ecolyo_dev.sh
+  only:
+    - master
diff --git a/docker-compose.yml b/docker-compose.yml
index 485c4da95ab0ac820265999dffaaec77f99423c2..4ee8a235e835c46a8045191b3ad49b1cffe3e33b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,3 +4,14 @@ services:
     image: registry.forge.grandlyon.com/web-et-numerique/llle_project/ecolyo:latest
     hostname: app
     restart: 'no'
+
+  stack:
+    image: registry.forge.grandlyon.com/web-et-numerique/llle_project/ecolyo/cozy-env:latest
+    ports:
+      - 8080:8080
+      - 5984:5984
+      - 8025:825
+    volumes:
+      - ./build:/data/cozy-app/ecolyo
+      - ./data:/usr/local/couchdb/data
+      - ./docker/disableCSP.yaml:/etc/cozy/cozy.yaml
diff --git a/package.json b/package.json
index 732e99e1a5cb796fbb6f3b25e09fc19c9e375f3b..101498e55290ebd8b0d368859bc06c5ecf641ede 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
     "watch:mobile": "cs watch --mobile",
     "start:cs": "cs start --hot --browser --no-stack ",
     "deploy": "git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build} --repo=${DEPLOY_REPOSITORY:-https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo.git}",
-    "deploy-dev": "git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev} --repo=${DEPLOY_REPOSITORY:-https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo.git}",
+    "deploy-dev": "git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-dev}",
     "deploy-test": "git-directory-deploy --directory build/ --branch ${DEPLOY_BRANCH:-build-test} --repo=${DEPLOY_REPOSITORY:-https://forge.grandlyon.com/web-et-numerique/llle_project/ecolyo.git}",
     "test": "cs test --verbose --coverage",
     "cozyPublish": "git fetch origin ${DEPLOY_BRANCH:-build}:${DEPLOY_BRANCH:-build} && cs publish --token $REGISTRY_TOKEN --build-commit $(git rev-parse ${DEPLOY_BRANCH:-build})",