diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d3ed9c65040dd80d3ee06000eace972c3c973224..d298b55f930b8be8d3b7da61b6cec97f9244c181 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -318,3 +318,57 @@ casaco:
   when: manual
   tags:
     - deploy
+
+opteos:
+  stage: deployment
+  environment:
+    name: opteos
+    url: https://opteos.hubl.world
+  before_script:
+    - npm ci --cache .npm --prefer-offline --only=production
+  script:
+    - echo "$APP_CONFIG_OPTEOS" > config.json
+    - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+    - npm run build
+    - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* opteos@astral.startinblox.com:~/front/
+  only:
+    - master
+  when: manual
+  tags:
+    - deploy
+
+fnk:
+  stage: deployment
+  environment:
+    name: fnk
+    url: https://fnk.hubl.world
+  before_script:
+    - npm ci --cache .npm --prefer-offline --only=production
+  script:
+    - echo "$APP_CONFIG_FNK" > config.json
+    - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+    - npm run build
+    - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* fnk@astral.startinblox.com:~/front/
+  only:
+    - master
+  when: manual
+  tags:
+    - deploy
+
+labriqueterie:
+  stage: deployment
+  environment:
+    name: labriqueterie
+    url: https://labriqueterie.hubl.world
+  before_script:
+    - npm ci --cache .npm --prefer-offline --only=production
+  script:
+    - echo "$APP_CONFIG_LABRIQUETERIE" > config.json
+    - echo "$SSH_DEPLOY_KEY" | tr -d '\r' > gitlab.key && chmod 600 gitlab.key
+    - npm run build
+    - scp -i gitlab.key -o StrictHostKeyChecking=no -r dist/* labriqueterie@astral.startinblox.com:~/front/
+  only:
+    - master
+  when: manual
+  tags:
+    - deploy
\ No newline at end of file