diff --git a/MIGRATION.md b/MIGRATION.md
new file mode 100644
index 0000000..59e5707
--- /dev/null
+++ b/MIGRATION.md
@@ -0,0 +1,15 @@
+# Migration
+
+Cette archive est une refonte du contenu et du rendu Hugo.
+
+À conserver depuis le dépôt existant avant remplacement :
+- `.drone.yml`
+- `Dockerfile`
+- `docker-compose.yml`
+- `nginx-proxy/`
+- les secrets CI/CD (ne jamais les mettre dans Git)
+- les assets/images utiles dans `static/images/`
+
+Le nouveau `config.toml`, `content/`, `layouts/` et `assets/` sont prêts à remplacer les équivalents existants.
+
+Les anciens projets VR/jeu vidéo peuvent être conservés dans une branche ou déplacés vers une section d'archive si tu souhaites garder l'historique.
diff --git a/README.md b/README.md
index 2ce5877..bbf95c4 100644
--- a/README.md
+++ b/README.md
@@ -1,223 +1,61 @@
-# 
+# gregandev.fr — Portfolio DevOps / SRE
-[](https://drone.gregandev.fr/gregandev/hugo-site)
+Portfolio professionnel de Grégory Lebreton, construit avec Hugo.
-## INSTALLATION :hammer:
+## Positionnement
-- Via APT:
-```bash
-sudo apt install hugo
+Le site est volontairement orienté :
+
+- Infrastructure Linux
+- Automation / Infrastructure as Code
+- CI/CD
+- Docker / Kubernetes
+- Observability
+- Reliability / backup / PRA
+- Documentation et transmission
+
+## Architecture
+
+Le thème Silhouette a été remplacé par des layouts Hugo locaux afin de maîtriser complètement le rendu et d'éviter qu'un thème générique de portfolio ne domine le positionnement technique.
+
+```text
+content/
+├── experience/
+├── projects/
+├── lab/
+├── stack/
+├── notes/
+└── about/
+
+layouts/
+├── _default/
+├── partials/
+├── projects/
+├── experience/
+├── lab/
+└── notes/
+
+assets/
+├── css/
+└── js/
```
-- Via la ligne de commande:
-```bash
-cd /tmp
-curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \
- | grep browser_download_url \
- | grep linux-amd64.deb \
- | grep extended \
- | cut -d '"' -f 4 \
- | wget -i -
-
-sudo dpkg -i hugo*_linux-amd64.deb
-rm -rf hugo*_linux-amd64.deb
-```
-
-## UTILISATION
-
-### CREATION DU SITE :page_with_curl:
-
-- Vérifier l'installation:
-```bash
-hugo version
-```
-
-- Créer la structure du site:
-```bash
-hugo new site mon-site
-```
-
-- Créer du contenu:
-```bash
-cd mon-site
-hugo new posts/mon-post.md
-nano posts/mon-post.md
-```
-
-Ajouter des medias:
-- images:
-```bash
-## Image via link:
-
-
-------
-
-## Image via url locale (/static):
-
-```
-- videos:
-```bash
-## Vidéo Youtube:
-{{< youtube ZSWzPI4BqvA >}}
-```
-
-### AJOUT D'UN THEME :art:
+## Développement local
```bash
-git init
-git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
-echo theme = \"ananke\" >> config.toml
-```
-
-Les thèmes HUGO:
-- https://jamstackthemes.dev/ssg/hugo/
-- https://hugothemesfree.com/
-- https://master--hugothemes.netlify.app/
-
-### CONFIGURATION DU CONFIG.TOML :wrench:
-
-- Configuration de base
-```bash
-# Configuration de l'adresse, titre (onglet) et des chemins vers les contenus
-baseurl = "/"
-contentdir = "content"
-layoutdir = "layouts"
-publishdir = "public"
-title = "Mon super site!!!"
-canonifyurls = true
-
-# ACCUEIL
-[Params]
- subtitle = "Portfolio made in HUGO !"
- logo = "img/logo2.png"
- favicon = "img/favicon.ico"
- dateFormat = "January 2, 2006"
- commit = false
- rss = false
- comments = true
-```
-
-- Création d'un menu
-```bash
-[[menu.main]]
- name = "Post 1"
- url = "/post/post1"
- weight = 1
-
-[[menu.main]]
- name = "A propos"
- url = "/page/about"
- weight = 2
-
-[[menu.main]]
- name = "Projets"
- url = "/page/about"
- weight = 3
-```
-
-- Création d'un sous menu
-```bash
-[[menu.main]]
- parent = "Projets"
- name = "Projet 1"
- url = "/projets/projet1"
- weight = 1
-
-[[menu.main]]
- parent = "Projets"
- name = "Projet 2"
- url = "/projets/projet2"
- weight = 2
-```
-
-:warning: Créer les dossiers et les fichiers correspondant. Les urls ne prennent pas l'extension .md du fichier
-
-- Création des icônes reseaux sociaux
-```bash
-[Author]
- name = ""
- email = ""
- gitlab = ""
- github = ""
- twitter = ""
- reddit = ""
- linkedin = ""
-```
-
-### LANCER LE SERVEUR :rocket:
-
-```bash
-# L'option -D est pour servir les fichiers en Draft = true (non publiés)
hugo server -D
```
-> Visiter http://localhost:1313
-
-
-### BUILDER LE SITE :construction:
+Build de production :
```bash
-hugo
+hugo --minify
```
-> Les fichiers générés sont dans le dossier public
+## CI/CD
-## DEPLOIEMENT :checkered_flag:
+Le dépôt historique utilise Drone CI pour construire et déployer le site. Cette refonte conserve volontairement cette approche : le portfolio peut ainsi démontrer une chaîne Git → CI → build Hugo → déploiement.
-### VIA GITLAB AUTO DEVOPS
+## Important
-Compléter le config.toml comme ceci:
-```bash
-baseURL = "https://gitlab_user.gitlab.io/"
-```
-
-Compléter le fichier .gitlab-ci.yml comme ceci:
-```bash
-image: registry.gitlab.com/pages/hugo/hugo_extended:latest
-
-variables:
- GIT_SUBMODULE_STRATEGY: recursive
-
-pages:
- script:
- - hugo
- artifacts:
- paths:
- - public
- only:
- - main
-```
-
-### VIA DOCKER :whale:
-
-- Créer une Dockerfile contenant:
-
-```Dockerfile
-FROM nginx:alpine
-
-COPY ./public/* /usr/share/nginx/html
-COPY ./docs/nginx-exemple.conf /etc/nginx/conf.d/default.conf
-
-EXPOSE 80
-CMD ["nginx", "-g", "daemon off;"]
-```
-
-```bash
-docker build -t hugo-site:1.0 .
-docker run -d -p 8989:80 hugo-site:1.0
-```
-
-## DOCUMENTATION :books:
-
-[DOC DU GARAGE](https://docs.legaragenumerique.xyz/divers/devops/hugo/)
-[DOC OFFICIELLE](https://gohugo.io/documentation/)
-[DOC MARKDOWN](https://www.markdownguide.org/basic-syntax/)
-
-## CI/CD :repeat:
-
-- WEB2PDF.py
-- .drone.yml
-
-## TO DO :bookmark_tabs:
-
-- [ ] CI/CD schema
+Les projets et expériences sont à compléter avec les réalisations réelles, métriques et liens disponibles. Les sections de lab servent à distinguer les expérimentations personnelles des expériences professionnelles.
diff --git a/assets/css/main.css b/assets/css/main.css
new file mode 100644
index 0000000..08637c7
--- /dev/null
+++ b/assets/css/main.css
@@ -0,0 +1,87 @@
+@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');
+
+:root {
+ --bg: #0b0d0f;
+ --surface: #111417;
+ --surface-2: #171b1f;
+ --text: #e7ebe8;
+ --muted: #99a39e;
+ --line: #29302e;
+ --accent: #8fe388;
+ --accent-dark: #162319;
+ --max: 1120px;
+}
+* { box-sizing: border-box; }
+html { scroll-behavior: smooth; }
+body { margin:0; background:var(--bg); color:var(--text); font-family:Inter,system-ui,sans-serif; line-height:1.7; }
+a { color:var(--text); text-decoration:none; }
+a:hover { color:var(--accent); }
+.container { width:min(calc(100% - 40px), var(--max)); margin:auto; }
+.site-header { border-bottom:1px solid var(--line); position:sticky; top:0; background:rgba(11,13,15,.94); backdrop-filter:blur(12px); z-index:10; }
+.nav { min-height:70px; display:flex; align-items:center; gap:28px; }
+.brand { font:500 15px "IBM Plex Mono",monospace; white-space:nowrap; }
+.brand strong, .brand span { color:var(--accent); }
+.nav nav { display:flex; gap:20px; margin-left:auto; }
+.nav nav a, .nav-links a { font:400 12px "IBM Plex Mono",monospace; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
+.nav-links { display:flex; gap:12px; padding-left:12px; border-left:1px solid var(--line); }
+.hero { padding:110px 0 80px; max-width:900px; }
+.eyebrow, .status, .project-index { font:500 11px "IBM Plex Mono",monospace; color:var(--accent); text-transform:uppercase; letter-spacing:.12em; }
+.hero h1 { font-size:clamp(42px,8vw,82px); line-height:1; margin:12px 0; letter-spacing:-.055em; }
+.hero-role { font-size:clamp(25px,4vw,42px); margin:0; font-weight:600; }
+.hero-subtitle { font:500 14px "IBM Plex Mono",monospace; color:var(--accent); margin:12px 0 25px; }
+.hero-copy { max-width:760px; color:var(--muted); font-size:18px; }
+.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
+.button { display:inline-block; border:1px solid var(--line); padding:10px 15px; font:500 12px "IBM Plex Mono",monospace; text-transform:uppercase; }
+.button:hover { border-color:var(--accent); }
+.button-primary { background:var(--accent); color:#0b0d0f; border-color:var(--accent); }
+.button-primary:hover { color:#0b0d0f; }
+.prose { color:#c9cfcb; max-width:800px; }
+.prose h2 { margin-top:48px; color:var(--text); }
+.prose h3 { color:var(--text); margin-top:30px; }
+.prose code, pre { font-family:"IBM Plex Mono",monospace; }
+.prose code { background:var(--surface-2); padding:2px 5px; }
+.prose pre { background:#070809; border:1px solid var(--line); padding:20px; overflow:auto; }
+.prose blockquote { margin:30px 0; padding:15px 20px; border-left:2px solid var(--accent); color:var(--muted); background:var(--surface); }
+.page-header { padding:75px 0 45px; border-bottom:1px solid var(--line); margin-bottom:45px; }
+.page-header h1 { font-size:clamp(40px,6vw,64px); line-height:1.05; margin:8px 0; letter-spacing:-.04em; }
+.lead { color:var(--muted); font-size:18px; max-width:760px; }
+.engineering-grid, .project-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:25px 0 65px; }
+.engineering-grid article, .project-card, .lab-card { border:1px solid var(--line); background:var(--surface); padding:22px; }
+.engineering-grid span { font:12px "IBM Plex Mono",monospace; color:var(--accent); }
+.engineering-grid h3 { margin:10px 0 4px; }
+.engineering-grid p, .project-card p, .lab-card p { color:var(--muted); margin:0; }
+.project-card { min-height:230px; display:flex; flex-direction:column; }
+.project-top { display:flex; justify-content:space-between; margin-bottom:25px; }
+.project-index { color:#59635e; }
+.project-card h2 { font-size:22px; margin:0 0 8px; }
+.project-card p { margin-bottom:18px; }
+.tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; }
+.tags span { font:11px "IBM Plex Mono",monospace; color:#aab3ae; border:1px solid var(--line); padding:3px 7px; }
+.tags-large { margin:20px 0; }
+.project-link { font:12px "IBM Plex Mono",monospace; color:var(--accent); margin-top:16px; }
+.timeline { border-left:1px solid var(--line); }
+.timeline-item { display:grid; grid-template-columns:230px 1fr; gap:35px; padding:30px 0 30px 28px; position:relative; }
+.timeline-item:before { content:""; width:7px; height:7px; background:var(--accent); position:absolute; left:-4px; top:39px; }
+.timeline-item h2 { margin:0 0 3px; }
+.muted { color:var(--muted); }
+.notes-list { display:grid; gap:0; }
+.notes-list article { display:grid; grid-template-columns:140px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
+.notes-list span { font:11px "IBM Plex Mono",monospace; color:var(--muted); }
+.notes-list h2 { margin:0; font-size:20px; }
+.notes-list p { grid-column:2; margin:0; color:var(--muted); }
+.site-footer { margin-top:100px; border-top:1px solid var(--line); }
+.footer-inner { min-height:80px; display:flex; justify-content:space-between; align-items:center; color:var(--muted); font:11px "IBM Plex Mono",monospace; }
+@media(max-width:850px) {
+ .nav nav { display:none; }
+ .nav-links { margin-left:auto; }
+ .engineering-grid, .project-grid { grid-template-columns:1fr 1fr; }
+ .timeline-item { grid-template-columns:1fr; gap:5px; }
+ .notes-list article { grid-template-columns:1fr; }
+ .notes-list p { grid-column:auto; }
+}
+@media(max-width:560px) {
+ .container { width:min(calc(100% - 28px), var(--max)); }
+ .hero { padding:75px 0 55px; }
+ .engineering-grid, .project-grid { grid-template-columns:1fr; }
+ .footer-inner { flex-direction:column; align-items:flex-start; justify-content:center; gap:5px; }
+}
diff --git a/assets/js/main.js b/assets/js/main.js
new file mode 100644
index 0000000..7555376
--- /dev/null
+++ b/assets/js/main.js
@@ -0,0 +1 @@
+document.documentElement.classList.add("js");
diff --git a/config.toml b/config.toml
index 2902b4c..97668e3 100644
--- a/config.toml
+++ b/config.toml
@@ -1,52 +1,23 @@
-# Configuration de l'adresse, titre (onglet) et des chemins vers les contenus
-baseurl = "https://gregandev.fr"
-contentdir = "content"
-layoutdir = "layouts"
-publishdir = "public"
-title = "Gregandev"
-logo = "images/logos/logo.png"
-favicon = "images/logos/favicon.png"
-theme = "silhouette-hugo"
-
-author = "Grégory Lebreton"
-
-[pagination]
- pagerSize = 10
-
-relativeURLs = false
-canonifyURLs = true
-
-#disqusShortname = ""
-#googleAnalytics = ""
+baseURL = "https://gregandev.fr/"
+languageCode = "fr-fr"
+defaultContentLanguage = "fr"
+title = "Grégory Lebreton — Ingénieur DevOps / SRE"
+enableRobotsTXT = true
+enableGitInfo = true
[params]
-author = "Grégory Lebreton"
-introDescription = "Ingénieur Devops"
-enableRobotsTXT = true
-contentSharing = ""
+ description = "Portfolio de Grégory Lebreton, ingénieur DevOps / SRE orienté infrastructure, automatisation, CI/CD, conteneurs et observabilité."
+ author = "Grégory Lebreton"
+ github = "https://github.com/greglebreton"
+ gitlab = "https://gitlab.com/greglebreton"
+ linkedin = "https://www.linkedin.com/in/grégory-lebreton-996b261bb/"
+ email = "greg"
-[Params.social]
-github = "greglebreton"
-linkedin = "grégory-lebreton-996b261bb"
-gitlab = "greglebreton"
-email = "greg"
+[taxonomies]
+ category = "categories"
+ tag = "tags"
-[Params.social.share]
- linkedin = true
- email = true
-
-# CONFIG LANGAGE
-DefaultContentLanguage = "fr"
-# theme = ["osm", "beautifulhugo"]
-metaDataFormat = "yaml"
-pygmentsUseClasses = true
-pygmentCodeFences = true
-
-# ICONES RESEAUX SOCIAUX
-[Author]
- name = "Greg Lebreton"
- email = "contact@gregandev.fr"
-# gitlab = "GregLebreton"
- github = "GregLebreton"
- linkedin = "grégory-lebreton-996b261bb"
- itchio = "gregan"
+[markup]
+ [markup.goldmark]
+ [markup.goldmark.renderer]
+ unsafe = true
diff --git a/content/_index.md b/content/_index.md
index 6085e4a..5ab50c5 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -1,33 +1,50 @@
---
-title: Accueil
-description: "Portfolio pour GreganDev"
-date: 2025-06-26
-draft: false
+title: "Grégory Lebreton"
+description: "Ingénieur DevOps / SRE — Infrastructure, automatisation, CI/CD, conteneurs et observabilité."
---
-
+## Ingénieur DevOps / SRE
-### 
-
+**Infrastructure · Automation · CI/CD · Containers · Observability**
-Développeur passionné par les technologies de l'information et de communication, autodidacte de formation, j'aime le partage de connaissances par l'intermédiaire de tout vecteur possible dont l'open source !
+Je conçois, automatise et exploite des infrastructures Linux et des plateformes de déploiement.
-### LES PROJETS
+Mon travail se situe à l'intersection de l'administration système, du développement et de l'industrialisation : Infrastructure as Code, configuration management, conteneurisation, CI/CD, monitoring, sauvegarde et documentation.
-Voici les projets sur lesquels je travaille actuellement :
+
-[]({{< relref "projets/akiravr.md" >}})
+## Projets mis en avant
-[]({{< relref "projets/retroarcade.md" >}})
+
+ {{ range where (where .Site.RegularPages "Params.featured" true) "Section" "projects" }}
+ {{ partial "project-card.html" . }}
+ {{ end }}
+
\ No newline at end of file
+Infrastructure · Automation · Platform · Observability
+
+## Approche
+
+> Je construis → j'automatise → je déploie → je supervise → je documente.
+
+Je privilégie les environnements reproductibles, les processus simples à exploiter et les solutions dont le fonctionnement peut être compris, testé et maintenu.
diff --git a/content/about/_index.md b/content/about/_index.md
new file mode 100644
index 0000000..4d678f9
--- /dev/null
+++ b/content/about/_index.md
@@ -0,0 +1,23 @@
+---
+title: "À propos"
+description: "Profil de Grégory Lebreton."
+---
+
+# À propos
+
+Ingénieur DevOps / SRE et administrateur systèmes, également formateur technique.
+
+Je m'intéresse particulièrement à l'automatisation, à la reproductibilité des environnements, à la fiabilité des déploiements et à la conception de plateformes simples à exploiter et maintenir.
+
+## Formation
+
+- Ingénieur DevOps — GT'm Ingénierie
+- Concepteur Développeur Informatique — AFPA Paris XII
+- Bac ES
+
+## Langues
+
+- Français — natif
+- Anglais — C2
+- Espagnol — B1
+- Allemand — B1
diff --git a/content/experience/_index.md b/content/experience/_index.md
new file mode 100644
index 0000000..3d5c071
--- /dev/null
+++ b/content/experience/_index.md
@@ -0,0 +1,20 @@
+---
+title: "Expérience"
+description: "Expérience professionnelle en administration systèmes, DevOps, développement et formation technique."
+---
+
+# Expérience
+
+Un parcours à l'interface entre développement logiciel, administration systèmes, infrastructure et transmission des compétences.
+
+{{ range .Pages.ByDate.Reverse }}
+
+
{{ .Params.period }}
+
+
{{ .Title }}
+
{{ .Params.company }} · {{ .Params.location }}
+ {{ .Content }}
+ {{ with .Params.technologies }}
{{ range . }}{{ . }}{{ end }}
{{ end }}
+
+
+{{ end }}
diff --git a/content/experience/freelance.md b/content/experience/freelance.md
new file mode 100644
index 0000000..57a9dae
--- /dev/null
+++ b/content/experience/freelance.md
@@ -0,0 +1,15 @@
+---
+title: "Ingénieur / Développeur freelance"
+company: "Freelance"
+location: "France"
+period: "Janvier 2020 — Février 2021"
+date: 2020-01-01
+technologies: ["Python", "PHP", "SQL", "Linux", "Docker", "Git"]
+---
+
+Interventions sur des projets logiciels et infrastructure, avec une attention portée à l'automatisation, au déploiement et à la maintenabilité.
+
+- Développement d'outils et d'applications.
+- Administration d'environnements Linux.
+- Automatisation et scripting.
+- Intégration et déploiement d'applications.
diff --git a/content/experience/garage-numerique.md b/content/experience/garage-numerique.md
new file mode 100644
index 0000000..4abc522
--- /dev/null
+++ b/content/experience/garage-numerique.md
@@ -0,0 +1,16 @@
+---
+title: "Formateur DevOps / Administrateur Systèmes"
+company: "Le Garage Numérique"
+location: "Paris"
+period: "Mars 2021 — aujourd'hui"
+date: 2021-03-01
+technologies: ["Linux", "Ansible", "Docker", "CI/CD", "Monitoring", "Git"]
+---
+
+Accompagnement technique et transmission autour de l'administration systèmes, du DevOps et des pratiques d'industrialisation.
+
+- Administration et maintenance d'environnements Linux.
+- Automatisation des opérations récurrentes.
+- Accompagnement sur Git, conteneurs et chaînes de déploiement.
+- Mise en place et documentation de pratiques reproductibles.
+- Formation et accompagnement de publics techniques.
diff --git a/content/experience/leading-frog.md b/content/experience/leading-frog.md
new file mode 100644
index 0000000..8b4beb7
--- /dev/null
+++ b/content/experience/leading-frog.md
@@ -0,0 +1,14 @@
+---
+title: "Développeur"
+company: "Leading Frog"
+location: "France"
+period: "Octobre 2017 — Décembre 2018"
+date: 2017-10-01
+technologies: ["PHP", "JavaScript", "SQL", "Git"]
+---
+
+Développement d'applications web et participation aux différentes étapes du cycle de vie logiciel.
+
+- Développement et maintenance.
+- Intégration de fonctionnalités.
+- Correction et évolution d'applications existantes.
diff --git a/content/experience/safran.md b/content/experience/safran.md
new file mode 100644
index 0000000..5fddba3
--- /dev/null
+++ b/content/experience/safran.md
@@ -0,0 +1,14 @@
+---
+title: "Ingénieur développement"
+company: "Safran Aircraft Engines"
+location: "France"
+period: "Juin 2019 — Décembre 2019"
+date: 2019-06-01
+technologies: ["C#", "SQL", "Git", "Industrialisation"]
+---
+
+Participation au développement et à l'industrialisation de solutions logicielles dans un contexte industriel.
+
+- Développement et maintenance d'applications.
+- Travail avec des environnements techniques contraints.
+- Collaboration avec les équipes projet et documentation des solutions.
diff --git a/content/lab/_index.md b/content/lab/_index.md
new file mode 100644
index 0000000..104064d
--- /dev/null
+++ b/content/lab/_index.md
@@ -0,0 +1,25 @@
+---
+title: "Lab"
+description: "Laboratoire personnel : infrastructure, automatisation, Kubernetes et observabilité."
+---
+
+# Lab
+
+Le lab sert à tester des architectures et des outils avant de les documenter ou de les réutiliser.
+
+{{ range .Pages.ByDate.Reverse }}
+
+