diff --git a/README.md b/README.md
index 22e461437afefb13d994abc5dd738a315547dc2c..507633c684c83ccc63df42ede9a65e3133e161cc 100644
--- a/README.md
+++ b/README.md
@@ -57,6 +57,25 @@ NODE_ENV=development
     "DISPLAY_FORBIDDEN_PROJECTS_DEFAULT": true
 }
 ```
+### Configuration additionnelle pour geOrchestra
+
+Afin de mieux s'intégrer au SDI geOrchestra, il est possible de modifier le header pour afficher celui de geOrchestra.
+
+Dans le fichier config.json, ajouter :
+```json
+{
+  "GEORCHESTRA_INTEGRATION": {
+    "HEADER": {
+      "LEGACY_HEADER": false,
+      "LEGACY_URL": "/header/",
+      "STYLE": "",
+      "STYLESHEET": "",
+      "HEADER_SCRIPT": ""
+    }
+  }
+}
+```
+
 ### Utilisation sans installation du backend
 
 Il est possible d'utiliser un serveur HTTP local pour utiliser l'API des instances en ligne, sans avoir de problèmes de CORS, pour cela se référer fichier : conf_apache_dev.md
diff --git a/src/App.vue b/src/App.vue
index 265963a69201296c57e4e488c595805413fb67c9..11b4e69de0ff28374588123a79e8611ba0bb7ff5 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,6 +1,8 @@
 <template>
   <div id="app">
-    <AppHeader />
+    <GeorchestraHeader v-if="isGeorchestra" :key="$route.fullPath"/>
+    <AppHeader v-else />
+
 
     <div id="app-content">
       <span id="scroll-top-anchor" />
@@ -26,11 +28,13 @@ import { mapState } from 'vuex';
 
 import AppHeader from '@/components/AppHeader';
 import AppFooter from '@/components/AppFooter';
+import GeorchestraHeader from '@/components/GeorchestraHeader.vue';
 
 export default {
   name: 'App',
 
   components: {
+    GeorchestraHeader,
     AppHeader,
     AppFooter,
   },
@@ -54,7 +58,10 @@ export default {
     ...mapState('projects', [
       'projects',
       'project',
-    ])
+    ]),
+    isGeorchestra() {
+      return this.configuration.GEORCHESTRA_INTEGRATION?.HEADER;
+    },
   },
 };
 </script>
@@ -63,4 +70,4 @@ export default {
 .ui.active.dimmer {
   position: fixed;
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/components/GeorchestraHeader.vue b/src/components/GeorchestraHeader.vue
new file mode 100644
index 0000000000000000000000000000000000000000..46c60c5a47b5c3f786c10ed9f5ebf9ffece1f857
--- /dev/null
+++ b/src/components/GeorchestraHeader.vue
@@ -0,0 +1,59 @@
+<template>
+  <div>
+    <geor-header
+      :legacy-header="legacyHeader"
+      :legacy-url="legacyUrl"
+      :style="customStyle"
+      :logo-url="logo"
+      :stylesheet="customStylesheet"
+      :active-app="activeApp"
+    />
+  </div>
+</template>
+
+<script>
+
+import { mapState } from 'vuex';
+
+export default {
+
+  name: 'GeorchestraHeader',
+
+  computed: {
+    ...mapState([
+      'configuration'
+    ]),
+
+    headerConfig() {
+      return this.configuration.GEORCHESTRA_INTEGRATION?.HEADER;
+    },
+    activeApp() {
+      return this.$route.path.includes('my_account') ? 'geocontrib-account' : 'geocontrib';
+    },
+    logo() {
+      return this.configuration.VUE_APP_LOGO_PATH;
+    },
+    legacyHeader() {
+      return this.headerConfig.LEGACY_HEADER;
+    },
+    legacyUrl() {
+      return this.headerConfig.LEGACY_URL;
+    },
+    customStyle() {
+      return this.headerConfig.STYLE;
+    },
+    customStylesheet() {
+      return this.headerConfig.STYLESHEET;
+    },
+    headerScript() {
+      return this.headerConfig.HEADER_SCRIPT;
+    },
+  },
+
+  mounted() {
+    const headerScript = document.createElement('script');
+    headerScript.setAttribute('src', this.headerScript ? this.headerScript : 'https://cdn.jsdelivr.net/gh/georchestra/header@dist/header.js');
+    document.head.appendChild(headerScript);
+  },
+};
+</script>
diff --git a/src/main.js b/src/main.js
index ee5ad1980bc66af7a1587c7190c0bda742f8e519..60231a3ce7e9aec873d53151373a4b2e55e313c7 100644
--- a/src/main.js
+++ b/src/main.js
@@ -32,6 +32,7 @@ Vue.component('FontAwesomeIcon', FontAwesomeIcon);
 
 // Setting Vue's production tip configuration
 Vue.config.productionTip = false;
+Vue.config.ignoredElements = ['geor-header'];
 
 // Handling service worker updates and precaching
 var refreshing = false; // Flag to prevent multiple refreshes