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