diff --git a/CHANGELOG.md b/CHANGELOG.md
index c69c07699c328fc72e212f0ac15544a27aa56290..792590a4ed25e0085eae88490763d34c831a887e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,27 @@
 
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
+## [1.6.0](https://forge.grandlyon.com///compare/v1.5.0...v1.6.0) (2021-03-15)
+
+
+### Features
+
+* add Ghost admin client ([60ed843](https://forge.grandlyon.com///commit/60ed843bedc98a8e52dbbca0c9b37a4810dc51ae))
+* add news tag handling ([588f9bd](https://forge.grandlyon.com///commit/588f9bdf614d9af60b8c2357b61f4d1fe5ae3d9b))
+* add site mail signature ([6e1ba0a](https://forge.grandlyon.com///commit/6e1ba0ab9c09e9fbd53fff91edeb1e3e0874bec0))
+* add tag and posts db init ([ed1fa26](https://forge.grandlyon.com///commit/ed1fa267871df403a8f0a89642df1844b14dcab6))
+
+
+### Bug Fixes
+
+* bug on admin validation ([8fd705f](https://forge.grandlyon.com///commit/8fd705f5b4e769905c96496f064cf63b105aa8de))
+* dockerfile typo ([2d7f67b](https://forge.grandlyon.com///commit/2d7f67b52676554a20a15e613700b575d67f3b46))
+* update coord endpoint on photon-bal ([2d13c57](https://forge.grandlyon.com///commit/2d13c570cf2a1cb47470280a2a77e4e65711aa9f))
+* update dockerfile to add init scripts ([6925278](https://forge.grandlyon.com///commit/69252787747e87d6f1a78aaacfb22968951051b1))
+* update error handling on post controller + update ghost insert script ([ab97a2d](https://forge.grandlyon.com///commit/ab97a2dac4d82a6314e1f480498296eab644e731))
+* update script data + clean code ([c360668](https://forge.grandlyon.com///commit/c36066859b6f84880f0611c0aba4e8f721c2e23d))
+* **ghost:** ghost data ([00b6a18](https://forge.grandlyon.com///commit/00b6a18db4fe6d3f55bdf07775c2edf544292948))
+
 ## [1.5.0](https://forge.grandlyon.com///compare/v1.4.0...v1.5.0) (2021-02-25)
 
 
diff --git a/Dockerfile b/Dockerfile
index 51ed21cd9c0c2833d924b9b89b3e582b058e5985..595ece0b9798a5062135b8a948d6b6fec733f48d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -15,6 +15,7 @@ RUN npm install --silent
 COPY tsconfig.build.json .
 COPY tsconfig.json .
 COPY src src
+COPY scripts scripts
 
 RUN npm run build
 
diff --git a/package-lock.json b/package-lock.json
index dc0afa3bbfbaacb0be4f90c6e7336c6851f46bb6..79f04ea9cdf353befa5208e0589b66e944947e34 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
   "name": "ram_server",
-  "version": "1.5.0",
+  "version": "1.6.0",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -1334,14 +1334,26 @@
       }
     },
     "@nestjs/common": {
-      "version": "7.5.1",
-      "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-7.5.1.tgz",
-      "integrity": "sha512-UKTWa/MFTryRm4L9b+lsKFg+m/B4zDCsx/pQAMZVCYMW4FRg6QH4BIaq5fMz5G2hL5IFlFVoOC/eXJwhGDOrYA==",
+      "version": "7.6.13",
+      "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-7.6.13.tgz",
+      "integrity": "sha512-xijw6so4yA8Ywi8mnrA7Kz97ZC36u20Eyb5/XvmokdLcgTcTyHVdE39r44JYnjHPf8SKZoJ965zdu/fKl4s4GQ==",
       "requires": {
-        "axios": "0.21.0",
+        "axios": "0.21.1",
         "iterare": "1.2.1",
-        "tslib": "2.0.3",
-        "uuid": "8.3.1"
+        "tslib": "2.1.0",
+        "uuid": "8.3.2"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+          "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+        },
+        "uuid": {
+          "version": "8.3.2",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+          "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+        }
       }
     },
     "@nestjs/core": {
@@ -1627,6 +1639,26 @@
         "defer-to-connect": "^1.0.1"
       }
     },
+    "@tryghost/admin-api": {
+      "version": "1.3.8",
+      "resolved": "https://registry.npmjs.org/@tryghost/admin-api/-/admin-api-1.3.8.tgz",
+      "integrity": "sha512-xRyyc3b29xcfyGhUx3nfvsJhXBz7+2NMWbAzSijKphQooCfG7L45XsfF9oRXwEToXUfHbnpBqvzKtsCIp6i8NA==",
+      "requires": {
+        "axios": "0.21.1",
+        "form-data": "^3.0.0",
+        "jsonwebtoken": "^8.4.0"
+      },
+      "dependencies": {
+        "axios": {
+          "version": "0.21.1",
+          "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+          "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+          "requires": {
+            "follow-redirects": "^1.10.0"
+          }
+        }
+      }
+    },
     "@types/anymatch": {
       "version": "1.3.1",
       "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
@@ -2754,9 +2786,9 @@
       "dev": true
     },
     "axios": {
-      "version": "0.21.0",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz",
-      "integrity": "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==",
+      "version": "0.21.1",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+      "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
       "requires": {
         "follow-redirects": "^1.10.0"
       }
@@ -7108,9 +7140,9 @@
       "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
     },
     "ini": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
-      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+      "version": "1.3.8",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+      "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
     },
     "inquirer": {
       "version": "7.3.3",
diff --git a/package.json b/package.json
index 9a2df72b30dfe40e182752e11988b88bbd3da23c..e0d0bd9bbc93c31ec671aef764a570ded40d2e6b 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "ram_server",
   "private": true,
-  "version": "1.5.0",
+  "version": "1.6.0",
   "description": "Nest TypeScript starter repository",
   "license": "MIT",
   "scripts": {
@@ -22,7 +22,7 @@
     "test:e2e": "jest --config ./test/jest-e2e.json"
   },
   "dependencies": {
-    "@nestjs/common": "^7.5.1",
+    "@nestjs/common": "^7.6.13",
     "@nestjs/core": "^7.5.1",
     "@nestjs/jwt": "^7.2.0",
     "@nestjs/mongoose": "^7.1.0",
@@ -30,6 +30,7 @@
     "@nestjs/platform-express": "^7.5.1",
     "@nestjs/schedule": "^0.4.1",
     "@nestjs/swagger": "^4.7.5",
+    "@tryghost/admin-api": "^1.3.8",
     "@types/bcrypt": "^3.0.0",
     "bcrypt": "^5.0.0",
     "class-transformer": "^0.3.1",
diff --git a/scripts/data/etude.png b/scripts/data/etude.png
new file mode 100644
index 0000000000000000000000000000000000000000..63b1d7f02ea595e468f7bd766f54daa6d1b62866
Binary files /dev/null and b/scripts/data/etude.png differ
diff --git a/scripts/data/folder.png b/scripts/data/folder.png
new file mode 100644
index 0000000000000000000000000000000000000000..49f3ffc1cd3d6111a14d22318403bed711f5f0a6
Binary files /dev/null and b/scripts/data/folder.png differ
diff --git a/scripts/data/la_carniere.png b/scripts/data/la_carniere.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b28e92c41e523b35de33fe56a841fd942768d92
Binary files /dev/null and b/scripts/data/la_carniere.png differ
diff --git a/scripts/data/nec.png b/scripts/data/nec.png
new file mode 100644
index 0000000000000000000000000000000000000000..83e4e1609cf7a95fbd1fa2ee210c53e67e09c140
Binary files /dev/null and b/scripts/data/nec.png differ
diff --git a/scripts/ghost/migrations/init/posts.json b/scripts/ghost/migrations/init/posts.json
new file mode 100644
index 0000000000000000000000000000000000000000..7d672a8ecd8ad4af6054f95851be52505330be70
--- /dev/null
+++ b/scripts/ghost/migrations/init/posts.json
@@ -0,0 +1,1033 @@
+[
+  {
+    "id": "603f68dcadff230001465a09",
+    "uuid": "9ffc02b3-98ed-4897-a501-b70c904a4893",
+    "title": "Appel à manifestation d'intérêt Bus France Services",
+    "slug": "appel-a-manifestation-dinteret-bus-france-services",
+    "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[],\"sections\":[[1,\"p\",[[0,[],0,\"Deuxième appel à projet (AAP) visant à labelliser 50 nouveaux bus France Services lancé par l'Agence nationale pour la cohésion des territoires (ANCT).\"]]],[1,\"p\",[[0,[],0,\"Ouvert jusqu'au mois de décembre 2020 (les modalités de réponse sont les mêmes que dans le précédent AMI en date de juin 2020, document ci-dessous)\"]]]]}",
+    "comment_id": "603f68dcadff230001465a09",
+    "feature_image": null,
+    "featured": false,
+    "status": "published",
+    "visibility": "public",
+    "email_recipient_filter": "none",
+    "created_at": "2021-03-03T10:45:48.000Z",
+    "updated_at": "2021-03-03T10:46:02.000Z",
+    "published_at": "2021-03-03T10:46:02.000Z",
+    "custom_excerpt": null,
+    "codeinjection_head": null,
+    "codeinjection_foot": null,
+    "custom_template": null,
+    "canonical_url": null,
+    "tags": ["Appels à projets"],
+    "authors": [
+      {
+        "id": "1",
+        "name": "Hugo SUBTIL",
+        "slug": "hugo",
+        "email": "hugo.subtil@soprasteria.com",
+        "profile_image": null,
+        "cover_image": null,
+        "bio": null,
+        "website": null,
+        "location": null,
+        "facebook": null,
+        "twitter": null,
+        "accessibility": "{\"whatsNew\":{\"lastSeenDate\":\"2020-12-08T14:38:25.000+00:00\"},\"nightShift\":true}",
+        "status": "active",
+        "meta_title": null,
+        "meta_description": null,
+        "tour": "[\"getting-started\",\"featured-post\"]",
+        "last_seen": "2021-03-03T10:40:39.000Z",
+        "created_at": "2021-01-29T15:12:27.000Z",
+        "updated_at": "2021-03-03T10:40:39.000Z",
+        "roles": [
+          {
+            "id": "601425da7775f400017e9fce",
+            "name": "Owner",
+            "description": "Blog Owner",
+            "created_at": "2021-01-29T15:12:26.000Z",
+            "updated_at": "2021-01-29T15:12:26.000Z"
+          }
+        ],
+        "url": "http://localhost:2368/author/hugo/"
+      }
+    ],
+    "primary_author": {
+      "id": "1",
+      "name": "Hugo SUBTIL",
+      "slug": "hugo",
+      "email": "hugo.subtil@soprasteria.com",
+      "profile_image": null,
+      "cover_image": null,
+      "bio": null,
+      "website": null,
+      "location": null,
+      "facebook": null,
+      "twitter": null,
+      "accessibility": "{\"whatsNew\":{\"lastSeenDate\":\"2020-12-08T14:38:25.000+00:00\"},\"nightShift\":true}",
+      "status": "active",
+      "meta_title": null,
+      "meta_description": null,
+      "tour": "[\"getting-started\",\"featured-post\"]",
+      "last_seen": "2021-03-03T10:40:39.000Z",
+      "created_at": "2021-01-29T15:12:27.000Z",
+      "updated_at": "2021-03-03T10:40:39.000Z",
+      "roles": [
+        {
+          "id": "601425da7775f400017e9fce",
+          "name": "Owner",
+          "description": "Blog Owner",
+          "created_at": "2021-01-29T15:12:26.000Z",
+          "updated_at": "2021-01-29T15:12:26.000Z"
+        }
+      ],
+      "url": "http://localhost:2368/author/hugo/"
+    },
+    "url": "http://localhost:2368/appel-a-manifestation-dinteret-bus-france-services/",
+    "excerpt": "Deuxième appel à projet (AAP) visant à labelliser 50 nouveaux bus France\nServices lancé par l'Agence nationale pour la cohésion des territoires (ANCT).\n\nOuvert jusqu'au mois de décembre 2020 (les modalités de réponse sont les mêmes\nque dans le précédent AMI en date de juin 2020, document ci-dessous)",
+    "send_email_when_published": false,
+    "email": null,
+    "og_image": null,
+    "og_title": null,
+    "og_description": null,
+    "twitter_image": null,
+    "twitter_title": null,
+    "twitter_description": null,
+    "meta_title": null,
+    "meta_description": null,
+    "email_subject": null
+  },
+  {
+    "id": "603f6886adff2300014659f8",
+    "uuid": "e1acbc96-7272-4edd-a6db-29f1f1af61c0",
+    "title": "Les aides disponibles pour les structures de médiation et les Tiers-lieux",
+    "slug": "les-aides-disponibles-pour-les-structures-de-mediation-et-les-tiers-lieux",
+    "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[],\"sections\":[[1,\"p\",[[0,[],0,\"Dans cette période difficile, un document récapitulatif des aides pouvant être apportées...\"]]],[1,\"p\",[[0,[],0,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"]]],[1,\"p\",[[0,[],0,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"]]],[1,\"p\",[[0,[],0,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"]]]]}",
+    "comment_id": "603f6886adff2300014659f8",
+    "feature_image": null,
+    "featured": false,
+    "status": "published",
+    "visibility": "public",
+    "email_recipient_filter": "none",
+    "created_at": "2021-03-03T10:44:22.000Z",
+    "updated_at": "2021-03-03T10:44:47.000Z",
+    "published_at": "2021-03-03T10:44:47.000Z",
+    "custom_excerpt": "Erwan Le Luron",
+    "codeinjection_head": null,
+    "codeinjection_foot": null,
+    "custom_template": null,
+    "canonical_url": null,
+    "tags": ["Projets"],
+    "authors": [
+      {
+        "id": "1",
+        "name": "Hugo SUBTIL",
+        "slug": "hugo",
+        "email": "hugo.subtil@soprasteria.com",
+        "profile_image": null,
+        "cover_image": null,
+        "bio": null,
+        "website": null,
+        "location": null,
+        "facebook": null,
+        "twitter": null,
+        "accessibility": "{\"whatsNew\":{\"lastSeenDate\":\"2020-12-08T14:38:25.000+00:00\"},\"nightShift\":true}",
+        "status": "active",
+        "meta_title": null,
+        "meta_description": null,
+        "tour": "[\"getting-started\",\"featured-post\"]",
+        "last_seen": "2021-03-03T10:40:39.000Z",
+        "created_at": "2021-01-29T15:12:27.000Z",
+        "updated_at": "2021-03-03T10:40:39.000Z",
+        "roles": [
+          {
+            "id": "601425da7775f400017e9fce",
+            "name": "Owner",
+            "description": "Blog Owner",
+            "created_at": "2021-01-29T15:12:26.000Z",
+            "updated_at": "2021-01-29T15:12:26.000Z"
+          }
+        ],
+        "url": "http://localhost:2368/author/hugo/"
+      }
+    ],
+    "primary_author": {
+      "id": "1",
+      "name": "Hugo SUBTIL",
+      "slug": "hugo",
+      "email": "hugo.subtil@soprasteria.com",
+      "profile_image": null,
+      "cover_image": null,
+      "bio": null,
+      "website": null,
+      "location": null,
+      "facebook": null,
+      "twitter": null,
+      "accessibility": "{\"whatsNew\":{\"lastSeenDate\":\"2020-12-08T14:38:25.000+00:00\"},\"nightShift\":true}",
+      "status": "active",
+      "meta_title": null,
+      "meta_description": null,
+      "tour": "[\"getting-started\",\"featured-post\"]",
+      "last_seen": "2021-03-03T10:40:39.000Z",
+      "created_at": "2021-01-29T15:12:27.000Z",
+      "updated_at": "2021-03-03T10:40:39.000Z",
+      "roles": [
+        {
+          "id": "601425da7775f400017e9fce",
+          "name": "Owner",
+          "description": "Blog Owner",
+          "created_at": "2021-01-29T15:12:26.000Z",
+          "updated_at": "2021-01-29T15:12:26.000Z"
+        }
+      ],
+      "url": "http://localhost:2368/author/hugo/"
+    },
+    "primary_tag": {
+      "id": "603f63ddadff230001465985",
+      "name": "Projets",
+      "slug": "projets",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-03-03T10:24:29.000Z",
+      "updated_at": "2021-03-03T10:24:29.000Z",
+      "url": "http://localhost:2368/tag/projets/"
+    },
+    "url": "http://localhost:2368/les-aides-disponibles-pour-les-structures-de-mediation-et-les-tiers-lieux/",
+    "excerpt": "Erwan Le Luron",
+    "send_email_when_published": false,
+    "email": null,
+    "og_image": null,
+    "og_title": null,
+    "og_description": null,
+    "twitter_image": null,
+    "twitter_title": null,
+    "twitter_description": null,
+    "meta_title": null,
+    "meta_description": null,
+    "email_subject": null
+  },
+  {
+    "id": "603f6835adff2300014659ee",
+    "uuid": "22151676-4f37-4e26-87c7-fb505a44dd09",
+    "title": "Le réseau de médiation numérique Métropolitain qu’est-ce que c’est ?",
+    "slug": "le-reseau-de-mediation-numerique-metropolitain-quest-ce-que-cest",
+    "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[],\"sections\":[[1,\"p\",[[0,[],0,\"La Métropole s’est engagée depuis plusieurs mois maintenant dans la mise en place d’un réseau des acteurs de la méditation numérique.\"]]],[1,\"p\",[[0,[],0,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"]]],[1,\"p\",[[0,[],0,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"]]],[1,\"p\",[[0,[],0,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"]]]]}",
+    "comment_id": "603f6835adff2300014659ee",
+    "feature_image": "http://localhost:2368/content/images/2021/03/folder.png",
+    "featured": false,
+    "status": "published",
+    "visibility": "public",
+    "email_recipient_filter": "none",
+    "created_at": "2021-03-03T10:43:01.000Z",
+    "updated_at": "2021-03-03T10:44:03.000Z",
+    "published_at": "2021-03-03T10:44:03.000Z",
+    "custom_excerpt": "Erwan Le Luron",
+    "codeinjection_head": null,
+    "codeinjection_foot": null,
+    "custom_template": null,
+    "canonical_url": null,
+    "tags": ["Dossiers"],
+    "authors": [
+      {
+        "id": "1",
+        "name": "Hugo SUBTIL",
+        "slug": "hugo",
+        "email": "hugo.subtil@soprasteria.com",
+        "profile_image": null,
+        "cover_image": null,
+        "bio": null,
+        "website": null,
+        "location": null,
+        "facebook": null,
+        "twitter": null,
+        "accessibility": "{\"whatsNew\":{\"lastSeenDate\":\"2020-12-08T14:38:25.000+00:00\"},\"nightShift\":true}",
+        "status": "active",
+        "meta_title": null,
+        "meta_description": null,
+        "tour": "[\"getting-started\",\"featured-post\"]",
+        "last_seen": "2021-03-03T10:40:39.000Z",
+        "created_at": "2021-01-29T15:12:27.000Z",
+        "updated_at": "2021-03-03T10:40:39.000Z",
+        "roles": [
+          {
+            "id": "601425da7775f400017e9fce",
+            "name": "Owner",
+            "description": "Blog Owner",
+            "created_at": "2021-01-29T15:12:26.000Z",
+            "updated_at": "2021-01-29T15:12:26.000Z"
+          }
+        ],
+        "url": "http://localhost:2368/author/hugo/"
+      }
+    ],
+    "primary_author": {
+      "id": "1",
+      "name": "Hugo SUBTIL",
+      "slug": "hugo",
+      "email": "hugo.subtil@soprasteria.com",
+      "profile_image": null,
+      "cover_image": null,
+      "bio": null,
+      "website": null,
+      "location": null,
+      "facebook": null,
+      "twitter": null,
+      "accessibility": "{\"whatsNew\":{\"lastSeenDate\":\"2020-12-08T14:38:25.000+00:00\"},\"nightShift\":true}",
+      "status": "active",
+      "meta_title": null,
+      "meta_description": null,
+      "tour": "[\"getting-started\",\"featured-post\"]",
+      "last_seen": "2021-03-03T10:40:39.000Z",
+      "created_at": "2021-01-29T15:12:27.000Z",
+      "updated_at": "2021-03-03T10:40:39.000Z",
+      "roles": [
+        {
+          "id": "601425da7775f400017e9fce",
+          "name": "Owner",
+          "description": "Blog Owner",
+          "created_at": "2021-01-29T15:12:26.000Z",
+          "updated_at": "2021-01-29T15:12:26.000Z"
+        }
+      ],
+      "url": "http://localhost:2368/author/hugo/"
+    },
+    "primary_tag": {
+      "id": "603f63ddadff230001465981",
+      "name": "Dossiers",
+      "slug": "dossiers",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-03-03T10:24:29.000Z",
+      "updated_at": "2021-03-03T10:24:29.000Z",
+      "url": "http://localhost:2368/tag/dossiers/"
+    },
+    "url": "http://localhost:2368/le-reseau-de-mediation-numerique-metropolitain-quest-ce-que-cest/",
+    "excerpt": "Erwan Le Luron",
+    "send_email_when_published": false,
+    "email": null,
+    "og_image": null,
+    "og_title": null,
+    "og_description": null,
+    "twitter_image": null,
+    "twitter_title": null,
+    "twitter_description": null,
+    "meta_title": null,
+    "meta_description": null,
+    "email_subject": null
+  },
+  {
+    "id": "603f67d9adff2300014659e0",
+    "uuid": "fb3ffd3a-87f0-48ce-b208-7343758c4943",
+    "title": "Une plateforme d’accompagnement nationale",
+    "slug": "une-plateforme-daccompagnement-nationale",
+    "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[],\"sections\":[[1,\"p\",[[0,[],0,\"Le site solidarite-numerique.fr développé par la Mednum en partenariat avec le secrétariat d’État a la culture.\"]]],[1,\"p\",[]],[1,\"p\",[[0,[],0,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"]]],[1,\"p\",[[0,[],0,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"]]],[1,\"p\",[[0,[],0,\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"]]]]}",
+    "comment_id": "603f67d9adff2300014659e0",
+    "feature_image": "http://localhost:2368/content/images/2021/03/etude.png",
+    "featured": false,
+    "status": "published",
+    "visibility": "public",
+    "email_recipient_filter": "none",
+    "created_at": "2021-03-03T10:41:29.000Z",
+    "updated_at": "2021-03-03T10:42:46.000Z",
+    "published_at": "2021-03-03T10:42:46.000Z",
+    "custom_excerpt": "Erwan Le Luron",
+    "codeinjection_head": null,
+    "codeinjection_foot": null,
+    "custom_template": null,
+    "canonical_url": null,
+    "tags": ["Études"],
+    "authors": [
+      {
+        "id": "1",
+        "name": "Hugo SUBTIL",
+        "slug": "hugo",
+        "email": "hugo.subtil@soprasteria.com",
+        "profile_image": null,
+        "cover_image": null,
+        "bio": null,
+        "website": null,
+        "location": null,
+        "facebook": null,
+        "twitter": null,
+        "accessibility": "{\"whatsNew\":{\"lastSeenDate\":\"2020-12-08T14:38:25.000+00:00\"},\"nightShift\":true}",
+        "status": "active",
+        "meta_title": null,
+        "meta_description": null,
+        "tour": "[\"getting-started\",\"featured-post\"]",
+        "last_seen": "2021-03-03T10:40:39.000Z",
+        "created_at": "2021-01-29T15:12:27.000Z",
+        "updated_at": "2021-03-03T10:40:39.000Z",
+        "roles": [
+          {
+            "id": "601425da7775f400017e9fce",
+            "name": "Owner",
+            "description": "Blog Owner",
+            "created_at": "2021-01-29T15:12:26.000Z",
+            "updated_at": "2021-01-29T15:12:26.000Z"
+          }
+        ],
+        "url": "http://localhost:2368/author/hugo/"
+      }
+    ],
+    "primary_author": {
+      "id": "1",
+      "name": "Hugo SUBTIL",
+      "slug": "hugo",
+      "email": "hugo.subtil@soprasteria.com",
+      "profile_image": null,
+      "cover_image": null,
+      "bio": null,
+      "website": null,
+      "location": null,
+      "facebook": null,
+      "twitter": null,
+      "accessibility": "{\"whatsNew\":{\"lastSeenDate\":\"2020-12-08T14:38:25.000+00:00\"},\"nightShift\":true}",
+      "status": "active",
+      "meta_title": null,
+      "meta_description": null,
+      "tour": "[\"getting-started\",\"featured-post\"]",
+      "last_seen": "2021-03-03T10:40:39.000Z",
+      "created_at": "2021-01-29T15:12:27.000Z",
+      "updated_at": "2021-03-03T10:40:39.000Z",
+      "roles": [
+        {
+          "id": "601425da7775f400017e9fce",
+          "name": "Owner",
+          "description": "Blog Owner",
+          "created_at": "2021-01-29T15:12:26.000Z",
+          "updated_at": "2021-01-29T15:12:26.000Z"
+        }
+      ],
+      "url": "http://localhost:2368/author/hugo/"
+    },
+    "primary_tag": {
+      "id": "603f63ddadff230001465982",
+      "name": "Études",
+      "slug": "etudes",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-03-03T10:24:29.000Z",
+      "updated_at": "2021-03-03T10:24:29.000Z",
+      "url": "http://localhost:2368/tag/etudes/"
+    },
+    "url": "http://localhost:2368/une-plateforme-daccompagnement-nationale/",
+    "excerpt": "Erwan Le Luron",
+    "send_email_when_published": false,
+    "email": null,
+    "og_image": null,
+    "og_title": null,
+    "og_description": null,
+    "twitter_image": null,
+    "twitter_title": null,
+    "twitter_description": null,
+    "meta_title": null,
+    "meta_description": null,
+    "email_subject": null
+  },
+  {
+    "id": "601425dc7775f400017ea02f",
+    "uuid": "1fae30f8-b54b-4975-9411-33e646acf4ec",
+    "title": "La carto de la médiation numérique métropolitaine est (enfin) là !",
+    "slug": "welcome",
+    "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[[\"strong\"],[\"a\",[\"href\",\"https://ghost.org/integrations/\"]],[\"a\",[\"href\",\"https://ghost.org/pricing\"]],[\"a\",[\"href\",\"https://github.com/TryGhost\"]],[\"a\",[\"href\",\"http://localhost:2368/the-editor/\"]]],\"sections\":[[1,\"p\",[]],[1,\"p\",[[0,[],0,\"La cartographie de l'offre numérique du territoire de la métropole est opérationnelle et ça c'est top.\"]]],[1,\"h2\",[[0,[0],1,\"A few things you should know\"]]],[3,\"ol\",[[[0,[],0,\"Ghost is designed for ambitious, professional publishers who want to actively build a business around their content. That's who it works best for. \"]],[[0,[],0,\"The entire platform can be modified and customised to suit your needs. It's very powerful, but does require some knowledge of code. Ghost is not necessarily a good platform for beginners or people who just want a simple personal blog. \"]],[[0,[],0,\"It's possible to work with all your favourite tools and apps with hundreds of \"],[0,[1],1,\"integrations\"],[0,[],0,\" to speed up your workflows, connect email lists, build communities and much more.\"]]]],[1,\"h2\",[[0,[],0,\"Behind the scenes\"]]],[1,\"p\",[[0,[],0,\"Ghost is made by an independent non-profit organisation called the Ghost Foundation. We are 100% self funded by revenue from our \"],[0,[2],1,\"Ghost(Pro)\"],[0,[],0,\" service, and every penny we make is re-invested into funding further development of free, open source technology for modern publishing.\"]]],[1,\"p\",[[0,[],0,\"The version of Ghost you are looking at right now would not have been made possible without generous contributions from the open source \"],[0,[3],1,\"community\"],[0,[],0,\".\"]]],[1,\"h2\",[[0,[],0,\"Next up, the editor\"]]],[1,\"p\",[[0,[],0,\"The main thing you'll want to read about next is probably: \"],[0,[4],1,\"the Ghost editor\"],[0,[],0,\". This is where the good stuff happens.\"]]],[1,\"blockquote\",[[0,[],0,\"By the way, once you're done reading, you can simply delete the default Ghost user from your team to remove all of these introductory posts! \"]]]]}",
+    "comment_id": "601425dc7775f400017ea02f",
+    "feature_image": null,
+    "featured": false,
+    "status": "published",
+    "visibility": "public",
+    "email_recipient_filter": "none",
+    "created_at": "2021-01-29T15:12:28.000Z",
+    "updated_at": "2021-03-03T10:36:22.000Z",
+    "published_at": "2021-01-29T15:12:33.000Z",
+    "custom_excerpt": "Erwan Le Luron",
+    "codeinjection_head": null,
+    "codeinjection_foot": null,
+    "custom_template": null,
+    "canonical_url": null,
+    "tags": ["Projets"],
+    "authors": [
+      {
+        "id": "5951f5fca366002ebd5dbef7",
+        "name": "Ghost",
+        "slug": "ghost",
+        "email": "ghost-author@example.com",
+        "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+        "cover_image": null,
+        "bio": "You can delete this user to remove all the welcome posts",
+        "website": "https://ghost.org",
+        "location": "The Internet",
+        "facebook": "ghost",
+        "twitter": "ghost",
+        "accessibility": null,
+        "status": "active",
+        "meta_title": null,
+        "meta_description": null,
+        "tour": null,
+        "last_seen": null,
+        "created_at": "2021-01-29T15:12:27.000Z",
+        "updated_at": "2021-01-29T15:12:27.000Z",
+        "roles": [
+          {
+            "id": "601425da7775f400017e9fcc",
+            "name": "Author",
+            "description": "Authors",
+            "created_at": "2021-01-29T15:12:26.000Z",
+            "updated_at": "2021-01-29T15:12:26.000Z"
+          }
+        ],
+        "url": "http://localhost:2368/author/ghost/"
+      }
+    ],
+    "primary_author": {
+      "id": "5951f5fca366002ebd5dbef7",
+      "name": "Ghost",
+      "slug": "ghost",
+      "email": "ghost-author@example.com",
+      "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+      "cover_image": null,
+      "bio": "You can delete this user to remove all the welcome posts",
+      "website": "https://ghost.org",
+      "location": "The Internet",
+      "facebook": "ghost",
+      "twitter": "ghost",
+      "accessibility": null,
+      "status": "active",
+      "meta_title": null,
+      "meta_description": null,
+      "tour": null,
+      "last_seen": null,
+      "created_at": "2021-01-29T15:12:27.000Z",
+      "updated_at": "2021-01-29T15:12:27.000Z",
+      "roles": [
+        {
+          "id": "601425da7775f400017e9fcc",
+          "name": "Author",
+          "description": "Authors",
+          "created_at": "2021-01-29T15:12:26.000Z",
+          "updated_at": "2021-01-29T15:12:26.000Z"
+        }
+      ],
+      "url": "http://localhost:2368/author/ghost/"
+    },
+    "primary_tag": null,
+    "url": "http://localhost:2368/welcome/",
+    "excerpt": "Erwan Le Luron",
+    "send_email_when_published": false,
+    "email": null,
+    "og_image": null,
+    "og_title": null,
+    "og_description": null,
+    "twitter_image": null,
+    "twitter_title": null,
+    "twitter_description": null,
+    "meta_title": null,
+    "meta_description": null,
+    "email_subject": null
+  },
+  {
+    "id": "601425dc7775f400017ea02d",
+    "uuid": "d2d19391-e55b-4063-ae0f-c2e486513f07",
+    "title": "Superdemain et Numérique en Commun[s] s'adaptent au contexte sanitaire",
+    "slug": "the-editor",
+    "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[],\"markups\":[[\"a\",[\"href\",\"https://resin.grandlyon.com/home\"]]],\"sections\":[[1,\"p\",[]],[1,\"p\",[[0,[],0,\"Prévus pour se dérouler sur la métropole cette année, les deux événements Superdemain et Numérique en Commun[s] ont dû évidemment repenser l'organisation de cette édition 2020, année si particulière.\"]]],[1,\"p\",[[0,[],0,\"Les formations des professionnels prévus en présentiel sont annulées en raison du confinement. Mais une troisième vague de parcours en ligne est ouverte jusqu'au 13 novembre.\"]]],[1,\"p\",[[0,[0],1,\"Inscriptions\"]]],[1,\"p\",[[0,[],0,\"Les super-shows (conférences) sont maintenus en format 100% distancielPlus d'infos\"]]],[1,\"p\",[[0,[],0,\"Également prévu sur la métropole de Lyon, l'évènement Numérique en Commun[s], évènement national autour du numérique et ses enjeux a lui aussi basculé en 100% distanciel.\"]]],[1,\"p\",[[0,[],0,\"Au programme : 2h30 d'échanges le 17 novembre prochain avec de nombreux intervenants nationaux et 9 parcours en ligne à destination des professionnels, agents de collectivités ou élus sur des sujets d'actualités : inclusion numérique, communs, impact environnemental du numérique...\"]]],[1,\"p\",[[0,[0],1,\"Informations et inscription\"]]],[1,\"p\",[]]]}",
+    "comment_id": "601425dc7775f400017ea02d",
+    "feature_image": "http://localhost:2368/content/images/2021/03/nec-1.png",
+    "featured": false,
+    "status": "published",
+    "visibility": "public",
+    "email_recipient_filter": "none",
+    "created_at": "2021-01-29T15:12:28.000Z",
+    "updated_at": "2021-03-03T10:31:48.000Z",
+    "published_at": "2021-01-29T15:12:32.000Z",
+    "custom_excerpt": "Erwan Le Luron",
+    "codeinjection_head": null,
+    "codeinjection_foot": null,
+    "custom_template": null,
+    "canonical_url": null,
+    "tags": ["Infos", "À la une"],
+    "authors": [
+      {
+        "id": "5951f5fca366002ebd5dbef7",
+        "name": "Ghost",
+        "slug": "ghost",
+        "email": "ghost-author@example.com",
+        "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+        "cover_image": null,
+        "bio": "You can delete this user to remove all the welcome posts",
+        "website": "https://ghost.org",
+        "location": "The Internet",
+        "facebook": "ghost",
+        "twitter": "ghost",
+        "accessibility": null,
+        "status": "active",
+        "meta_title": null,
+        "meta_description": null,
+        "tour": null,
+        "last_seen": null,
+        "created_at": "2021-01-29T15:12:27.000Z",
+        "updated_at": "2021-01-29T15:12:27.000Z",
+        "roles": [
+          {
+            "id": "601425da7775f400017e9fcc",
+            "name": "Author",
+            "description": "Authors",
+            "created_at": "2021-01-29T15:12:26.000Z",
+            "updated_at": "2021-01-29T15:12:26.000Z"
+          }
+        ],
+        "url": "http://localhost:2368/author/ghost/"
+      }
+    ],
+    "primary_author": {
+      "id": "5951f5fca366002ebd5dbef7",
+      "name": "Ghost",
+      "slug": "ghost",
+      "email": "ghost-author@example.com",
+      "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+      "cover_image": null,
+      "bio": "You can delete this user to remove all the welcome posts",
+      "website": "https://ghost.org",
+      "location": "The Internet",
+      "facebook": "ghost",
+      "twitter": "ghost",
+      "accessibility": null,
+      "status": "active",
+      "meta_title": null,
+      "meta_description": null,
+      "tour": null,
+      "last_seen": null,
+      "created_at": "2021-01-29T15:12:27.000Z",
+      "updated_at": "2021-01-29T15:12:27.000Z",
+      "roles": [
+        {
+          "id": "601425da7775f400017e9fcc",
+          "name": "Author",
+          "description": "Authors",
+          "created_at": "2021-01-29T15:12:26.000Z",
+          "updated_at": "2021-01-29T15:12:26.000Z"
+        }
+      ],
+      "url": "http://localhost:2368/author/ghost/"
+    },
+    "primary_tag": null,
+    "url": "http://localhost:2368/the-editor/",
+    "excerpt": "Erwan Le Luron",
+    "send_email_when_published": false,
+    "email": null,
+    "og_image": null,
+    "og_title": null,
+    "og_description": null,
+    "twitter_image": null,
+    "twitter_title": null,
+    "twitter_description": null,
+    "meta_title": null,
+    "meta_description": null,
+    "email_subject": null
+  },
+  {
+    "id": "601425dc7775f400017ea02b",
+    "uuid": "8affd384-5f93-4991-8b32-ec1daefce947",
+    "title": "Nouveau : un job board de la médiation numérique",
+    "slug": "publishing-options",
+    "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[[\"code\",{\"code\":\"{\\n    \\\"@context\\\": \\\"https://schema.org\\\",\\n    \\\"@type\\\": \\\"Article\\\",\\n    \\\"publisher\\\": {\\n        \\\"@type\\\": \\\"Organization\\\",\\n        \\\"name\\\": \\\"Publishing options\\\",\\n        \\\"logo\\\": \\\"https://static.ghost.org/ghost-logo.svg\\\"\\n    },\\n    \\\"author\\\": {\\n        \\\"@type\\\": \\\"Person\\\",\\n        \\\"name\\\": \\\"Ghost\\\",\\n        \\\"url\\\": \\\"http://demo.ghost.io/author/ghost/\\\",\\n        \\\"sameAs\\\": []\\n    },\\n    \\\"headline\\\": \\\"Publishing options\\\",\\n    \\\"url\\\": \\\"http://demo.ghost.io/publishing-options\\\",\\n    \\\"datePublished\\\": \\\"2018-08-08T11:44:00.000Z\\\",\\n    \\\"dateModified\\\": \\\"2018-08-09T12:06:21.000Z\\\",\\n    \\\"keywords\\\": \\\"Getting Started\\\",\\n    \\\"description\\\": \\\"The Ghost editor has everything you need to fully optimise your content. This is where you can add tags and authors, feature a post, or turn a post into a page.\\\"\\n}\\n    \"}]],\"markups\":[[\"strong\"],[\"a\",[\"href\",\"https://schema.org/\"]],[\"a\",[\"href\",\"https://search.google.com/structured-data/testing-tool\",\"rel\",\"noreferrer nofollow noopener\"]],[\"a\",[\"href\",\"http://localhost:2368/admin-settings/\"]]],\"sections\":[[1,\"p\",[[0,[],0,\"La coopérative nationale la Mednum met en place une plateforme en ligne recensant les offres de la médiation numérique.\"]]],[1,\"h2\",[[0,[],0,\"Distribute your content\"]]],[1,\"p\",[[0,[],0,\"Access the post settings menu by clicking the settings icon in the top right hand corner of the editor and discover everything you need to get your content ready for publishing. This is where you can edit things like tags, post URL, publish date and custom meta data.\"]]],[1,\"h2\",[[0,[],0,\"Feature images, URL & excerpts\"]]],[1,\"p\",[[0,[],0,\"Insert your post feature image from the very top of the post settings menu. Consider resizing or optimising your image first to ensure it's an appropriate size. Below this, you can set your post URL, publish date and add a custom excerpt.\"]]],[1,\"h2\",[[0,[],0,\"Tags & authors\"]]],[1,\"p\",[[0,[],0,\"You can easily add multiple tags and authors to any post to filter and organise the relationships between your content in Ghost.\"]]],[1,\"h2\",[[0,[],0,\"Structured data & SEO\"]]],[1,\"p\",[[0,[],0,\"There's no need to hard code your meta data. In fact, Ghost will generate default meta data automatically using the content in your post.\"]]],[1,\"p\",[[0,[],0,\"Alternatively, you can override this by adding a custom meta title and description, as well as unique information for social media sharing cards on Facebook and Twitter.\"]]],[1,\"p\",[[0,[],0,\"It's also possible to set custom canonicals, which is useful for guest posts or curated lists of external links.\"]]],[1,\"p\",[[0,[],0,\"Ghost will automatically implement \"],[0,[0],1,\"structured data\"],[0,[],0,\" for your publication using JSON-LD to further optimise your content.\"]]],[10,0],[1,\"p\",[[0,[],0,\"You can test that the structured data \"],[0,[1],1,\"schema\"],[0,[],0,\" on your site is working as it should using \"],[0,[2],1,\"Google’s structured data tool\"],[0,[],0,\". \"]]],[1,\"h2\",[[0,[],0,\"Code injection\"]]],[1,\"p\",[[0,[],0,\"This tool allows you to inject code on a per post or page basis, or across your entire site. This means you can modify CSS, add unique tracking codes, or add other scripts to the head or foot of your publication without making edits to your theme files. \"]]],[1,\"p\",[[0,[0],1,\"To add code site-wide\"],[0,[],0,\", use the code injection tool in the main admin menu. This is useful for adding a Google Analytics tracking code, or to start tracking with any other analytics tool.\"]]],[1,\"p\",[[0,[0],1,\"To add code to a post or page\"],[0,[],0,\", use the code injection tool within the post settings menu. This is useful if you want to add art direction, scripts or styles that are only applicable to one post or page.\"]]],[1,\"h2\",[[0,[],0,\"Next: Admin settings\"]]],[1,\"p\",[[0,[],0,\"Now you understand how to create and optimise content, let's explore some \"],[0,[3],1,\"admin settings\"],[0,[],0,\" so you can invite your team and start collaborating.\"]]]]}",
+    "comment_id": "601425dc7775f400017ea02b",
+    "feature_image": null,
+    "featured": false,
+    "status": "published",
+    "visibility": "public",
+    "email_recipient_filter": "none",
+    "created_at": "2021-01-29T15:12:28.000Z",
+    "updated_at": "2021-03-03T10:36:35.000Z",
+    "published_at": "2021-01-29T15:12:31.000Z",
+    "custom_excerpt": "Erwan Le Luron",
+    "codeinjection_head": null,
+    "codeinjection_foot": null,
+    "custom_template": null,
+    "canonical_url": null,
+    "tags": ["Infos", "oullins"],
+    "authors": [
+      {
+        "id": "5951f5fca366002ebd5dbef7",
+        "name": "Ghost",
+        "slug": "ghost",
+        "email": "ghost-author@example.com",
+        "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+        "cover_image": null,
+        "bio": "You can delete this user to remove all the welcome posts",
+        "website": "https://ghost.org",
+        "location": "The Internet",
+        "facebook": "ghost",
+        "twitter": "ghost",
+        "accessibility": null,
+        "status": "active",
+        "meta_title": null,
+        "meta_description": null,
+        "tour": null,
+        "last_seen": null,
+        "created_at": "2021-01-29T15:12:27.000Z",
+        "updated_at": "2021-01-29T15:12:27.000Z",
+        "roles": [
+          {
+            "id": "601425da7775f400017e9fcc",
+            "name": "Author",
+            "description": "Authors",
+            "created_at": "2021-01-29T15:12:26.000Z",
+            "updated_at": "2021-01-29T15:12:26.000Z"
+          }
+        ],
+        "url": "http://localhost:2368/author/ghost/"
+      }
+    ],
+    "primary_author": {
+      "id": "5951f5fca366002ebd5dbef7",
+      "name": "Ghost",
+      "slug": "ghost",
+      "email": "ghost-author@example.com",
+      "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+      "cover_image": null,
+      "bio": "You can delete this user to remove all the welcome posts",
+      "website": "https://ghost.org",
+      "location": "The Internet",
+      "facebook": "ghost",
+      "twitter": "ghost",
+      "accessibility": null,
+      "status": "active",
+      "meta_title": null,
+      "meta_description": null,
+      "tour": null,
+      "last_seen": null,
+      "created_at": "2021-01-29T15:12:27.000Z",
+      "updated_at": "2021-01-29T15:12:27.000Z",
+      "roles": [
+        {
+          "id": "601425da7775f400017e9fcc",
+          "name": "Author",
+          "description": "Authors",
+          "created_at": "2021-01-29T15:12:26.000Z",
+          "updated_at": "2021-01-29T15:12:26.000Z"
+        }
+      ],
+      "url": "http://localhost:2368/author/ghost/"
+    },
+    "primary_tag": {
+      "id": "603f63ddadff230001465986",
+      "name": "Infos",
+      "slug": "infos",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-03-03T10:24:29.000Z",
+      "updated_at": "2021-03-03T10:24:29.000Z",
+      "url": "http://localhost:2368/tag/infos/"
+    },
+    "url": "http://localhost:2368/publishing-options/",
+    "excerpt": "Erwan Le Luron",
+    "send_email_when_published": false,
+    "email": null,
+    "og_image": null,
+    "og_title": null,
+    "og_description": null,
+    "twitter_image": null,
+    "twitter_title": null,
+    "twitter_description": null,
+    "meta_title": null,
+    "meta_description": null,
+    "email_subject": null
+  },
+  {
+    "id": "601425dc7775f400017ea029",
+    "uuid": "616de514-232e-45ca-8080-38659799eee7",
+    "title": "Découverte : le centre socio-culturel la Carnière (Saint-Priest)",
+    "slug": "admin-settings",
+    "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}],[\"soft-return\",\"\",{}]],\"cards\":[[\"image\",{\"src\":\"https://static.ghost.org/v1.0.0/images/private.png\"}]],\"markups\":[[\"em\"],[\"strong\"],[\"a\",[\"href\",\"https://ghost.org/pricing/\"]],[\"a\",[\"href\",\"http://localhost:2368/organising-content/\"]]],\"sections\":[[1,\"h2\",[[0,[],0,\"Make your site private\"]]],[1,\"p\",[[0,[],0,\"Le centre socio-culturel la Carnière situé à Saint-Priest possède un important pôle numérique.\"]]],[10,0],[1,\"p\",[[0,[],0,\"Ghost will give you a short, randomly generated pass-phrase which you can share with anyone who needs access to the site while you're working on it. While this setting is enabled, all search engine optimisation features will be switched off to help keep your site under the radar.\"]]],[1,\"p\",[[0,[],0,\"Do remember though, this is \"],[0,[0],1,\"not\"],[0,[],0,\" secure authentication. You shouldn't rely on this feature for protecting important private data. It's just a simple, shared pass-phrase for some very basic privacy.\"]]],[1,\"h2\",[[0,[],0,\"Invite your team \"]]],[1,\"p\",[[0,[],0,\"Ghost has a number of different user roles for your team:\"]]],[1,\"p\",[[0,[1],1,\"Contributors\"],[1,[],0,0],[0,[],0,\"This is the base user level in Ghost. Contributors can create and edit their own draft posts, but they are unable to edit drafts of others or publish posts. Contributors are \"],[0,[1],1,\"untrusted\"],[0,[],0,\" users with the most basic access to your publication.\"]]],[1,\"p\",[[0,[1],1,\"Authors\"],[1,[],0,1],[0,[],0,\"Authors are the 2nd user level in Ghost. Authors can write, edit  and publish their own posts. Authors are \"],[0,[1],1,\"trusted\"],[0,[],0,\" users. If you don't trust users to be allowed to publish their own posts, they should be set as Contributors.\"]]],[1,\"p\",[[0,[1],1,\"Editors\"],[1,[],0,2],[0,[],0,\"Editors are the 3rd user level in Ghost. Editors can do everything that an Author can do, but they can also edit and publish the posts of others - as well as their own. Editors can also invite new Contributors & Authors to the site.\"]]],[1,\"p\",[[0,[1],1,\"Administrators\"],[1,[],0,3],[0,[],0,\"The top user level in Ghost is Administrator. Again, administrators can do everything that Authors and Editors can do, but they can also edit all site settings and data, not just content. Additionally, administrators have full access to invite, manage or remove any other user of the site.\"],[1,[],0,4],[1,[],0,5],[0,[1],1,\"The Owner\"],[1,[],0,6],[0,[],0,\"There is only ever one owner of a Ghost site. The owner is a special user which has all the same permissions as an Administrator, but with two exceptions: The Owner can never be deleted. And in some circumstances the owner will have access to additional special settings if applicable. For example: billing details, if using \"],[0,[2,1],2,\"Ghost(Pro)\"],[0,[],0,\".\"]]],[1,\"blockquote\",[[0,[0],1,\"It's a good idea to ask all of your users to fill out their user profiles, including bio and social links. These will populate rich structured data for posts and generally create more opportunities for themes to fully populate their design.\"]]],[1,\"h2\",[[0,[],0,\"Next: Organising content\"]]],[1,\"p\",[[0,[],0,\"Find out how to \"],[0,[3],1,\"organise your content\"],[0,[],0,\" with sensible tags and authors, or for more advanced configurations, how to create custom content structures using dynamic routing.\"]]]]}",
+    "comment_id": "601425dc7775f400017ea029",
+    "feature_image": "http://localhost:2368/content/images/2021/03/la_carniere.png",
+    "featured": false,
+    "status": "published",
+    "visibility": "public",
+    "email_recipient_filter": "none",
+    "created_at": "2021-01-29T15:12:28.000Z",
+    "updated_at": "2021-03-03T10:36:48.000Z",
+    "published_at": "2021-01-29T15:12:30.000Z",
+    "custom_excerpt": "Erwan Le Luron",
+    "codeinjection_head": null,
+    "codeinjection_foot": null,
+    "custom_template": null,
+    "canonical_url": null,
+    "tags": ["Ressources", "oullins"],
+    "authors": [
+      {
+        "id": "5951f5fca366002ebd5dbef7",
+        "name": "Ghost",
+        "slug": "ghost",
+        "email": "ghost-author@example.com",
+        "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+        "cover_image": null,
+        "bio": "You can delete this user to remove all the welcome posts",
+        "website": "https://ghost.org",
+        "location": "The Internet",
+        "facebook": "ghost",
+        "twitter": "ghost",
+        "accessibility": null,
+        "status": "active",
+        "meta_title": null,
+        "meta_description": null,
+        "tour": null,
+        "last_seen": null,
+        "created_at": "2021-01-29T15:12:27.000Z",
+        "updated_at": "2021-01-29T15:12:27.000Z",
+        "roles": [
+          {
+            "id": "601425da7775f400017e9fcc",
+            "name": "Author",
+            "description": "Authors",
+            "created_at": "2021-01-29T15:12:26.000Z",
+            "updated_at": "2021-01-29T15:12:26.000Z"
+          }
+        ],
+        "url": "http://localhost:2368/author/ghost/"
+      }
+    ],
+    "primary_author": {
+      "id": "5951f5fca366002ebd5dbef7",
+      "name": "Ghost",
+      "slug": "ghost",
+      "email": "ghost-author@example.com",
+      "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+      "cover_image": null,
+      "bio": "You can delete this user to remove all the welcome posts",
+      "website": "https://ghost.org",
+      "location": "The Internet",
+      "facebook": "ghost",
+      "twitter": "ghost",
+      "accessibility": null,
+      "status": "active",
+      "meta_title": null,
+      "meta_description": null,
+      "tour": null,
+      "last_seen": null,
+      "created_at": "2021-01-29T15:12:27.000Z",
+      "updated_at": "2021-01-29T15:12:27.000Z",
+      "roles": [
+        {
+          "id": "601425da7775f400017e9fcc",
+          "name": "Author",
+          "description": "Authors",
+          "created_at": "2021-01-29T15:12:26.000Z",
+          "updated_at": "2021-01-29T15:12:26.000Z"
+        }
+      ],
+      "url": "http://localhost:2368/author/ghost/"
+    },
+    "primary_tag": {
+      "id": "603f63ddadff230001465984",
+      "name": "Ressources",
+      "slug": "ressources",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-03-03T10:24:29.000Z",
+      "updated_at": "2021-03-03T10:24:29.000Z",
+      "url": "http://localhost:2368/tag/ressources/"
+    },
+    "url": "http://localhost:2368/admin-settings/",
+    "excerpt": "Erwan Le Luron",
+    "send_email_when_published": false,
+    "email": null,
+    "og_image": null,
+    "og_title": null,
+    "og_description": null,
+    "twitter_image": null,
+    "twitter_title": null,
+    "twitter_description": null,
+    "meta_title": null,
+    "meta_description": null,
+    "email_subject": null
+  },
+  {
+    "id": "601425dc7775f400017ea025",
+    "uuid": "ef77f57a-83cc-4dac-9247-a04ee12bac2f",
+    "title": "Le dispositif solidarité numérique revient pour le deuxième confinement",
+    "slug": "apps-integrations",
+    "mobiledoc": "{\"version\":\"0.3.1\",\"atoms\":[],\"cards\":[[\"image\",{\"src\":\"https://static.ghost.org/v3.0.0/images/integrations-icons.png\",\"cardWidth\":\"full\"}],[\"markdown\",{\"markdown\":\"<script src=\\\"https://zapier.com/apps/embed/widget.js?services=Ghost&container=true&limit=8\\\"></script>\\n\"}],[\"image\",{\"src\":\"https://static.ghost.org/v3.0.0/images/integrations-and-webhooks-in-ghost.png\",\"alt\":\"Screenshot of custom integrations with webhooks in Ghost Admin\",\"cardWidth\":\"\"}]],\"markups\":[[\"a\",[\"href\",\"https://ghost.org/integrations/\"]],[\"a\",[\"href\",\"https://zapier.com\"]],[\"strong\"],[\"a\",[\"href\",\"https://ghost.org/docs/content-api/\"]],[\"a\",[\"href\",\"http://localhost:2368/themes/\"]]],\"sections\":[[1,\"p\",[]],[1,\"p\",[[0,[],0,\"Lancé au printemps, le dispositif solidarité numérique revient pour venir en aide aux texte super long qu'il faut écrire pour vérifier que l'on a pas de problèmes. Aller encore un peu de texte parce que c'est quand même super fun. \"]]],[1,\"p\",[[0,[],0,\"It's possible to connect your Ghost site to hundreds of the most popular apps and tools using integrations that take no more than a few minutes to setup.\"]]],[1,\"p\",[[0,[],0,\"Whether you need to automate workflows, connect your email list, build a community or embed products from your ecommerce store, our \"],[0,[0],1,\"integrations library\"],[0,[],0,\" has got it all covered with hundreds of tutorials.\"]]],[10,0],[1,\"h2\",[[0,[],0,\"Zapier\"]]],[1,\"p\",[[0,[],0,\"On top of this, you can connect your Ghost site to more than 1,000 external services using the official integration with \"],[0,[1],1,\"Zapier\"],[0,[],0,\".\"]]],[1,\"p\",[[0,[],0,\"Zapier sets up automations with Triggers and Actions, which allows you to create and customise a wide range of connected applications.\"]]],[1,\"blockquote\",[[0,[2],1,\"Example\"],[0,[],0,\": When someone new subscribes to a newsletter on a Ghost site (Trigger) then the contact information is automatically pushed into MailChimp (Action).\"]]],[1,\"p\",[[0,[2],1,\"Here are the most popular Ghost<>Zapier automation templates:\"],[0,[],0,\" \"]]],[10,1],[1,\"h2\",[[0,[],0,\"Custom integrations\"]]],[1,\"p\",[[0,[],0,\"At the heart of Ghost sits a robust JSON API – designed to create, manage and retrieve content with ease. \"]]],[1,\"p\",[[0,[],0,\"It's possible to create custom Ghost integrations with dedicated API keys and webhooks from the Integrations page within Ghost Admin. \"]]],[10,2],[1,\"p\",[[0,[],0,\"Beyond that, the API allows you to build entirely custom publishing apps. You can send content from your favourite desktop editor, build a custom interface for handling editorial workflow or use Ghost as a full headless CMS with a custom front-end.\"]]],[1,\"p\",[[0,[],0,\"The Ghost API is \"],[0,[3],1,\"thoroughly documented\"],[0,[],0,\" and straightforward to work with for developers of almost any level. \"]]],[1,\"h2\",[[0,[],0,\"Final step: Themes\"]]],[1,\"p\",[[0,[],0,\"Alright, on to the last post in our welcome-series! If you're curious about creating your own Ghost theme from scratch, \"],[0,[4],1,\"find out how that works\"],[0,[],0,\".\"]]]]}",
+    "comment_id": "601425dc7775f400017ea025",
+    "feature_image": null,
+    "featured": false,
+    "status": "published",
+    "visibility": "public",
+    "email_recipient_filter": "none",
+    "created_at": "2021-01-29T15:12:28.000Z",
+    "updated_at": "2021-03-03T10:39:38.000Z",
+    "published_at": "2021-01-29T15:12:28.000Z",
+    "custom_excerpt": "Erwan Le Luron",
+    "codeinjection_head": null,
+    "codeinjection_foot": null,
+    "custom_template": null,
+    "canonical_url": null,
+    "tags": ["Formations"],
+    "authors": [
+      {
+        "id": "5951f5fca366002ebd5dbef7",
+        "name": "Ghost",
+        "slug": "ghost",
+        "email": "ghost-author@example.com",
+        "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+        "cover_image": null,
+        "bio": "You can delete this user to remove all the welcome posts",
+        "website": "https://ghost.org",
+        "location": "The Internet",
+        "facebook": "ghost",
+        "twitter": "ghost",
+        "accessibility": null,
+        "status": "active",
+        "meta_title": null,
+        "meta_description": null,
+        "tour": null,
+        "last_seen": null,
+        "created_at": "2021-01-29T15:12:27.000Z",
+        "updated_at": "2021-01-29T15:12:27.000Z",
+        "roles": [
+          {
+            "id": "601425da7775f400017e9fcc",
+            "name": "Author",
+            "description": "Authors",
+            "created_at": "2021-01-29T15:12:26.000Z",
+            "updated_at": "2021-01-29T15:12:26.000Z"
+          }
+        ],
+        "url": "http://localhost:2368/author/ghost/"
+      }
+    ],
+    "primary_author": {
+      "id": "5951f5fca366002ebd5dbef7",
+      "name": "Ghost",
+      "slug": "ghost",
+      "email": "ghost-author@example.com",
+      "profile_image": "https://static.ghost.org/v3.0.0/images/ghost.png",
+      "cover_image": null,
+      "bio": "You can delete this user to remove all the welcome posts",
+      "website": "https://ghost.org",
+      "location": "The Internet",
+      "facebook": "ghost",
+      "twitter": "ghost",
+      "accessibility": null,
+      "status": "active",
+      "meta_title": null,
+      "meta_description": null,
+      "tour": null,
+      "last_seen": null,
+      "created_at": "2021-01-29T15:12:27.000Z",
+      "updated_at": "2021-01-29T15:12:27.000Z",
+      "roles": [
+        {
+          "id": "601425da7775f400017e9fcc",
+          "name": "Author",
+          "description": "Authors",
+          "created_at": "2021-01-29T15:12:26.000Z",
+          "updated_at": "2021-01-29T15:12:26.000Z"
+        }
+      ],
+      "url": "http://localhost:2368/author/ghost/"
+    },
+    "primary_tag": {
+      "id": "603f63ddadff230001465983",
+      "name": "Formations",
+      "slug": "formations",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-03-03T10:24:29.000Z",
+      "updated_at": "2021-03-03T10:24:29.000Z",
+      "url": "http://localhost:2368/tag/formations/"
+    },
+    "url": "http://localhost:2368/apps-integrations/",
+    "excerpt": "Erwan Le Luron",
+    "send_email_when_published": false,
+    "email": null,
+    "og_image": null,
+    "og_title": null,
+    "og_description": null,
+    "twitter_image": null,
+    "twitter_title": null,
+    "twitter_description": null,
+    "meta_title": null,
+    "meta_description": null,
+    "email_subject": null
+  }
+]
diff --git a/scripts/ghost/migrations/init/tags.json b/scripts/ghost/migrations/init/tags.json
new file mode 100644
index 0000000000000000000000000000000000000000..3bac468a5b390b6910eeb902a904de407b1cf364
--- /dev/null
+++ b/scripts/ghost/migrations/init/tags.json
@@ -0,0 +1,648 @@
+{
+  "tags": [
+    {
+      "id": "601913f3eed9fb0001b487a5",
+      "name": "Oullins",
+      "slug": "oullins",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a1780e9e2680001b90b2a",
+      "name": "Bron",
+      "slug": "bron",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a178de9e2680001b90b2c",
+      "name": "Brignais",
+      "slug": "brignais",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a17cde9e2680001b90b33",
+      "name": "Givors",
+      "slug": "givors",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a17dbe9e2680001b90b35",
+      "name": "Saint Priest",
+      "slug": "saint-priest",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a17e8e9e2680001b90b37",
+      "name": "Lyon 1er",
+      "slug": "lyon-1er",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a17f4e9e2680001b90b39",
+      "name": "Lyon 2eme",
+      "slug": "lyon-2eme",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a1801e9e2680001b90b3b",
+      "name": "Lyon 3eme",
+      "slug": "lyon-3eme",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a180ae9e2680001b90b3d",
+      "name": "Lyon 4eme",
+      "slug": "lyon-4eme",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a1814e9e2680001b90b3f",
+      "name": "Lyon 5eme",
+      "slug": "lyon-5eme",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a181ce9e2680001b90b41",
+      "name": "Lyon 6eme",
+      "slug": "lyon-6eme",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a1823e9e2680001b90b43",
+      "name": "Lyon 7eme",
+      "slug": "lyon-7eme",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a182be9e2680001b90b45",
+      "name": "Lyon 8eme",
+      "slug": "lyon-8eme",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "604a1832e9e2680001b90b47",
+      "name": "Lyon 9eme",
+      "slug": "lyon-9eme",
+      "description": "commune",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-02T08:57:23.000Z",
+      "updated_at": "2021-02-26T14:52:32.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390ae08cf07e0001358e5c",
+      "name": "À la une",
+      "slug": "a-la-une",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:51:12.000Z",
+      "updated_at": "2021-02-26T14:51:12.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390af58cf07e0001358e5e",
+      "name": "Infos",
+      "slug": "infos",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:51:33.000Z",
+      "updated_at": "2021-02-26T14:51:33.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390aff8cf07e0001358e60",
+      "name": "Projets",
+      "slug": "projets",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:51:43.000Z",
+      "updated_at": "2021-02-26T14:51:43.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390b0a8cf07e0001358e62",
+      "name": "Ressources",
+      "slug": "ressources",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:51:54.000Z",
+      "updated_at": "2021-02-26T14:51:54.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390b138cf07e0001358e64",
+      "name": "Formations",
+      "slug": "formations",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:52:03.000Z",
+      "updated_at": "2021-02-26T14:52:03.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390b208cf07e0001358e66",
+      "name": "Études",
+      "slug": "etudes",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:52:16.000Z",
+      "updated_at": "2021-02-26T14:52:16.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390b288cf07e0001358e68",
+      "name": "Dossiers",
+      "slug": "dossiers",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:52:24.000Z",
+      "updated_at": "2021-02-26T14:52:24.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390b4e8cf07e0001358e6b",
+      "name": "Tout public",
+      "slug": "tout-public",
+      "description": "public",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:53:02.000Z",
+      "updated_at": "2021-02-26T14:53:02.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390b6f8cf07e0001358e6d",
+      "name": "Moins de 16 ans",
+      "slug": "moins-de-16-ans",
+      "description": "public",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:53:35.000Z",
+      "updated_at": "2021-02-26T14:53:35.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390b808cf07e0001358e6f",
+      "name": "Jeunes (16-25ans)",
+      "slug": "jeunes-16-25ans",
+      "description": "public",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:53:52.000Z",
+      "updated_at": "2021-02-26T14:53:52.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390b988cf07e0001358e71",
+      "name": "Séniors (+ de 65ans)",
+      "slug": "seniors-de-65ans",
+      "description": "public",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:54:16.000Z",
+      "updated_at": "2021-02-26T14:54:16.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390ba58cf07e0001358e73",
+      "name": "Handicapés",
+      "slug": "handicapes",
+      "description": "public",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:54:29.000Z",
+      "updated_at": "2021-02-26T14:54:29.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390bb98cf07e0001358e75",
+      "name": "Allophones",
+      "slug": "allophones",
+      "description": "public",
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:54:49.000Z",
+      "updated_at": "2021-02-26T14:54:49.000Z",
+      "url": "http://localhost:2368/404/"
+    },
+    {
+      "id": "60390c568cf07e0001358e77",
+      "name": "Appels à projets",
+      "slug": "appels",
+      "description": null,
+      "feature_image": null,
+      "visibility": "public",
+      "og_image": null,
+      "og_title": null,
+      "og_description": null,
+      "twitter_image": null,
+      "twitter_title": null,
+      "twitter_description": null,
+      "meta_title": null,
+      "meta_description": null,
+      "codeinjection_head": null,
+      "codeinjection_foot": null,
+      "canonical_url": null,
+      "accent_color": null,
+      "created_at": "2021-02-26T14:57:26.000Z",
+      "updated_at": "2021-02-26T14:57:26.000Z",
+      "url": "http://localhost:2368/404/"
+    }
+  ]
+}
diff --git a/scripts/init-ghost.js b/scripts/init-ghost.js
new file mode 100644
index 0000000000000000000000000000000000000000..1885884eaea57891b92435d0b74261c03cc66f84
--- /dev/null
+++ b/scripts/init-ghost.js
@@ -0,0 +1,154 @@
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const _ = require('lodash');
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const tagsData = require('./ghost/migrations/init/tags.json');
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const postsData = require('./ghost/migrations/init/posts.json');
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const path = require('path');
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const GhostAdminAPI = require('@tryghost/admin-api');
+
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+require('dotenv').config({ path: path.resolve(__dirname, '../.env') });
+
+var api = new GhostAdminAPI({
+  url: process.env.GHOST_HOST_AND_PORT,
+  key: process.env.GHOST_ADMIN_API_KEY,
+  version: 'v3',
+});
+
+async function deleteTags(existingTags) {
+  return await Promise.all(
+    _.forEach(existingTags, async (tag) => {
+      api.tags
+        .delete(_.pick(tag, ['id']))
+        .then((res) => {
+          return null;
+        })
+        .catch((error) => console.error(error));
+    })
+  );
+}
+async function deletePosts(existingPosts) {
+  return await Promise.all(
+    _.forEach(existingPosts, async (tag) => {
+      api.posts
+        .delete(_.pick(tag, ['id']))
+        .then((res) => {
+          return null;
+        })
+        .catch((error) => console.error(error));
+    })
+  );
+}
+
+async function createTags(deleteOnly) {
+  // Get existing tags
+  await api.tags
+    .browse({ limit: 'all' })
+    .then(async (existingTags) => {
+      // remove 'meta' key
+      delete existingTags['meta'];
+      if (existingTags.length > 0) {
+        console.log('-- Dropping ' + existingTags.length + ' tags... --');
+        // Delete existing tags
+        await deleteTags(existingTags).then(() => {
+          console.log('-- Tags dropped --');
+        });
+      } else {
+        console.log('-- No tag to drop --');
+      }
+
+      // Creating new tags
+      if (!deleteOnly) {
+        console.log('-- Creating ' + tagsData.tags.length + ' tags --');
+        _.forEach(tagsData.tags, (tag) => {
+          api.tags
+            .add(tag)
+            .then((res) => {
+              console.log('-- Tag `' + res.name + '` created --');
+            })
+            .catch((error) => console.error(error));
+        });
+      }
+    })
+    .catch((error) => console.error(error));
+}
+
+// Utility function to find and upload any images in an HTML string
+function processImagesInHTML(html) {
+  // Find images that Ghost Upload supports
+  let imageRegex = /="([^"]*?(?:\.jpg|\.jpeg|\.gif|\.png|\.svg|\.sgvz))"/gim;
+  let imagePromises = [];
+
+  while ((result = imageRegex.exec(html)) !== null) {
+    let file = result[1];
+    // Upload the image, using the original matched filename as a reference
+    imagePromises.push(
+      api.images.upload({
+        ref: file,
+        file: path.resolve(file),
+      })
+    );
+  }
+
+  return Promise.all(imagePromises).then((images) => {
+    images.forEach((image) => (html = html.replace(image.ref, image.url)));
+    return html;
+  });
+}
+
+async function createPosts(deleteOnly) {
+  // Get existing posts
+  api.posts
+    .browse({ limit: 'all' })
+    .then(async (existingPosts) => {
+      // remove 'meta' key
+      delete existingPosts['meta'];
+      if (existingPosts.length > 0) {
+        console.log('-- Dropping ' + existingPosts.length + ' posts... --');
+        // Delete existing posts
+        await deletePosts(existingPosts).then(() => {
+          console.log('-- Posts dropped --');
+        });
+      } else {
+        console.log('-- No posts to drop --');
+      }
+
+      // Creating new posts
+      if (!deleteOnly) {
+        console.log('-- Creating ' + postsData.length + ' posts --');
+        _.forEach(postsData, (post) => {
+          api.posts
+            .add(post, { source: 'html' })
+            .then((res) => {
+              console.log('-- Post `' + res.title + '` created --');
+            })
+            .catch((error) => console.error(error));
+        });
+      }
+    })
+    .catch((error) => console.error(error));
+}
+
+async function main(deleteOnly) {
+  createTags(deleteOnly).then(() => {
+    createPosts(deleteOnly);
+  });
+}
+
+var myArgs = process.argv.slice(2);
+
+switch (myArgs[0]) {
+  case 'drop':
+    console.log('-- Droping data --');
+    main(true);
+    break;
+  case 'up':
+    console.log('-- Init db --');
+    main(false);
+    break;
+  default:
+    console.error('Unknown cmd');
+}
diff --git a/src/mailer/mail-templates/adminStructureClaim.ejs b/src/mailer/mail-templates/adminStructureClaim.ejs
index 12ba539835a44a9a609bd7d1937d45ec48e09474..8eff0993341c0655469c5cd2dfbe1aa50a9180ff 100644
--- a/src/mailer/mail-templates/adminStructureClaim.ejs
+++ b/src/mailer/mail-templates/adminStructureClaim.ejs
@@ -2,5 +2,3 @@ Bonjour<br />
 <br />
 Une nouvelle structure a été revendiquée. Pour valider ou refuser la demande, merci de vous rendre sur
 <a href="<%= config.protocol %>://<%= config.host %><%= config.port ? ':' + config.port : '' %>/admin">ce lien</a>.
-<br />
-Ce mail est un mail automatique. Merci de ne pas y répondre.
diff --git a/src/mailer/mail-templates/apticStructureDuplication.ejs b/src/mailer/mail-templates/apticStructureDuplication.ejs
index 5ac784a9c9e172e1d90179224c78319e5c46fb25..53d99ec48ecccb22849a867d2579fac919ec78f9 100644
--- a/src/mailer/mail-templates/apticStructureDuplication.ejs
+++ b/src/mailer/mail-templates/apticStructureDuplication.ejs
@@ -2,12 +2,3 @@ Bonjour,<br />
 <br />
 La fiche structure: <strong><%= name %></strong> a été créée après récupération des données aptic. Elle correspond
 potientiellement a la structure existante : <strong><%= duplicatedStructureName %></strong>.
-<br />
-<br />
-Cordialement,
-<br />
-<br />
-L'équipe RES'in
-<br />
-<br />
-Ce mail est un mail automatique. Merci de ne pas y répondre.
diff --git a/src/mailer/mail-templates/changeEmail.ejs b/src/mailer/mail-templates/changeEmail.ejs
index 636faf2345061368d97af669dbdd882758b9800f..413faea2fcabff4d378ba90e10edfa4100b31520 100644
--- a/src/mailer/mail-templates/changeEmail.ejs
+++ b/src/mailer/mail-templates/changeEmail.ejs
@@ -1,8 +1,7 @@
 Bonjour,<br />
 <br />
 Votre adresse email a été modifiée, si vous en avez bien fait la demande,
-<a href="<%= config.protocol %>://<%= config.host %><%= config.port ? ':' + config.port : '' %>/change-email/<%= token %>"
+<a
+  href="<%= config.protocol %>://<%= config.host %><%= config.port ? ':' + config.port : '' %>/change-email/<%= token %>"
   >cliquez ici pour valider le changement.</a
 >
-<br />
-Ce mail est un mail automatique. Merci de ne pas y répondre.
diff --git a/src/mailer/mail-templates/resetPassword.ejs b/src/mailer/mail-templates/resetPassword.ejs
index 7143e2421b42f6cf5acd2b6b81a7d4372d8e847b..cf29cee55cd7ee9881479fef67ac49eaf27d1a7d 100644
--- a/src/mailer/mail-templates/resetPassword.ejs
+++ b/src/mailer/mail-templates/resetPassword.ejs
@@ -8,5 +8,3 @@ cliquer sur le lien suivant :
   >ce lien</a
 ><br />
 Si vous n'avez pas demander de réinitiallisation de votre mot de passe, merci d'ignorer cet email.
-<br />
-Ce mail est un mail automatique. Merci de ne pas y répondre.
diff --git a/src/mailer/mail-templates/structureClaimValidation.ejs b/src/mailer/mail-templates/structureClaimValidation.ejs
index 7ede22e62c01ebf3e0a53ee487763fda1f51194a..9e04b8973bf0a6fea16782f07e4537bf65369314 100644
--- a/src/mailer/mail-templates/structureClaimValidation.ejs
+++ b/src/mailer/mail-templates/structureClaimValidation.ejs
@@ -1,7 +1,11 @@
 Bonjour<br />
 <br />
 La demande de rattachement de votre compte a la structure <strong><%= name %></strong> a été
-<strong><%= status %></strong>.
-<br />
-<br />
-Ce mail est un mail automatique. Merci de ne pas y répondre.
+<strong><%= status %></strong>. <%if (status === 'refusée') { %>
+<p>
+  Vous considérer qu’une erreur a été commise, vous pouvez les contacter les administrateurs à l’adresse
+  <a href="mailto:inclusionnumerique@grandlyon.com">inclusionnumerique@grandlyon.com</a>
+</p>
+<% } else{ %>
+<p>Vous pouvez dorénavant mettre à jour la fiche de votre structure</p>
+<% } %>
diff --git a/src/mailer/mail-templates/structureJoinRequest.ejs b/src/mailer/mail-templates/structureJoinRequest.ejs
index 550665e04bb48c9f796a21b97fef4dfc11407107..e668707556f5e096aa2a84028bbf179612091f52 100644
--- a/src/mailer/mail-templates/structureJoinRequest.ejs
+++ b/src/mailer/mail-templates/structureJoinRequest.ejs
@@ -12,10 +12,3 @@ ou refuser la demande
   href="<%= config.protocol %>://<%= config.host %><%= config.port ? ':' + config.port : '' %>/join?id=<%= id %>&userId=<%= userId %>&status=false"
   >cliquant ici</a
 >.
-<br />
-Cordialement,
-<br />
-L'équipe RES'in
-<br />
-<br />
-Ce mail est un mail automatique. Merci de ne pas y répondre.
diff --git a/src/mailer/mail-templates/structureOutdatedInfo.ejs b/src/mailer/mail-templates/structureOutdatedInfo.ejs
index 49e0fa1eef8672da8248b137ee0cb578cce41c06..589ec35605915f4ffb5a62ce3a6d5c7827d1064f 100644
--- a/src/mailer/mail-templates/structureOutdatedInfo.ejs
+++ b/src/mailer/mail-templates/structureOutdatedInfo.ejs
@@ -6,10 +6,3 @@ acteurs de l'inclusion numérique de la Métropole de Lyon. Pouvez-vous nous aid
 <a href="<%= config.protocol %>://<%= config.host %><%= config.port ? ':' + config.port : '' %>/home?id=<%= id %>"
   >cliquant ici</a
 >.
-<br />
-Cordialement,
-<br />
-L'équipe RES'in
-<br />
-<br />
-Ce mail est un mail automatique. Merci de ne pas y répondre.
diff --git a/src/mailer/mail-templates/tempUserRegistration.ejs b/src/mailer/mail-templates/tempUserRegistration.ejs
index 8422b7dbefde902844d6970d16a0b19282321a92..fb336b0625aa83309199cd5f791f6f4037db87d4 100644
--- a/src/mailer/mail-templates/tempUserRegistration.ejs
+++ b/src/mailer/mail-templates/tempUserRegistration.ejs
@@ -6,10 +6,3 @@ plateforme pour accéder a votre structure en
 <a href="<%= config.protocol %>://<%= config.host %><%= config.port ? ':' + config.port : '' %>/register?id=<%= id %>"
   >cliquant ici</a
 >.
-<br />
-Cordialement,
-<br />
-L'équipe RES'in
-<br />
-<br />
-Ce mail est un mail automatique. Merci de ne pas y répondre.
diff --git a/src/mailer/mail-templates/verify.ejs b/src/mailer/mail-templates/verify.ejs
index 2782ec1376354879a3875a0ebf3bc8e5352fe4ad..4f2780e183b6d598a6c94d5dc8ad463abe9bf06f 100644
--- a/src/mailer/mail-templates/verify.ejs
+++ b/src/mailer/mail-templates/verify.ejs
@@ -6,5 +6,3 @@ Afin de pouvoir vous connecter sur la plateforme, merci de cliquer sur
   >ce lien</a
 >
 afin de valider votre inscription<br />
-<br />
-Ce mail est un mail automatique. Merci de ne pas y répondre.
diff --git a/src/mailer/mailer.service.ts b/src/mailer/mailer.service.ts
index 04027e30e550dde3f5b8bb793a89609f4299d87b..0650bc48c0255866d15f86ed725254b665ad01bf 100644
--- a/src/mailer/mailer.service.ts
+++ b/src/mailer/mailer.service.ts
@@ -23,6 +23,7 @@ export class MailerService {
    */
   public async send(to: string, subject: string, html: string): Promise<AxiosResponse<any>> {
     const formData = new FormData();
+
     const data = JSON.stringify({
       // eslint-disable-next-line camelcase
       from_email: this.config.from,
@@ -31,7 +32,7 @@ export class MailerService {
       to: [{ email: to }],
       reply_to: 'inclusionnumerique@grandlyon.com',
       subject: subject,
-      content: html,
+      content: this.addSignature(html),
     });
     formData.append('metadata', data);
     const contentLength = formData.getLengthSync();
@@ -82,4 +83,17 @@ export class MailerService {
     }
     return JSON.parse(fs.readFileSync(jsonPath).toString());
   }
+
+  /**
+   * Add site mail signature to a given html
+   * @param html
+   */
+  public addSignature(html: string): string {
+    html += `<br /><br /><p>L’équipe projet inclusion numérique.</p><img src="${this.config.protocol}://${
+      this.config.host
+    }${
+      this.config.port ? ':' + this.config.port : ''
+    }/assets/logos/resin.jpg" alt="Logo resin" width="168" height="58"><br /><br /><p>Ce mail est automatique. Merci de ne pas y répondre.</p>`;
+    return html;
+  }
 }
diff --git a/src/posts/enums/tag.enum.ts b/src/posts/enums/tag.enum.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8b95ae41bf996f7e1f5614333f5973b905a26d29
--- /dev/null
+++ b/src/posts/enums/tag.enum.ts
@@ -0,0 +1,10 @@
+export enum TagEnum {
+  aLaUne = 'a-la-une',
+  appels = 'appels',
+  projets = 'projets',
+  formations = 'formations',
+  infos = 'infos',
+  dossiers = 'dossiers',
+  etudes = 'etudes',
+  ressources = 'ressources',
+}
diff --git a/src/posts/posts.controller.ts b/src/posts/posts.controller.ts
index 69d709984424f4be5bc48a1c53b9ca22c085e6f9..2f919b97474661f31fd42052ef998e3fe58fde46 100644
--- a/src/posts/posts.controller.ts
+++ b/src/posts/posts.controller.ts
@@ -1,12 +1,15 @@
-import { Controller, Get, HttpService, Query } from '@nestjs/common';
+import { Controller, Get, HttpException, HttpService, HttpStatus, Logger, Param, Query } from '@nestjs/common';
 import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
+import { catchError, map } from 'rxjs/operators';
 import { ApiQuery } from '@nestjs/swagger';
 import { Post } from './schemas/post.schema';
+import { PostsService } from './posts.service';
+import { Tag } from './schemas/tag.schema';
+import { PostWithMeta } from './schemas/postWithMeta.schema';
 
 @Controller('posts')
 export class PostsController {
-  constructor(private readonly httpService: HttpService) {}
+  constructor(private readonly httpService: HttpService, private readonly postsService: PostsService) {}
 
   @Get()
   @ApiQuery({ name: 'include', type: String, required: false })
@@ -16,8 +19,8 @@ export class PostsController {
   @ApiQuery({ name: 'limit', type: String, required: false })
   @ApiQuery({ name: 'page', type: String, required: false })
   @ApiQuery({ name: 'order', type: String, required: false })
-  public async findAll(@Query() query): Promise<Observable<{ posts: Post[] }>> {
-    return this.httpService
+  public async findAll(@Query() query): Promise<PostWithMeta> {
+    const result = await this.httpService
       .get(`${process.env.GHOST_HOST_AND_PORT}/ghost/api/v3/content/posts`, {
         params: {
           key: process.env.GHOST_CONTENT_API_KEY,
@@ -30,6 +33,40 @@ export class PostsController {
           page: query.page ? query.page : null,
         },
       })
+      .pipe(
+        map((response) => response.data),
+        catchError((err) => {
+          throw new HttpException('Invalid structure id', HttpStatus.BAD_REQUEST);
+        })
+      );
+    return new Promise((resolve) => {
+      result.subscribe((result: PostWithMeta) => {
+        result.posts.map((post: Post) => (!post.custom_excerpt ? (post.excerpt = 'Inconnu') : ''));
+        resolve(result);
+      });
+    });
+  }
+
+  @Get('tags')
+  public async findAllTags(): Promise<{ public: Tag[]; commune: Tag[]; others: Tag[] }> {
+    return Promise.all([
+      this.postsService.getLocationTags(),
+      this.postsService.getPublicTags(),
+      this.postsService.getRegularTags(),
+    ]).then((data) => {
+      return { commune: data[0], public: data[1], others: data[2] };
+    });
+  }
+
+  @Get(':id')
+  public async getPostbyId(@Param('id') id: string): Promise<Observable<{ posts: Post }>> {
+    return this.httpService
+      .get(`${process.env.GHOST_HOST_AND_PORT}/ghost/api/v3/content/posts/` + id, {
+        params: {
+          key: process.env.GHOST_CONTENT_API_KEY,
+          include: 'tags,authors',
+        },
+      })
       .pipe(map((response) => response.data));
   }
 }
diff --git a/src/posts/posts.module.ts b/src/posts/posts.module.ts
index de11cb04f87397833dacfd9550c8947acfc9c591..90768fd6fed26b87aac473f556df055bcf3930da 100644
--- a/src/posts/posts.module.ts
+++ b/src/posts/posts.module.ts
@@ -1,8 +1,10 @@
 import { HttpModule, Module } from '@nestjs/common';
 import { PostsController } from './posts.controller';
+import { PostsService } from './posts.service';
 
 @Module({
   imports: [HttpModule],
   controllers: [PostsController],
+  providers: [PostsService],
 })
 export class PostsModule {}
diff --git a/src/posts/posts.service.spec.ts b/src/posts/posts.service.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e15215844510d23bdf52ea0c96ac424148f57e6b
--- /dev/null
+++ b/src/posts/posts.service.spec.ts
@@ -0,0 +1,18 @@
+import { Test, TestingModule } from '@nestjs/testing';
+import { PostsService } from './posts.service';
+
+describe('PostsService', () => {
+  let service: PostsService;
+
+  beforeEach(async () => {
+    const module: TestingModule = await Test.createTestingModule({
+      providers: [PostsService],
+    }).compile();
+
+    service = module.get<PostsService>(PostsService);
+  });
+
+  it('should be defined', () => {
+    expect(service).toBeDefined();
+  });
+});
diff --git a/src/posts/posts.service.ts b/src/posts/posts.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..498c69feda7a7bafcd08c88d54a40437a520498a
--- /dev/null
+++ b/src/posts/posts.service.ts
@@ -0,0 +1,69 @@
+import { HttpService, Injectable } from '@nestjs/common';
+import { Logger } from '@nestjs/common';
+import * as GhostAdminAPI from '@tryghost/admin-api';
+import * as _ from 'lodash';
+import { map } from 'rxjs/operators';
+import { TagEnum } from './enums/tag.enum';
+import { Tag } from './schemas/tag.schema';
+
+@Injectable()
+export class PostsService {
+  // ID's use in ghost tag description in order to categories tags.
+  public readonly locationCategory = 'commune';
+  public readonly publicCategory = 'public';
+  private api: any;
+
+  constructor() {
+    // Configure Ghost client
+    this.api = new GhostAdminAPI({
+      url: process.env.GHOST_HOST_AND_PORT,
+      key: process.env.GHOST_ADMIN_API_KEY,
+      version: 'v3',
+    });
+  }
+
+  /**
+   * Get all tags with admin endpoint, including unused ones
+   */
+  public getTags(): Promise<Tag[]> {
+    return this.api.tags.browse({ limit: 'all' });
+  }
+
+  /**
+   * Get all locations tags. Ex: Oullins, Sainte-foy etc...
+   */
+  public async getLocationTags(): Promise<Tag[]> {
+    const tags = await this.getTags();
+    return _.filter(tags, { description: this.locationCategory });
+  }
+
+  /**
+   * Get all public tags. Ex: Moins de 16 ans, adultes...
+   */
+  public async getPublicTags(): Promise<Tag[]> {
+    const tags = await this.getTags();
+    return _.filter(tags, { description: this.publicCategory });
+  }
+
+  /**
+   * Get other tags. Ex: A la une, infos...
+   */
+  public async getRegularTags(): Promise<Tag[]> {
+    const tags = await this.getTags();
+    let publicTags = _.filter(tags, { description: null });
+    // Remove 'Appel a projet'
+    _.remove(publicTags, { slug: TagEnum.appels });
+    // Move 'a la une' at index 0
+    publicTags = this.arraymove(publicTags, _.findIndex(publicTags, { slug: TagEnum.aLaUne }), 0);
+    // Move 'info' at index 1
+    publicTags = this.arraymove(publicTags, _.findIndex(publicTags, { slug: TagEnum.infos }), 1);
+    return publicTags;
+  }
+
+  public arraymove(arr, fromIndex, toIndex): Array<any> {
+    const element = arr[fromIndex];
+    arr.splice(fromIndex, 1);
+    arr.splice(toIndex, 0, element);
+    return arr;
+  }
+}
diff --git a/src/posts/schemas/pagination.schema.ts b/src/posts/schemas/pagination.schema.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4f9ecaaec31d12a488d1ea219500d1fef26da007
--- /dev/null
+++ b/src/posts/schemas/pagination.schema.ts
@@ -0,0 +1,8 @@
+export class Pagination {
+  limit: number;
+  next: any;
+  page: number;
+  pages: number;
+  prev: any;
+  total: number;
+}
diff --git a/src/posts/schemas/post.schema.ts b/src/posts/schemas/post.schema.ts
index 1711ec1f208295ec71881e4b480f21cd264f2fee..6d5b65ab2df871c3335a296796c8476c71fe3838 100644
--- a/src/posts/schemas/post.schema.ts
+++ b/src/posts/schemas/post.schema.ts
@@ -14,6 +14,7 @@ export class Post {
   published_at: string;
   url: string;
   excerpt: string;
+  custom_excerpt: string;
   reading_time: string;
   access: boolean;
   send_email_when_published: boolean;
diff --git a/src/posts/schemas/postWithMeta.schema.ts b/src/posts/schemas/postWithMeta.schema.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e3e78136848b79f7eab9d59bdcb48f417cf2aaac
--- /dev/null
+++ b/src/posts/schemas/postWithMeta.schema.ts
@@ -0,0 +1,7 @@
+import { Pagination } from './pagination.schema';
+import { Post } from './post.schema';
+
+export class PostWithMeta {
+  posts: Post[];
+  meta: { pagination: Pagination };
+}
diff --git a/src/posts/schemas/tag.schema.ts b/src/posts/schemas/tag.schema.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8575a8c5155bfe7326f40b5aa28a5f0dcf318d13
--- /dev/null
+++ b/src/posts/schemas/tag.schema.ts
@@ -0,0 +1,23 @@
+export class Tag {
+  id: string;
+  name: string;
+  slug: string;
+  description: string;
+  feature_image: null;
+  visibility: string;
+  og_image: string;
+  og_title: string;
+  og_description: string;
+  twitter_image: string;
+  twitter_title: string;
+  twitter_description: string;
+  meta_title: string;
+  meta_description: string;
+  codeinjection_head: string;
+  codeinjection_foot: string;
+  canonical_url: string;
+  accent_color: string;
+  created_at: string;
+  updated_at: string;
+  url: string;
+}
diff --git a/src/structures/services/structures.service.ts b/src/structures/services/structures.service.ts
index 045ac5a8a821215393fa5a0b22b998f84ceee027..ac2e32d264a55e171b5e4802dd6e48ef4168ca08 100644
--- a/src/structures/services/structures.service.ts
+++ b/src/structures/services/structures.service.ts
@@ -31,7 +31,12 @@ export class StructuresService {
     }
     const createdStructure = new this.structureModel(structure);
     createdStructure._id = Types.ObjectId();
-    createdStructure.save();
+    await createdStructure.save();
+    await this.getStructurePosition(createdStructure).then((postition: StructureDocument) => {
+      return this.structureModel
+        .findByIdAndUpdate(Types.ObjectId(createdStructure._id), { address: postition.address, coord: postition.coord })
+        .exec();
+    });
     user.structuresLink.push(createdStructure._id);
     user.save();
 
@@ -151,40 +156,16 @@ export class StructuresService {
    * Search structure address based on data search WS
    */
   public async searchAddress(data: { searchQuery: string }): Promise<AxiosResponse<any>> {
-    const req = 'https://data.grandlyon.com/api/elasticsearch/_search';
-    const queryString = data.searchQuery.trim().replace(/\s/g, ' AND ');
-    const params = {
-      from: 0,
-      size: 30,
-      _source: ['data-fr'],
-      query: {
-        bool: {
-          filter: {
-            term: {
-              'metadata-fr.geonet:info.uuid.keyword': '4cb035de-6ac3-4763-94d8-4c19b1d19607',
-            },
-          },
-          must: [
-            {
-              query_string: {
-                query: queryString,
-                default_field: '*',
-                analyzer: 'my_search_analyzer',
-                fuzziness: 'AUTO',
-                minimum_should_match: '90%',
-              },
-            },
-          ],
-        },
-      },
-    };
+    const req =
+      'https://download.data.grandlyon.com/geocoding/photon-bal/api?q=' +
+      data.searchQuery +
+      '&lat=45.75&lon=4.85&lang=fr&limit=5&osm_tag=:!construction&osm_tag=:!bus_stop';
     return new Promise((resolve, reject) => {
       this.httpService
         .request({
-          url: req,
+          url: encodeURI(req),
           method: 'GET',
           headers: { 'Content-Type': 'application/json' },
-          data: params,
         })
         .subscribe(
           (reply) => {
@@ -219,7 +200,7 @@ export class StructuresService {
 
   public getCoord(numero: string, address: string, zipcode: string): Observable<AxiosResponse<any>> {
     const req =
-      'https://download.data.grandlyon.com/geocoding/photon/api' + '?q=' + numero + ' ' + address + ' ' + zipcode;
+      'https://download.data.grandlyon.com/geocoding/photon-bal/api' + '?q=' + numero + ' ' + address + ' ' + zipcode;
     Logger.log(`Request : ${req}`, 'StructureService - getCoord');
     return this.httpService.get(encodeURI(req));
   }
diff --git a/template.env b/template.env
index 54a211a951c1453d4215e6d28f3093d7026c279a..41cb576d15639e668ff90bbdadc2e508f70a9e03 100644
--- a/template.env
+++ b/template.env
@@ -11,9 +11,12 @@ ME_CONFIG_BASICAUTH_USERNAME=<mongo express username>
 ME_CONFIG_BASICAUTH_PASSWORD=<mongo express password>
 ME_PORT=<mongo express port>
 SALT=<Salt must be in the form of: $Vers$log2(NumRounds)$saltvalue>
-MAIL_URL=<API url>
-MAIL_TOKEN=<API token>
+MAIL_URL=<SEN API url>
+MAIL_TOKEN=<SEN API token>
 APTIC_TOKEN=<APTIC API TOKEN>
 GHOST_PORT=<ghost port>
 GHOST_DB_PASSWORD=<ghost db password>
-USER_PWD=<test user password>
+GHOST_CONTENT_API_KEY=<Ghost global api key, can be found in integration part of ghost UI>
+GHOST_ADMIN_API_KEY=<Ghost admin api key, can be found in integration part of ghost UI>
+GHOST_HOST_AND_PORT=<Ghost host and port, ex:http://localhost:2368>
+USER_PWD=<test user password, this password will be user by every test users>