From c47ac3c2e9ca6f61eed3dda1bb9d608cf7a28370 Mon Sep 17 00:00:00 2001 From: ghislainl Date: Sat, 20 Dec 2025 11:50:28 +0100 Subject: [PATCH] new build system - continuous article --- .gitea/workflows/build-deploy.yml | 13 ++++-- content/fr/blog/komodo-renovate-gitea.md | 58 +++++++++++++++--------- 2 files changed, 45 insertions(+), 26 deletions(-) diff --git a/.gitea/workflows/build-deploy.yml b/.gitea/workflows/build-deploy.yml index e53d2f1..1975092 100644 --- a/.gitea/workflows/build-deploy.yml +++ b/.gitea/workflows/build-deploy.yml @@ -33,8 +33,13 @@ jobs: - name: Build site run: hugo --minify - - name: Upload artifacts - uses: actions/upload-artifact@v3 + - name: Deploy to Infomaniak FTP + uses: SamKirkland/FTP-Deploy-Action@v4.3.5 with: - name: blog-public - path: public/ \ No newline at end of file + server: ${{ secrets.FTP_SERVER }} + username: ${{ secrets.FTP_USERNAME }} + password: ${{ secrets.FTP_PASSWORD }} + local-dir: ./public/ + server-dir: ./ + state-name: .ftp-deploy-sync-state.json + dangerous-clean-slate: false \ No newline at end of file diff --git a/content/fr/blog/komodo-renovate-gitea.md b/content/fr/blog/komodo-renovate-gitea.md index 8d7a55d..83ae1d6 100644 --- a/content/fr/blog/komodo-renovate-gitea.md +++ b/content/fr/blog/komodo-renovate-gitea.md @@ -14,7 +14,7 @@ ShowToc: true TocOpen: true --- -*Note: cet article s'appuie grandement sur cet autre article: https://nickcunningh.am/blog/how-to-automate-version-updates-for-your-self-hosted-docker-containers-with-gitea-renovate-and-komodo#setting-up-renovate* +*Note: cet article s'appuie grandement sur cet autre article: * On ne va pas se mentir, s'autohéberger, c'est se flageller. Sans rire, on saute de galère en galère. N'est pas Google qui veut. Le but est de se faire le moins emmerder possible. Il faut tout mettre en place pour automatiser au maxiumum possible. @@ -23,9 +23,11 @@ C'est ce que nous allons voir aujourd'hui avec cet article qui mettra en lumièr ## 1. Les présentations ### Gitea -Gitea, c'est un Github (ou Gitlab) pour l'autohébergement. -Alors je sais qu'il y a une contreverse liée à ce logiciel, eu égard du fait qu'il a changé de licence récemment. + +Gitea, c'est un Github (ou Gitlab) pour l'autohébergement. +Alors je sais qu'il y a une contreverse liée à ce logiciel, eu égard du fait qu'il a changé de licence récemment. Mais personnellement : + - ça juste marche - ça juste marche - ça juste marche @@ -33,40 +35,47 @@ Mais personnellement : 3 bonnes raisons de ne pas changer pour Forjero, je n'en vois pas l'utilité. ### Komodo -C'est mon logiciel coup de coeur de 2025. C'est comme un Portainer ou un Dokge, sauf que c'est Komodo. -Et un komodo, mieux vaut ne pas se fâcher avec lui. -C'est un orchestrateur de containers Docker qui a l'excellente idée de se brancher à du Git. -Oui, toi qui me regarde, on va faire du GitOps. +C'est mon logiciel coup de coeur de 2025. C'est comme un Portainer ou un Dokge, sauf que c'est Komodo. + +Et un komodo, mieux vaut ne pas se fâcher avec lui. + +C'est un orchestrateur de containers Docker qui a l'excellente idée de se brancher à du Git. + +Oui, toi qui me regarde, on va faire du GitOps. ### Renovate -C'est un bot qui va nous permettre d'aller vérifier de nouvelles images pour nos containers Docker. +C'est un bot qui va nous permettre d'aller vérifier de nouvelles images pour nos containers Docker. ## 2. La structure globale Pour que le tout soit fonctionnel voici le cheminement à adopter : - - un fournisseur Git : ici, ça sera Gitea - - une plateforme CI/CD (comme les plus grands) : toujours le même , Gitea, partie *Actions* - - un analyseur de fichiers compose : Renovate - - un instancieur de containers Docker : Komodo + +- un fournisseur Git : ici, ça sera Gitea +- une plateforme CI/CD (comme les plus grands) : toujours le même , Gitea, partie *Actions* +- un analyseur de fichiers compose : Renovate +- un instancieur de containers Docker : Komodo + Bien, vous commencez à saisir ? Non ? Et bien attendez la suite. ## 3. Les prérequis -Mon installation est simple : - - une VM - - un fournisseur de messagerie pour les notifs Gitea +Mon installation est simple : + +- une VM +- un fournisseur de messagerie pour les notifs Gitea ## 4. Gitea On va commencer par le gros gâteau, Gitea. -Je pars du principe que les fichiers docker compose, c'est OK pour vous. + +Je pars du principe que les fichiers docker compose, c'est OK pour vous. ```yaml services: server: - image: gitea/gitea:1.25@sha256:534428e78fc00d3ac8647f3467a3f91252acf23a46ea0c872f03191e3c878f7d + image: gitea/gitea:1.25 container_name: gitea-server restart: always environment: @@ -91,14 +100,14 @@ services: - gitea_internal labels: - "traefik.enable=true" - - "traefik.http.routers.gitea.rule=Host(`git.glarose.fr`)" + - "traefik.http.routers.gitea.rule=Host(`xx.domain.local`)" - "traefik.http.routers.gitea.entrypoints=https" - "traefik.http.services.gitea.loadbalancer.server.port=3000" - "traefik.http.routers.gitea.service=gitea" - "traefik.http.routers.gitea.tls.certresolver=letsencrypt" db: - image: postgres:17.4@sha256:304ab813518754228f9f792f79d6da36359b82d8ecf418096c636725f8c930ad + image: postgres:17.4 container_name: gitea-db restart: always environment: @@ -112,7 +121,7 @@ services: - gitea_internal runner: - image: gitea/act_runner:0.2.11@sha256:c57233403eff970945cfb8b13f0e622d2124f4dbc623af3e2c74f061d05e8f60 + image: gitea/act_runner:0.2.11 container_name: gitea-runner restart: always depends_on: @@ -139,6 +148,11 @@ networks: internal: true ``` -Ca en jette non ? Ca n'a rien de compliqué, ça se lit comme un bon vieux Marc Lévy, sauf que ça fait plus de choses qu'une lecture de Marc Lévy (spoiler: ça reste dans la tête) -Alors oui, il se trouve QUE j'ai une configuration avec Traefik. Si vous n'avez pas de reverse proxy sous la main, honnêtement, ne vous embêtez pas. Ca peut rester chez vous sans sortir sur Internet. +Ca en jette non ? Ca n'a rien de compliqué, ça se lit comme un bon vieux Marc Lévy, sauf que ça fait plus de choses qu'une lecture de Marc Lévy (spoiler: ça reste dans la tête). + +Alors oui, il se trouve que j'ai une configuration avec Traefik. + +Si vous n'avez pas de reverse proxy sous la main, honnêtement, ne vous embêtez pas. Ca peut rester chez vous sans sortir sur Internet. + +**NOTE :** On y reviendra plus tardn, mais prenez l'habitude de ne pas utiliser *latest* comme tag des images.