{"id":268,"date":"2014-04-07T16:58:14","date_gmt":"2014-04-07T14:58:14","guid":{"rendered":"https:\/\/wtf.roflcopter.fr\/blog\/?p=268"},"modified":"2021-02-03T02:06:17","modified_gmt":"2021-02-03T00:06:17","slug":"a-sous-lbus-google-partie-5","status":"publish","type":"post","link":"https:\/\/wtf.roflcopter.fr\/blog\/2014\/04\/07\/a-sous-lbus-google-partie-5\/","title":{"rendered":"A+ sous l\u2019bus Google \u2013 Partie 5"},"content":{"rendered":"<p>Suite et dernier post concernant cette migration de Google vers notre solution perso.<\/p>\n<p>Une fois toute l&rsquo;infrastructure en place, il va nous manquer quelque chose : l&rsquo;importation de vos donn\u00e9es personnelles ; oui, celles que vous voulez prot\u00e9ger ;)<\/p>\n<h1><span style=\"line-height: 1.5;\">Migration<\/span><\/h1>\n<h2>Les contacts<\/h2>\n<p>C&rsquo;est la partie la plus simple, il suffit d&rsquo;exporter votre liste de contacts et de l&rsquo;importer :<\/p>\n<p>Rendez vous dans Gmail et suivez les \u00e9tapes suivantes :<\/p>\n<p><a href=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-15_48_51-Contact-Manager-jeremie.pogeant@gmail.com-Gmail.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-271\" src=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-15_48_51-Contact-Manager-jeremie.pogeant@gmail.com-Gmail.png\" alt=\"Contact Manager\" width=\"608\" height=\"170\" \/><\/a><\/p>\n<p><a href=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-16_06_28-Contact-Manager-jeremie.pogeant@gmail.com-Gmail.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-272 size-full\" src=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-16_06_28-Contact-Manager-jeremie.pogeant@gmail.com-Gmail.png\" alt=\"Contact Manager\" width=\"536\" height=\"322\" \/><\/a><\/p>\n<p><span style=\"line-height: 1.5;\">Le fichier g\u00e9n\u00e9r\u00e9 peut \u00eatre ensuite import\u00e9 votre Ba\u00efkal via Roundcube.\u00a0Dans votre carnet d&rsquo;adresses, choisissez \u00ab\u00a0Importer\u00a0\u00bb :<\/span><\/p>\n<p><a href=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-16_11_56-ROFLmail-__-Carnet-dadresses.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-273 size-large\" src=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-16_11_56-ROFLmail-__-Carnet-dadresses-1024x102.png\" alt=\"Carnet d'adresses\" width=\"604\" height=\"60\" srcset=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-16_11_56-ROFLmail-__-Carnet-dadresses-1024x102.png 1024w, https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-16_11_56-ROFLmail-__-Carnet-dadresses-300x29.png 300w, https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-16_11_56-ROFLmail-__-Carnet-dadresses.png 1171w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>S\u00e9lectionnez ensuite le fichier d&rsquo;export g\u00e9n\u00e9r\u00e9 par Gmail, choisissez le carnet d&rsquo;adresses pointant sur votre Ba\u00efkal et cliquez sur \u00ab\u00a0Importer\u00a0\u00bb :<br \/>\n<a href=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-17_11_24-ROFLmail-__-Importer-les-contacts.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-274 size-full\" src=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-17_11_24-ROFLmail-__-Importer-les-contacts.png\" alt=\"Importer les contacts\" width=\"538\" height=\"320\" srcset=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-17_11_24-ROFLmail-__-Importer-les-contacts.png 538w, https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/02\/2014-02-28-17_11_24-ROFLmail-__-Importer-les-contacts-300x178.png 300w\" sizes=\"auto, (max-width: 538px) 100vw, 538px\" \/><\/a><\/p>\n<p>Et voil\u00e0, maintenant un peu de patience, le processus peut prendre pas mal de temps si vous avez pas mal de contacts.<\/p>\n<h2><span style=\"line-height: 1.3;\">Les agendas<\/span><\/h2>\n<p>L\u00e0 encore, rien de bien sorcier, il suffit d&rsquo;exporter ses calendriers au format ICS et de les importer dans le Ba\u00efkal via Roundcube.<\/p>\n<h2>\u00a0Les mails<\/h2>\n<p>Bon c&rsquo;est l\u00e0 que \u00e7a se corse un peu&#8230;<\/p>\n<p>GMail ne fait rien comme tout le monde et utilise des labels pour faciliter le classement de ses mails. Ce n&rsquo;est pas une mauvaise id\u00e9e tant qu&rsquo;on reste en mode \u00ab\u00a0Web\u00a0\u00bb.\u00a0En consultant son compte via IMAP on retrouve ses labels sous forme de dossiers o\u00f9 vous pouvez consulter tous les mails appartenant au label correspondant.\u00a0L\u00e0 o\u00f9 \u00e7a devient \u00ab\u00a0dr\u00f4le\u00a0\u00bb : un mail peu avoir plusieurs labels ! Un mail va donc se retrouver dans le dossier \u00ab\u00a0All Mail\u00a0\u00bb ainsi que dans tous les dossiers des labels auxquels il est associ\u00e9. Avec un tel syst\u00e8me un mail pourra \u00eatre dupliqu\u00e9 un certain nombre de fois si vous faites une synchronisation b\u00eate et m\u00e9chante&#8230;<\/p>\n<p>La premi\u00e8re \u00e9tape est de se rendre dans les param\u00e8tres de son comtpe GMail et d&rsquo;activer l&rsquo;acc\u00e8s IMAP via l&rsquo;onglet correspondant :<a href=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/04\/2014-04-04-16_57_41-Settings-Gmail.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-278 alignnone\" src=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/04\/2014-04-04-16_57_41-Settings-Gmail.png\" alt=\"2014-04-04 16_57_41-Settings - Gmail\" width=\"842\" height=\"397\" srcset=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/04\/2014-04-04-16_57_41-Settings-Gmail.png 842w, https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/04\/2014-04-04-16_57_41-Settings-Gmail-300x141.png 300w\" sizes=\"auto, (max-width: 842px) 100vw, 842px\" \/><\/a><\/p>\n<p><span style=\"line-height: 1.5;\">Une bonne chose est de faire ensuite le tri de ce que vous voulez rendre disponible via l&rsquo;IMAP en cochant ou d\u00e9cochant la case suivante (onglet \u00ab\u00a0Label\u00a0\u00bb) :<\/span><\/p>\n<p><a href=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/04\/2014-04-04-16_59_38-Settings-Gmail.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-277 alignnone\" src=\"https:\/\/wtf.roflcopter.fr\/blog\/wp-content\/uploads\/2014\/04\/2014-04-04-16_59_38-Settings-Gmail.png\" alt=\"2014-04-04 16_59_38-Settings - Gmail\" width=\"119\" height=\"36\" \/><\/a><\/p>\n<p><span style=\"line-height: 1.5;\">Ca peut \u00eatre une bonne chose d&rsquo;enlever la corbeille ainsi que le dossier spam et de s&rsquo;assurer que les \u00ab\u00a0Chats\u00a0\u00bb seront disponibles.<\/span><\/p>\n<p>Une fois tout cela de r\u00e9gl\u00e9, on va synchroniser tout \u00e7a.\u00a0Et pour cela, il y a <a href=\"http:\/\/imapsync.lamiral.info\/\">imapsync<\/a> ! Malheureusement l&rsquo;outil est pass\u00e9 payant, pas grave on peut r\u00e9cup\u00e9rer les sources sur le Github :<\/p>\n<pre><code>apt-get install makepasswd rcs perl-doc libmail-imapclient-perl make libfile-copy-recursive-perl \n<\/code><code>git clone git:\/\/github.com\/imapsync\/imapsync.git\n<\/code><code>cd imapsync\nmake install\n#V\u00e9rifiez si le binaire est bien install\u00e9\nimapsync -v<\/code><\/pre>\n<p><span style=\"line-height: 1.5;\">\u00a0Il suffit ensuite de faire un test de migration de votre compte GMail vers votre serveur :<\/span><\/p>\n<pre><code>imapsync --host1 imap.gmail.com --user1 username@gmail.com --password1 ******** --host2 &lt;votre_serveur_imap&gt; --user2 username@domaine.tld --password2 ******* --syncinternaldates --ssl1 -ssl2 --noauthmd5 --split1 100 --split2 100 --port1 993 --port2 993 --useheader 'Message-Id' --skipsize --allowsizemismatch --dry --justfoldersizes<\/code><\/pre>\n<p>Quelques explications :<\/p>\n<ul>\n<li><strong>&#8211;syncinternaldates<\/strong> : permet de synchroniser la date de r\u00e9ception\/\u00e9mission d&rsquo;un mail<\/li>\n<li><strong>&#8211;split[12]<\/strong> : nombre de message que l&rsquo;on traite entre deux requ\u00eates IMAP<\/li>\n<li><strong>&#8211;useheader &lsquo;Message-Id&rsquo;<\/strong> : on pr\u00e9cise le header sur lequel se baser afin d&rsquo;\u00e9viter le freeze du programme en cas de traitement de gros mail<\/li>\n<li><strong>&#8211;skipsize &#8211;allowsizemismatch<\/strong> : permet de s&rsquo;affranchir des probl\u00e8mes de taille non concordante d&rsquo;un mail entre les deux serveurs.<\/li>\n<li><strong style=\"line-height: 1.5;\">&#8211;dry<\/strong><span style=\"line-height: 1.5;\">\u00a0: juste une simulation<\/span><\/li>\n<li><strong>&#8211;justfoldersizes<\/strong> permet de vous faire une id\u00e9e rapide en affichant la taille des dossiers \u00e0 synchroniser.<\/li>\n<\/ul>\n<p><span style=\"line-height: 1.5;\">Vous pouvez aussi utiliser\u00a0<\/span><strong style=\"line-height: 1.5;\">&#8211;debug<\/strong><span style=\"line-height: 1.5;\"> en cas de souci.<\/span><\/p>\n<p>Une fois pr\u00eat vous pouvez enlevez les options &#8211;dry &#8211;justfoldersizes\u00a0et prendre un caf\u00e9, \u00e7a risque de durer longtemps surtout si votre boite mail est bien remplie ou si vous \u00eates derri\u00e8re une ligne ADSL.<\/p>\n<p>Avec cette m\u00e9thode toute votre arborescence sera migr\u00e9 moyennant le souci de duplication de mail \u00e9voqu\u00e9 plus haut.<br \/>\nUne autre solution consiste \u00e0 ne migrer que votre r\u00e9pertoire \u00ab\u00a0All Mail\u00a0\u00bb et de le placer dans un dossier sp\u00e9cifique dans votre nouvelle boite mail. Tant pis pour le classement des mails mais au moins vous \u00e9viterez leur duplication pour le moins inutile.<\/p>\n<h1><span style=\"font-family: Bitter, Georgia, serif; font-size: 48px; line-height: 1.3;\">Backup<\/span><\/h1>\n<h2>MX de backup<\/h2>\n<p>Parlons un peu du temps de r\u00e9tention des mails.<br \/>\nImaginons que pour une raison X ou Y votre serveur mail soit injoignable. Un serveur de mail souhaite vous envoyer un mail mais comme votre serveur n&rsquo;est pas disponible celui-ci lui reste sur les mains.<br \/>\nLa bonne nouvelle, c&rsquo;est que le serveur ne va pas supprimer tout de suite votre mail, il va r\u00e9essayer plusieurs fois dans une intervalle de temps qui augmentera au fur et \u00e0 mesure des essais (c&rsquo;est le plus souvent exponentiel). Si votre serveur est toujours injoignable au bout de la r\u00e9tention maximale autoris\u00e9e, le mail sera renvoy\u00e9 \u00e0 l&rsquo;exp\u00e9diteur avec un joli message d&rsquo;erreur lui expliquant le probl\u00e8me.<\/p>\n<p>Ainsi la dur\u00e9e maximale autoris\u00e9e du downtime avant de perdre des mails ne d\u00e9pend pas de vous mais de la r\u00e9tention maximale des serveurs qui souhaitent vous joindre.<br \/>\nCette valeur vous ne la connaissez pas, elle est en moyenne de 48h mais peut \u00eatre plus faible ou plus \u00e9lev\u00e9e en fonction de l&rsquo;humeur du sysadmin.<\/p>\n<p>Une bonne id\u00e9e est donc de vous configurer dans un coin un serveur mail de backup type \u00ab\u00a0Store &amp; Forward\u00a0\u00bb. Comme son nom l&rsquo;indique celui-ci se contentera de stocker les mails des domaines que vous g\u00e9rez et les d\u00e9livrera \u00e0 votre serveur mail principal quand celui-ci redevient joignable. La bonne nouvelle c&rsquo;est que c&rsquo;est maintenant vous qui g\u00e9rez la r\u00e9tention maximale :)<br \/>\nVous pouvez l&rsquo;installer sur une autre serveur, sur celui d&rsquo;un pote, ou sur un PC derri\u00e8re votre ligne ADSL (dans ce cas il vous faudra g\u00e9rer votre IP dynamique).<\/p>\n<p>Petit exemple de configuration avec postfix \/etc\/postfix\/main.cf :<\/p>\n<pre class=\"lang:default decode:true\">#Dur\u00e9e de r\u00e9tention de 3 mois\n#On ne sait jamais si vous \u00eates parti faire le tour du monde :)\nmaximal_queue_lifetime = 90d\nrelay_domains = $mydestination, &lt;vos domaines g\u00e9r\u00e9s par votre MX principal&gt;<\/pre>\n<p>Un petit \/etc\/init.d\/postfix restart et hop.<\/p>\n<p>Maintenant il faut annoncer notre MX de backup dans les DNS, en s&rsquo;appliquant sur la configuration vue en <a title=\"A+ sous l\u2019bus Google \u2013 Partie 2\" href=\"https:\/\/wtf.roflcopter.fr\/blog\/2013\/08\/31\/a-sous-lbus-google-partie-2\/\">partie\u00a02<\/a> :<\/p>\n<pre class=\"lang:default mark:5 decode:true\">mail.roflcopter.fr IN A 88.190.227.29\nbackup-mail.roflcopter.fr IN A&amp;nbsp;67.215.65.132\n\nroflcopter.fr IN MX mail.roflcopter.fr 10\nroflcopter.fr IN MX backup-mail.roflcopter.fr 20<\/pre>\n<p>Vous noterez que le MX de backup a un poids plus important que le primaire. Cela indique aux serveur mails d&rsquo;utiliser le primaire en priorit\u00e9 puis le backup si jamais le primaire ne r\u00e9pond pas.<\/p>\n<p>Petite remarque, les margoulins qui essaient de vous envoyer du spam vont essayer par tous les orifices connus (surtout si votre serveur de mail applique du GreyListing). Il ne faut donc pas \u00ab\u00a0whitelister\u00a0\u00bb automatiquement les mails provenant de votre\/vos MX de backup mais les traiter comme n&rsquo;importe quel mail.<\/p>\n<h2>Backup des donn\u00e9es<\/h2>\n<p>L\u00e0 c&rsquo;est pas compliqu\u00e9, IredMail fourni plusieurs script d&rsquo;export de la base LDAP et de la base MySQL qui sont lanc\u00e9s normalement en crontab :<\/p>\n<pre class=\"lang:default decode:true\"># iRedMail: Backup OpenLDAP data on 03:00 AM\n0 3 * * * root \/bin\/bash \/var\/vmail\/backup\/backup_openldap.sh\n# iRedMail: Backup MySQL databases on 03:30 AM\n30 3 * * * root \/bin\/bash \/var\/vmail\/backup\/backup_mysql.sh<\/pre>\n<p>Tout est export\u00e9 dans les r\u00e9pertoires\u00a0\/var\/vmail\/backup\/ldap et\u00a0\/var\/vmail\/backup\/mysql. Sachant que vos boites mails sont contenues dans\u00a0\/var\/vmail\/vmail1 c&rsquo;est une bonne id\u00e9e de sauvegarder le contenu du r\u00e9pertoire \/var\/vmail tr\u00e8s r\u00e9guli\u00e8rement.<br \/>\nPlusieurs choix s&rsquo;offrent \u00e0 vous tels qu&rsquo;un banal scp sur un autre serveur ou \u00e0 la maison, ou m\u00eame d\u00e9ployer un vrai service de backup tel que bacula.<\/p>\n<p>Une autre id\u00e9e est d&rsquo;utiliser un client mail lourd \u00e0 la maison tel que Thunderbird. Au moins tous vos mails seront rapatri\u00e9s et stock\u00e9s chez vous.<\/p>\n<h1>Aller plus loin<\/h1>\n<h2>Converse.js<\/h2>\n<p>Merci \u00e0 xorriso qui via <a href=\"https:\/\/wtf.roflcopter.fr\/blog\/2014\/02\/18\/a-sous-lbus-google-partie-3\/#comment-21\">son commentaire<\/a> m&rsquo;a fait d\u00e9couvrir <a href=\"https:\/\/conversejs.org\/\">Converse.js<\/a>. C&rsquo;est un simple applet de chat compatible XMPP super bien foutu et tr\u00e8s ergonomique.<br \/>\nEt il y a m\u00eame un plugin roundcube :\u00a0<a href=\"https:\/\/github.com\/priyadi\/roundcube-converse.js-xmpp-plugin\">https:\/\/github.com\/priyadi\/roundcube-converse.js-xmpp-plugin<\/a>.<\/p>\n<p>Voici la configuration, via le fichier <em>config.inc.php<\/em>,\u00a0que j&rsquo;ai adopt\u00e9e afin d&rsquo;avoir ma session XMPP en auto-login sur le roundcube :<\/p>\n<pre class=\"lang:php decode:true\">\/\/ Hostname portion of XMPP username (bare JID), example: \"example.net\"\n$rcmail_config['converse_xmpp_hostname']= function($args) {\nreturn preg_replace('\/^.*@\/', '', $args['user']);\n};\n\n\/\/ Username portion of XMPP username (bare JID), example: \"user\"\n\/\/ if this contains @, this will only take the part before @,\n\/\/ and the part after @ will replace the hostname definition above.\n$rcmail_config['converse_xmpp_username']= function($args) {\nreturn preg_replace('\/@.*$\/', '', $args['user']);\n};\n\n\/\/ XMPP password\n$rcmail_config['converse_xmpp_password']= function($args) {\nreturn $args['pass'];\n};<\/pre>\n<h2>Rainloop<\/h2>\n<p>J&rsquo;en ai parl\u00e9 quelques fois sur <a href=\"https:\/\/wtf.roflcopter.fr\/links\/pogo\/?searchtags=rainloop\">mon shaarli<\/a>&#8230;<br \/>\n<a href=\"http:\/\/rainloop.net\/\">Rainloop <\/a>est un webmail en cours de d\u00e9veloppement tr\u00e8s intuitif et bien foutu. Il lui manque encore quelques fonctionnalit\u00e9s (tel que la gestion des filtres Sieve, ou un bon calendrier compatible CalDav) mais c&rsquo;est un projet \u00e0 suivre de tr\u00e8s tr\u00e8s pr\u00e8s.<br \/>\nJe ne serais pas surpris de l&rsquo;utiliser d&rsquo;ici quelques mois \u00e0 la place de Roundcube&#8230;<\/p>\n<h1><span style=\"font-family: Bitter, Georgia, serif; font-size: 48px; line-height: 1.3;\">En conclusion<\/span><\/h1>\n<p>Voil\u00e0, j&rsquo;esp\u00e8re que ce tutoriel en cinq parties vous aura permis de vous convaincre de la possibilit\u00e9 de se passer plus ou moins facilement de Google tout en gardant un niveau de service acceptable.<br \/>\nIl y a pas mal de travail \u00e0 faire pour mettre en place une telle architecture et ce n&rsquo;est malheureusement pas \u00e0 la port\u00e9e du premier venu. Apr\u00e8s rien n&#8217;emp\u00eache de mettre en place ce service pour vous et de le proposer ensuite \u00e0 votre entourage (famille, amis).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suite et dernier post concernant cette migration de Google vers notre solution perso. Une fois toute l&rsquo;infrastructure en place, il va nous manquer quelque chose : l&rsquo;importation de vos donn\u00e9es personnelles ; oui, celles que vous voulez prot\u00e9ger ;) Migration Les contacts C&rsquo;est la partie la plus simple, il suffit d&rsquo;exporter votre liste de contacts &hellip; <a href=\"https:\/\/wtf.roflcopter.fr\/blog\/2014\/04\/07\/a-sous-lbus-google-partie-5\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">A+ sous l\u2019bus Google \u2013 Partie 5<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"","activitypub_status":"","footnotes":""},"categories":[15],"tags":[18,16,19,17,38,37],"class_list":["post-268","post","type-post","status-publish","format-standard","hentry","category-geekerie","tag-auto-hebergement","tag-google","tag-iredmail","tag-mail","tag-on","tag-v"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/posts\/268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/comments?post=268"}],"version-history":[{"count":14,"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/posts\/268\/revisions"}],"predecessor-version":[{"id":358,"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/posts\/268\/revisions\/358"}],"wp:attachment":[{"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/media?parent=268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/categories?post=268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wtf.roflcopter.fr\/blog\/wp-json\/wp\/v2\/tags?post=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}