[{"data":1,"prerenderedAt":162},["ShallowReactive",2],{"article__git-based-cms":3},{"id":4,"title":5,"body":6,"description":149,"extension":150,"meta":151,"navigation":152,"path":153,"seo":154,"stem":155,"tags":156,"__hash__":161},"article\u002Farticle\u002Fgit-based-cms.md","Les CMS orientés Git",{"type":7,"value":8,"toc":138},"minimark",[9,13,29,34,46,50,57,61,68,72,88,92,105,109,116,120],[10,11,5],"h1",{"id":12},"les-cms-orientés-git",[14,15,16],"blockquote",{},[17,18,19,20,24,25,28],"p",{},"Vous voulez ",[21,22,23],"strong",{},"gérer vos contenus"," sans avoir à vous occuper de l'infogérance, avec un historique, et tout ça ",[21,26,27],{},"gratuitement"," ? Les CMS orientés Git sont là pour ça !",[30,31,33],"h2",{"id":32},"le-stockage-des-données","Le stockage des données",[17,35,36,37,40,41,45],{},"Le principe est simple, ",[21,38,39],{},"au lieu de stocker les données dans une base de données, on les stocke dans un repo Git"," et l'accès se fait via l'API de l'outil de gestion de version (GitLab\u002FGitHub\u002F...).\nVous pouvez utiliser par exemple des fichiers ",[42,43,44],"code",{},".json"," pour organiser vos données, mais d'autres formats sont possibles.\nOn peut même envisager d'utiliser les \"issue\" plutôt que le repo, tout ce qui est accessible via l'API.",[30,47,49],{"id":48},"les-droits-et-lauthentification","Les droits et l'authentification",[17,51,52,53,56],{},"Et pour les droits ? Il suffit de ",[21,54,55],{},"s'authentifier via l'oAuth"," de ce dernier.\nL'application va vous demander des droits pour utiliser l'API via votre accès et ensuite stocker votre token pour la suite.",[30,58,60],{"id":59},"lécriture-des-données","L'écriture des données",[17,62,63,64,67],{},"Pour l'écriture, ",[21,65,66],{},"pas de POST\u002FPUT classiques, mais des commits",", on passe par l'API en lui envoyant les nouveaux fichiers et en faisant des commits.\nCela peut paraitre plus lourd, mais complétement pris en charge pour nous.",[30,69,71],{"id":70},"lapplication-en-elle-même","L'application en elle-même",[17,73,74,75,78,79,87],{},"Ok, et pour l'application qui fait tourner tout ça ? Donc, elle n'a ni besoin de gérer l'authentification ni base de données. La récupération\u002Fécriture des infos se fera par API. On peut ainsi avoir une ",[21,76,77],{},"application générée statiquement",", comme ",[80,81,86],"a",{"href":82,"target":83,"className":84},"https:\u002F\u002Fdecapcms.org\u002F","_blank",[85],"ypk__external-link","Decap CMS",".",[30,89,91],{"id":90},"lhébergement","L'hébergement",[17,93,94,95,98,99,104],{},"La dernière étape, héberger tout ça, ",[21,96,97],{},"un simple hébergement statique suffit"," comme ",[80,100,103],{"href":101,"target":83,"className":102},"https:\u002F\u002Fwww.netlify.com\u002F",[85],"Netlify"," ou un S3 like. Pour Decap CMS, on parle de seulement 3 fichiers... Donc, vous n'êtes pas près de dépasser les free tiers.",[30,106,108],{"id":107},"pour-aller-plus-loin","Pour aller plus loin",[17,110,111,112,115],{},"Vous pouvez ensuite soit intégrer le tout dans votre projet de site, ou ",[21,113,114],{},"jouer avec votre CI\u002FCD pour déclencher des builds"," à votre convenance.",[30,117,119],{"id":118},"conclusion","Conclusion",[17,121,122,123,126,127,130,131,134,135,87],{},"On se retrouve donc avec une solution de gestion de données, ",[21,124,125],{},"gratuite"," dans la plupart des cas, et ",[21,128,129],{},"complètement infogérée",", avec un ",[21,132,133],{},"haut niveau de sécurité"," et même un ",[21,136,137],{},"historique",{"title":139,"searchDepth":140,"depth":140,"links":141},"",2,[142,143,144,145,146,147,148],{"id":32,"depth":140,"text":33},{"id":48,"depth":140,"text":49},{"id":59,"depth":140,"text":60},{"id":70,"depth":140,"text":71},{"id":90,"depth":140,"text":91},{"id":107,"depth":140,"text":108},{"id":118,"depth":140,"text":119},"Vous voulez gérer vos contenus sans avoir à vous occuper de l'infogérance, avec un historique, et tout ça gratuitement ? Les CMS orientés Git sont là pour ça !","md",{},true,"\u002Farticle\u002Fgit-based-cms",{"title":5,"description":149},"article\u002Fgit-based-cms",[157,158,159,160],"technique","jamstack","cms","backend","ocySiEbgBtsc1idGjG_PGOjcnKTlHwIPZGV7fZYeiq0",1775518747719]