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

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