From d2b5daeac6e6ff1845c24c46bd205a2d92fb7b91 Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 22 Oct 2026 14:37:26 +0200 Subject: [PATCH] Site public sur www.gsoftware.ch, gsoftware.ch y renvoie Le projet d'essai devient frontpage : page d'accueil provisoire servie sur www.gsoftware.ch, redirection permanente depuis gsoftware.ch, pile webapp-frontpage. --- .woodpecker.yml | 14 ++++++------- README.md | 22 ++++++++++++------- deploy/compose.yaml | 51 +++++++++++++++++++++++++++++++-------------- index.html | 21 +++++++++++-------- 4 files changed, 68 insertions(+), 40 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index c1852a3..32ffc9d 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,6 +1,6 @@ -# Construit l'image et déploie la page sur la machine elle-même. -# Le dépôt doit être « de confiance » (volumes) dans Woodpecker : le -# pas monte le socket Docker et le dossier de la pile. +# Construit l'image du site et la déploie sur la machine elle-même. +# Le dépôt doit être « de confiance » (volumes) dans Woodpecker : le pas +# monte le socket Docker et le dossier de la pile. Aucun secret requis. when: - event: [push, manual] branch: main @@ -10,8 +10,8 @@ steps: image: docker:29-cli volumes: - /var/run/docker.sock:/var/run/docker.sock - - /docker/stacks/webapp-essai:/docker/stacks/webapp-essai + - /docker/stacks/webapp-frontpage:/docker/stacks/webapp-frontpage commands: - - docker build --build-arg COMMIT=${CI_COMMIT_SHA:0:8} --build-arg DATE="$(date '+%d.%m.%Y %H:%M')" -t essai:${CI_COMMIT_SHA:0:8} -t essai:latest . - - cp deploy/compose.yaml /docker/stacks/webapp-essai/compose.yaml - - docker compose -f /docker/stacks/webapp-essai/compose.yaml -p webapp-essai up -d --force-recreate + - docker build --build-arg COMMIT=${CI_COMMIT_SHA:0:8} --build-arg DATE="$(date -u '+%d.%m.%Y %H:%M UTC')" -t frontpage:${CI_COMMIT_SHA:0:8} -t frontpage:latest . + - cp deploy/compose.yaml /docker/stacks/webapp-frontpage/compose.yaml + - docker compose -f /docker/stacks/webapp-frontpage/compose.yaml -p webapp-frontpage up -d --force-recreate diff --git a/README.md b/README.md index cecf139..04f69b9 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,21 @@ -# essai +# frontpage -Projet de validation de la chaîne de `gsoftware` : un dépôt sur sa Gitea, un pipeline sur son Woodpecker, une page servie par son Traefik sur [essai.gsoftware.ch](https://essai.gsoftware.ch/). +Le site public de `gsoftware.ch`, servi sur [www.gsoftware.ch](https://www.gsoftware.ch/). L'adresse sans `www` y renvoie par une redirection permanente. -À chaque poussée sur `main`, le pipeline (`.woodpecker.yml`) : +Aujourd'hui, une page d'accueil provisoire : elle valide la chaîne de déploiement de la machine `gsoftware`, et attend le vrai contenu du site. -1. construit l'image `essai` à partir du `Dockerfile`, en y inscrivant le commit ; -2. dépose `deploy/compose.yaml` dans `/docker/stacks/webapp-essai/` sur la machine ; +## Déploiement + +À chaque poussée sur `main`, Woodpecker (`.woodpecker.yml`) : + +1. construit l'image `frontpage` à partir du `Dockerfile`, en y inscrivant le commit et l'heure ; +2. dépose `deploy/compose.yaml` dans `/docker/stacks/webapp-frontpage/` sur la machine ; 3. relance la pile. -La page affiche le commit déployé : si elle change après une poussée, toute la chaîne fonctionne. +Le pied de page indique le commit déployé : s'il change après une poussée, toute la chaîne fonctionne. -Le pipeline monte le socket Docker de la machine : le dépôt doit être marqué « de confiance » (volumes) dans Woodpecker. +Le pipeline monte le socket Docker de la machine : le dépôt est marqué « de confiance » (volumes) dans Woodpecker. Aucun secret n'est nécessaire. -Créé le 22.10.2026, à la construction de `gsoftware`. Il peut servir de modèle pour un premier projet, ou être supprimé. +## Modifier le site + +Remplacer le contenu de `index.html` (ou ajouter des fichiers, et les copier dans le `Dockerfile`), pousser sur `main`. diff --git a/deploy/compose.yaml b/deploy/compose.yaml index a8493c7..68834ac 100644 --- a/deploy/compose.yaml +++ b/deploy/compose.yaml @@ -1,27 +1,46 @@ -# Pile de la page d'essai, déposée par le pipeline dans -# /docker/stacks/webapp-essai/ puis relancée. +# Pile du site public, déposée par le pipeline dans +# /docker/stacks/webapp-frontpage/ puis relancée. +# +# www.gsoftware.ch sert le site ; gsoftware.ch y renvoie (301). +# Dans les labels, « $$ » est un « $ » échappé pour Compose. services: - webapp-essai: - image: essai:latest + webapp-frontpage: + image: frontpage:latest pull_policy: never restart: unless-stopped expose: - "80" labels: - traefik.enable=true - - traefik.http.routers.webapp-essai-http.rule=Host(`essai.gsoftware.ch`) - - traefik.http.routers.webapp-essai-http.entrypoints=web - - traefik.http.routers.webapp-essai-http.middlewares=redirect-to-https@file - - traefik.http.routers.webapp-essai-https.rule=Host(`essai.gsoftware.ch`) - - traefik.http.routers.webapp-essai-https.entrypoints=websecure - - traefik.http.routers.webapp-essai-https.middlewares=security-headers@file - - traefik.http.routers.webapp-essai-https.tls.certresolver=le-http - - traefik.http.services.webapp-essai.loadbalancer.server.port=80 + # www.gsoftware.ch : le site + - traefik.http.routers.webapp-frontpage-http.rule=Host(`www.gsoftware.ch`) + - traefik.http.routers.webapp-frontpage-http.entrypoints=web + - traefik.http.routers.webapp-frontpage-http.middlewares=redirect-to-https@file + - traefik.http.routers.webapp-frontpage-https.rule=Host(`www.gsoftware.ch`) + - traefik.http.routers.webapp-frontpage-https.entrypoints=websecure + - traefik.http.routers.webapp-frontpage-https.middlewares=security-headers@file + - traefik.http.routers.webapp-frontpage-https.tls.certresolver=le-http + - traefik.http.routers.webapp-frontpage-https.service=webapp-frontpage + - traefik.http.services.webapp-frontpage.loadbalancer.server.port=80 + # gsoftware.ch : redirection permanente vers www, en http comme en https + - traefik.http.middlewares.frontpage-vers-www.redirectregex.regex=^https?://gsoftware\.ch/(.*) + - traefik.http.middlewares.frontpage-vers-www.redirectregex.replacement=https://www.gsoftware.ch/$${1} + - traefik.http.middlewares.frontpage-vers-www.redirectregex.permanent=true + - traefik.http.routers.webapp-frontpage-nu-http.rule=Host(`gsoftware.ch`) + - traefik.http.routers.webapp-frontpage-nu-http.entrypoints=web + - traefik.http.routers.webapp-frontpage-nu-http.middlewares=frontpage-vers-www + - traefik.http.routers.webapp-frontpage-nu-http.service=webapp-frontpage + - traefik.http.routers.webapp-frontpage-nu-https.rule=Host(`gsoftware.ch`) + - traefik.http.routers.webapp-frontpage-nu-https.entrypoints=websecure + - traefik.http.routers.webapp-frontpage-nu-https.middlewares=frontpage-vers-www + - traefik.http.routers.webapp-frontpage-nu-https.tls.certresolver=le-http + - traefik.http.routers.webapp-frontpage-nu-https.service=webapp-frontpage + # Homepage - homepage.group=Projets - - homepage.name=Essai - - homepage.icon=mdi-check-circle-outline - - homepage.href=https://essai.gsoftware.ch/ - - homepage.description=Page de validation de la chaîne CI/CD + - homepage.name=Site public + - homepage.icon=mdi-web + - homepage.href=https://www.gsoftware.ch/ + - homepage.description=gsoftware.ch · frontpage networks: - frontend networks: diff --git a/index.html b/index.html index c0f39fa..2df6a5f 100644 --- a/index.html +++ b/index.html @@ -3,18 +3,21 @@ - gsoftware — essai + gsoftware -

gsoftware

-

La chaîne fonctionne.

-

Cette page a été construite par Woodpecker à partir du dépôt admin/essai de la Gitea de gsoftware, puis déployée sur la machine et servie par son Traefik.

-

Commit déployé : __COMMIT__
Construite le : __DATE__

+
+

gsoftware

+

Site en construction.

+
+