Pourquoi ?
Pour un blog basique et lambda, Ghost c’est bien, mais c’est lourd.
Hugo, c’est mieux mais demande un peu plus d’implication, car il s’agit d’un générateur de sites statiques. Ici avec un thème PaperMod.
Il faudra aussi un serveur web, en l’occurence Caddy.
Bonus personnel, vu que le reste de mon infra HTTPS tourne derrière un Traefik, autant l’utiliser.
Pour finir, une touche de CI/CD avec Gitea actions qui génère la version statique du site via un agent act_runner. Sur chaque commit, il récupère le dernier commit Git, génère les assets et les fichiers HTML, puis les pousse sur Caddy via SSH.
Tada.
Etapes de recherche
- https://www.vbrandl.net/post/2018-07-20_deploying-hugo-with-gitea-and-droneci/
 - https://julius-roettgermann.de/post/hugo-cicd/
 - https://github.com/peaceiris/actions-hugo
 
Résultat
name: Build and publish on push
on:
  push:
    branches:
      - main
jobs:
  deploy:
    runs-on: ubuntu-22.04
    concurrency:
      group: ${{ gitea.workflow }}-${{ gitea.ref }}
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true
          fetch-depth: 0
      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: "latest"
          # extended: true
      - name: Build
        env:
          TZ: "Europe/Paris"
        run: hugo --minify --environment production
      - name: Deploy
        uses: https://github.com/appleboy/scp-action@master
        with:
          host: ${{ secrets.SSH_HOST }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_KEY }}
          source: "public/*"
Ensuite
hugo new content posts/2023/2023-01-01-post-title.md
git commit -am "New article"
git push
/clap