Publier sans CMS : mon workflow code-first (SSH, rsync & CI/CD)

Comment je publie ce blog sans interface d’admin : du code, un commit, du SSH et du rsync.

Ce blog ne se “publie” pas, il se déploie

Je n’utilise pas de CMS classique.

Pas de panel d’administration.
Pas de bouton “Publier”.
Pas de base de données.

Pour écrire un article, je fais simplement :

  1. J’ouvre mon éditeur de code
  2. J’écris un fichier Markdown
  3. Je commit
  4. Je push

Le reste est automatisé.


Le workflow en pratique

Créer un article ressemble à ça :

src/content/blog/fr/mon-article.md

Contenu :

---
title: "Titre de l’article"
date: "2025-12-05"
description: "Résumé court"
---

Quelques lignes, pas de friction.

Je ne quitte jamais mon éditeur.


CI/CD minimaliste : SSH + rsync

Le déploiement ne repose pas sur une plateforme magique.

Il repose sur deux outils simples et robustes :

  • SSH pour l’accès serveur
  • rsync pour la synchronisation

Mon pipeline CI/CD :

  1. Build Astro
  2. Génération du site statique
  3. Connexion SSH vers le serveur
  4. rsync vers le dossier de production

Exemple de logique utilisée :

rsync -az --delete dist/ user@server:/var/www/portfolio

Résultat :

  • Pas de containers pour ce site
  • Pas d’orchestrateur inutile
  • Déploiement rapide, lisible, traçable

Pourquoi ce choix

J’utilise SSH + rsync volontairement :

  • Pas de dépendance cloud
  • Pas de vendor lock-in
  • Contrôle total du process
  • Debug simple

C’est la même philosophie que j’applique sur de l’infra plus complexe : simplicité, traçabilité, reproductibilité.


Le vrai CMS, c’est Git

Versionner le contenu est plus puissant qu’un back-office.

Chaque article est :

  • versionné
  • diffable
  • réversible
  • reviewable

Un git log vaut mieux qu’un historique CMS mal conçu.


Publier sans quitter son éditeur

Le vrai confort, c’est ça :

Je code. J’écris. Je commit. Je push.

Le reste — build et mise en ligne — est entièrement automatisé.


Conclusion

Ce blog est une démonstration de mon approche :

  • Le contenu est du code
  • L’infra est maîtrisée
  • Le déploiement est simple
  • Pas d’interface inutile

Un éditeur. Un terminal. Un serveur.

C’est tout ce dont j’ai besoin.