{"id":140,"date":"2025-04-17T00:47:15","date_gmt":"2025-04-16T22:47:15","guid":{"rendered":"https:\/\/blog.nanuq.me\/?p=140"},"modified":"2025-04-17T00:47:15","modified_gmt":"2025-04-16T22:47:15","slug":"alors-ce-blog-ca-vient","status":"publish","type":"post","link":"https:\/\/blog.nanuq.me\/?p=140","title":{"rendered":"Alors ce blog, \u00e7a vient ?"},"content":{"rendered":"<p>Jamais deux sans trois : on change (encore) de CMS !<\/p>\n<p><!--more--><br>\nCet article est en compl\u00e9ment de <a href=\"https:\/\/blog.nanuq.me\/?p=11\" target=\"_blank\" rel=\"noopener\">celui-ci<\/a>.<\/p>\n<h1 id=\"encore-et-toujours-changer-de-cms\">Encore et toujours changer de CMS<\/h1>\n<p>Mon ancienne version du blog \u00e9tait h\u00e9berg\u00e9e directement sur <em>wordpress.com<\/em> et utilisait par cons\u00e9quent le <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Syst%C3%A8me_de_gestion_de_contenu\">CMS<\/a> <em>WordPress<\/em>.<br>\nC&rsquo;est un CMS que j&rsquo;aime beaucoup malgr\u00e9 plusieurs points n\u00e9gatifs (\u00e0 mon humble avis) :<\/p>\n<ul>\n<li>C&rsquo;est une usine \u00e0 gaz (c&rsquo;est lourd ! M\u00eame si \u00e7a permet tout un tas de choses, je n&rsquo;ai pas besoin d&rsquo;autant d&rsquo;options !)<\/li>\n<li>Trop de plugins (on se retrouve \u00e0 installer tout un tas de surcouches plus ou moins s\u00e9curis\u00e9es pour configurer son blog)<\/li>\n<li>L&rsquo;\u00e9diteur de texte \u00ab\u00a0Gutenberg\u00a0\u00bb&#8230; c&rsquo;est simple : je le d\u00e9teste.<\/li>\n<\/ul>\n<p>Or, ayant remis en place de l&rsquo;auto-h\u00e9bergement, je me suis remis en t\u00eate d&rsquo;auto-h\u00e9berger mon blog. Et je ne voulais pas utiliser <em>WordPress<\/em> pour les raisons \u00e9voqu\u00e9es ci-dessus : j&rsquo;ai donc test\u00e9 tout un tas de CMS dont les deux plus populaires <a href=\"https:\/\/getgrav.org\/\"><strong><em>Grav<\/em><\/strong><\/a> et <a href=\"https:\/\/ghost.org\/\"><strong><em>Ghost<\/em><\/strong><\/a>. Conclusion ? <strong>Je n&rsquo;aime ni l&rsquo;un ni l&rsquo;autre.<\/strong> <strong>Ghost<\/strong>, je l&rsquo;ai install\u00e9 pour tester et je n&rsquo;ai pas aim\u00e9 l&rsquo;interface, la personnalisation, etc. Et j&rsquo;ai trouv\u00e9 \u00e7a un peu lourd. Et <strong>Grav<\/strong> est super l\u00e9ger car il n&rsquo;utilise pas de base de donn\u00e9es ; tous les contenus sont g\u00e9r\u00e9s par les fichiers avec du Markdown et ce sont juste des liens entre les diff\u00e9rents fichiers qui forment la structure du blog. Mais \u00e0 l&rsquo;utilisation, ce n&rsquo;est vraiment pas ce que j&rsquo;aime. Que ce soit l&rsquo;interface d&rsquo;administration ou les r\u00e9glages pour obtenir un rendu agr\u00e9able visuellement ; il n&rsquo;y a pas beaucoup de plugins pour personnaliser l&rsquo;exp\u00e9rience et je n&rsquo;ai pas envie de trop plonger les doigts dans le cambouis (j&rsquo;ai tout un tas d&rsquo;autres projets o\u00f9 je dois faire \u00e7a ; et pour mon blog : je veux que \u00e7a marche sans devoir tripatouiller).<\/p>\n<h1 id=\"classicpress\">ClassicPress<\/h1>\n<p>Finalement, je reviens \u00e0 mes premi\u00e8res amours : <a href=\"https:\/\/www.classicpress.net\/\"><strong>ClassicPress<\/strong><\/a>, qui est pour moi un bon compromis. Il s&rsquo;agit en effet d&rsquo;un fork de WordPress qui garde l&rsquo;ancienne interface de WordPress (avant l&rsquo;ajout de Gutenberg). Vu que \u00e7a se base sur WordPress : on profite (en partie) de la compatibilit\u00e9 des th\u00e8mes et des plugins WordPress ; on profite du fait que la communaut\u00e9 WordPress est gigantesque et on trouvera toujours des informations rapidement ; et je garde mes bonnes vieilles habitudes.<br>\nD&rsquo;autres atouts mis en avant par ClassicPress :<\/p>\n<ul>\n<li>La l\u00e9g\u00e8ret\u00e9<\/li>\n<li>La stabilit\u00e9<\/li>\n<li>La gestion communautaire (et non pas g\u00e9r\u00e9e par une entreprise)<\/li>\n<\/ul>\n<p><em>Qu&rsquo;est-ce qu&rsquo;on attend pour installer \u00e7a ?<\/em><\/p>\n<h1 id=\"installation\">Installation<\/h1>\n<p>Sur mon serveur, j&rsquo;ai choisi d&rsquo;utiliser <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Docker_(logiciel)\">Docker<\/a> et d&rsquo;installer mes services dans des conteneurs, et de relier chacun de ces services \u00e0 une URL avec <a href=\"https:\/\/nginxproxymanager.com\/\">Nginx Proxy Manager<\/a>.<br>\n<em>On y va ?<\/em><\/p>\n<h2 id=\"choix-du-docker\">Choix du Docker<\/h2>\n<p>Alors, je suis parti sur le conteneur Docker officiel de ClassicPress : <a title=\"https:\/\/hub.docker.com\/r\/classicpress\/classicpress\" href=\"https:\/\/hub.docker.com\/r\/classicpress\/classicpress\" data-from-md=\"\">https:\/\/hub.docker.com\/r\/classicpress\/classicpress<\/a><br>\nMais il existe aussi celui d&rsquo;un membre de la communaut\u00e9 <strong><em>Marverix<\/em><\/strong> :<br>\nApr\u00e8s un \u00e9change avec lui sur le forum de ClassicPress, il m&rsquo;a expliqu\u00e9 que :<\/p>\n<blockquote><p>\u00ab\u00a0J&rsquo;utilise une combinaison d&rsquo;Alpine, Nginx et php-fpm qui est super rapide et efficace, n&rsquo;utilisant que 40MB de RAM.\u00a0\u00bb<\/p><\/blockquote>\n<p>Il ne met \u00e0 jour que son conteneur de temps en temps et malgr\u00e9 un conteneur plus l\u00e9ger que l&rsquo;original ; j&rsquo;ai pr\u00e9f\u00e9r\u00e9 pour le moment utiliser le conteneur officiel pour mes premiers essais et on avisera par la suite si je passe au conteneur de Marverix pour gagner en l\u00e9g\u00e8ret\u00e9.<\/p>\n<h2 id=\"un-template-de-docker-compose\">Un template de docker-compose<\/h2>\n<p>La doc officielle concernant le Docker officiel ne mentionnant pas de docker-compose, j&rsquo;ai cr\u00e9\u00e9 un petit template pour ma configuration que voici :<br>\nJe cr\u00e9e au passage un conteneur avec <a href=\"https:\/\/en.wikipedia.org\/wiki\/MariaDB\">MariaDB<\/a> (mais on peut utiliser MySQL ou d&rsquo;autres&#8230;) pour g\u00e9rer la base de donn\u00e9es n\u00e9cessaire au bon fonctionnement de ClassicPress. Je dis \u00e0 tout ce petit monde d&rsquo;utiliser le r\u00e9seau de Nginx Proxy Manager, et je cr\u00e9e un volume pour pouvoir bidouiller les fichiers directement sans rentrer dans le conteneur \u00e0 chaque fois :<\/p>\n<pre>version: '3.8'\n\nservices:\n  db:\n    image: mariadb:10.5\n    restart: always\n  environment:\n    MYSQL_DATABASE: ${MYSQL_DATABASE}\n    MYSQL_USER: ${MYSQL_USER}\n    MYSQL_PASSWORD: ${MYSQL_PASSWORD}\n    MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}\n    volumes:\n      - classicpress_db:\/var\/lib\/mysql\n    networks:\n      - nginx_proxy_manager_default\n\n  classicpress:\n    image: classicpress\/classicpress\n    restart: always\n    ports:\n      - \"8501:80\"\n    environment:\n    WORDPRESS_DB_HOST: db:3306\n    WORDPRESS_DB_NAME: ${MYSQL_DATABASE}\n    WORDPRESS_DB_USER: ${MYSQL_USER}\n    WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}\n    depends_on:\n      - db\n    volumes:\n      - \/data\/classicpress\/data:\/var\/www\/html\n    networks:\n      - nginx_proxy_manager_default\n\nvolumes:\n  classicpress_db:\n\nnetworks:\n  nginx_proxy_manager_default:\n    external: true<\/pre>\n<p>\u00c9videmment, on met des mots de passe forts dans un <code>.env<\/code> pour les identifiants de connexion de MariaDB :<\/p>\n<pre>MYSQL_DATABASE=classicpress\nMYSQL_USER=utilisateur\nMYSQL_PASSWORD=monsupermotdepasse\nMYSQL_ROOT_PASSWORD=lemotdepasseroot<\/pre>\n<h2>Finaliser l&rsquo;installation<\/h2>\n<p>On n&rsquo;a plus qu&rsquo;\u00e0 se connecter sur l&rsquo;adresse locale de notre conteneur au port qu&rsquo;on a pr\u00e9alablement indiqu\u00e9 dans notre Docker Compose ; et on arrive sur un joli petit menu ! Et on n&rsquo;a plus qu&rsquo;\u00e0 suivre le parcours en remplissant les bonnes informations pour la DB&#8230;<\/p>\n<figure id=\"attachment_3309\" aria-describedby=\"caption-attachment-3309\" style=\"width: 537px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-3309\" src=\"https:\/\/blog.nanuq.me\/wp-content\/uploads\/2025\/04\/cpapp-1.png\" alt=\"\" width=\"537\" height=\"834\"><figcaption id=\"caption-attachment-3309\" class=\"wp-caption-text\">Premier lancement de ClassicPress<\/figcaption><\/figure>\n<p>Et si on a tout bien fait&#8230; \u00c7a marche juste !<\/p>\n<h2>Post-installation<\/h2>\n<p>Pour ma part, il ne me reste plus qu&rsquo;\u00e0 relier une URL \u00e0 mon blog via Nginx Proxy Manager et vous pourrez d\u00e9couvrir mon nouveau blog tout beau tout chaud sur : <a title=\"https:\/\/blog.nanuq.me\" href=\"https:\/\/blog.nanuq.me\" data-from-md=\"\">https:\/\/blog.nanuq.me<\/a><br>\nElle n&rsquo;est pas belle la vie ?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jamais deux sans trois : on change (encore) de CMS !<\/p>\n","protected":false},"author":1,"featured_media":3310,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[18,20,34,47,107],"_links":{"self":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/posts\/140"}],"collection":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=140"}],"version-history":[{"count":0,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/wp\/v2\/posts\/140\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nanuq.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}