complete article
All checks were successful
Build and Deploy Hugo Blog / build (push) Successful in 25s

This commit is contained in:
2025-12-19 22:56:20 +01:00
parent 897b74d5a4
commit 29bd2ad669
2 changed files with 131 additions and 1 deletions

View File

@@ -42,6 +42,7 @@ ShowBreadCrumbs = true
ShowReadingTime = true ShowReadingTime = true
ShowShareButtons = true ShowShareButtons = true
ShowToc = true ShowToc = true
TocOpen = true
comments = false comments = false
[params.homeInfoParams] [params.homeInfoParams]

View File

@@ -10,6 +10,135 @@ cover:
image: "/img/4WOH5S6.png" image: "/img/4WOH5S6.png"
alt: "Image de couverture" alt: "Image de couverture"
caption: "Logo Gitea" caption: "Logo Gitea"
ShowToc: true
TocOpen: true
--- ---
Bienvenue *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*
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.
C'est ce que nous allons voir aujourd'hui avec cet article qui mettra en lumière Gitea, Komodo et Renovate.
## 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.
Mais personnellement :
- ça juste marche
- ça juste marche
- ça juste marche
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.
### Renovate
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
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
## 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.
```yaml
services:
server:
image: gitea/gitea:1.25@sha256:534428e78fc00d3ac8647f3467a3f91252acf23a46ea0c872f03191e3c878f7d
container_name: gitea-server
restart: always
environment:
- TZ=Europe/Paris
- GITEA__database__DB_TYPE=${GITEA__database__DB_TYPE}
- GITEA__database__HOST=${GITEA__database__HOST}
- GITEA__database__NAME=${GITEA__database__NAME}
- GITEA__database__USER=${GITEA__database__USER}
- GITEA__database__PASSWD=${GITEA_DB_PASSWORD}
- ROOT_URL=${ROOT_URL}
volumes:
- /srv/docker/gitea/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 3000:3000
- 222:22
depends_on:
- db
networks:
- traefik
- gitea_internal
labels:
- "traefik.enable=true"
- "traefik.http.routers.gitea.rule=Host(`git.glarose.fr`)"
- "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
container_name: gitea-db
restart: always
environment:
- TZ=Europe/Paris
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${GITEA_DB_PASSWORD}
volumes:
- /srv/docker/gitea/database:/var/lib/postgresql/data
networks:
- gitea_internal
runner:
image: gitea/act_runner:0.2.11@sha256:c57233403eff970945cfb8b13f0e622d2124f4dbc623af3e2c74f061d05e8f60
container_name: gitea-runner
restart: always
depends_on:
- server
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /srv/docker/gitea/runner/config.yaml:/config.yaml
- /srv/docker/gitea/runner/data:/data
environment:
- TZ=Europe/Paris
- CONFIG_FILE=/config.yaml
- GITEA_INSTANCE_URL=https://git.glarose.fr
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_TOKEN}
- GITEA_RUNNER_NAME=runnerGhislain
networks:
- gitea_internal
- traefik
networks:
traefik:
external: true
gitea_internal:
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.