📍 État Actuel du Projet — EGS / Gallois Sisal¶
Instantané technique et fonctionnel au 23 juin 2026. Pour l'historique complet, voir PROJECT-HISTORY.md.
🚦 Résumé exécutif¶
Le projet a pivoté de WordPress/Breakdance vers Astro + EmDash CMS. Les 10 anciens repos de l'org Gallois-sisal ont été consolidés en un monorepo unique (Gallois-sisal/egs, privé), traqué via GitHub issues.
- ✅ Phase 1 (Consolidation monorepo) — 100% terminée (8 issues fermées #1–#8)
- 🔄 Phase 2 (Intégration design Pencil) — en cours (12 issues ouvertes #9–#20, 0% officiellement mais travail déjà amorcé)
- ⏳ Phase 3 (CI/CD & Deploy) — planifiée
- ⏳ Phase 4 (Maintenance & Cleanup) — planifiée (issue #22 blocked)
PROD (gallois-sisal.com) → 🟡 Page de garde "Site en construction"
STAGING (staging.gallois-sisal.com) → 🟢 Pages Astro (proxy :4321)
REPO OFFICIEL → github.com/Gallois-sisal/egs (privé, 22 issues)
Ce qui se passe maintenant : intégration design Pencil (egs.pen) dans apps/web/, avec un vrai tracker GitHub par page/composant (issues #9–#20).
🏗️ Architecture actuelle (monorepo)¶
EGS/ (github.com/Gallois-sisal/egs — privé)
├── apps/
│ ├── web/ ⭐ APP PRINCIPALE (Astro SSR) — ce qui est déployé
│ │ ├── src/pages/ → 7 pages (index, about, products, build-together,
│ │ │ transition, impact, contact)
│ │ ├── src/components/ → Hero, Navbar, Footer, Valeurs, Production,
│ │ │ Storytelling, Bandeau, Articles, CTA,
│ │ │ AccessibilityWidget, agentation-init.ts
│ │ ├── src/layouts/ → Layout.astro (SEO, fonts, GSAP/Lenis, Agentation)
│ │ ├── public/ → images .webp, fonts Overused Grotesk, logos, favicon
│ │ ├── data.db → SQLite EmDash (DATABASE_URL par défaut)
│ │ └── emdash-env.d.ts → collections CMS (Page, Post)
│ ├── wordpress/ 📦 ARCHIVE — ancienne stack WP/Breakdance (DDEV)
│ ├── egs-frontend/ 📦 ARCHIVE — ancien frontend Astro pré-monorepo
│ ├── egs-design/ 📦 ARCHIVE — Next.js design system
│ ├── ycode/ 🔧 Sous-projet (engagement 68d57f5)
│ ├── prototype/ 🎨 Prototype Pencil (EGS.pen)
│ ├── dashboard/ 📊 Dashboard (Svelte)
│ └── _archive/ 📦 ARCHIVE — code historique non buildé/non déployé
│ └── admin-panel/ ← ancien faux dashboard Svelte (mock, jamais connecté)
│ ⚠️ NE PAS CONFONDRE avec le CMS EmDash (apps/web)
├── services/
│ ├── agent/ 🤖 Hermes-Agent v0.15.1 (10 261 commits)
│ └── agent-local/ 🤖 Copie locale de l'agent
├── deploy/ 🚢 Infra VPS (Nginx, Coolify, landing, setup-server.sh)
├── docs/ 📚 Documentation (ce dossier)
├── Design/ 🎨 egs.pen (5.2 Mo, 2789 frames) + images/ (79 assets)
├── .github/workflows/ ⚙️ CI/CD (ci, deploy-prod, deploy-staging, gh-pages)
└── .pi/RULE-EGS.md 🔒 Règles d'accès Coolify (scope EGS uniquement)
⚠️ Important : Seul
apps/webest buildé et déployé. Lepackage.jsonracine restreint les workspaces àapps/web+apps/ycode.
📋 Tracker GitHub (source de vérité)¶
Repo : Gallois-sisal/egs · 22 issues (8 fermées / 14 ouvertes) · 4 milestones
Issues fermées ✅ — Phase 1 (Consolidation)¶
| # | Titre |
|---|---|
| #1 | Reorganize to monorepo structure |
| #2 | Merge chore/reorg-monorepo + résolution Layout.astro |
| #3 | Restore deploy/ nginx + landing + scripts + .pi/RULE-EGS.md |
| #4 | Consolidate 10 Gallois-sisal repos (filter-repo, full history) |
| #5 | Version Design assets (egs.pen + 79 image-import) |
| #6 | Merge origin/main server commits (June 1) + conflits path-move |
| #7 | Push consolidated monorepo via VPS (plafond réseau 364 Mo) |
| #8 | Archive 10 source repos |
Issues ouvertes 🔄¶
| # | Titre | Priorité | Milestone |
|---|---|---|---|
| #21 | 🗺️ EGS Roadmap (overview) | 🔴 critical | — |
| #22 | [Infra] Deletion egs-agent + egs-agent-local repos |
🟠 high | Phase 4 (blocked) |
| #9 | Design tokens (colors/type/spacing) from egs.pen |
🔴 critical | Phase 2 |
| #10 | Asset pipeline (79 image-import → public/) |
🟠 high | Phase 2 |
| #11 | Recover EGS-DS .fig 487 Mo (perdu) |
🟠 high | Phase 2 (blocked) |
| #12 | Page Accueil (Hero + Storytelling + CTA + Bandeau) | 🟠 high | Phase 2 |
| #13 | Page À propos (heritage + team + valeurs) | 🟡 normal | Phase 2 |
| #14 | Page Produits (catalog + product detail) | 🟡 normal | Phase 2 |
| #15 | Page Contact (form + map + infos) | 🟡 normal | Phase 2 |
| #16 | Page Durabilité (sustainability, nouvelle) | 🟡 normal | Phase 2 |
| #17 | Composants partagés (Navbar/Footer/Hero/CTA/Card) | 🟠 high | Phase 2 |
| #18 | Responsive breakpoints + mobile | 🟡 normal | Phase 2 |
| #19 | QA : cross-browser, a11y, perf, Lighthouse 90+ | 🔴 critical | Phase 2 |
| #20 | Docs workflow Figma → Pencil → EGS | 🟡 normal | Phase 2 |
🌐 Pages — état page par page¶
| Route | Fichier | Design source | Statut |
|---|---|---|---|
/ |
index.astro |
(Pencil — issue #12) | 🟡 Composée (8 sections) — en cours |
/about |
about.astro |
Prop 25 (issue #13) | 🟢 Intégrée |
/products |
products.astro |
Prop 23 (issue #14) | 🟢 Intégrée |
/build-together |
build-together.astro |
Prop 26 | 🟢 Intégrée |
/transition |
transition.astro |
Prop 27 | 🟢 Intégrée |
/impact |
impact.astro (715 lignes, nouvelle) |
Prop 28 | 🟢 Intégrée (refonte totale) |
/contact |
contact.astro |
(issue #15) | 🟡 Formulaire action="#" — backend à connecter |
/durabilite |
— | (issue #16) | ⏳ Page à créer |
Assets intégrés : 16 images .webp converties + 79 assets Design/images/ à router (issue #10).
🎨 Design system en vigueur¶
| Élément | Valeur |
|---|---|
| Typographie unique | Overused Grotesk (VF + Roman/Book/Medium/SemiBold/Bold) |
| Palette | Vert foncé #071915, Vert #bee9b2, Crème #fefaf1, Texte #e6e8e7 |
| Règle anti-slop (polish) | Aucun #fff/#000 pur → tokens design (pass 1 + 2 faits) |
| Accessibilité | prefers-reduced-motion respecté |
| Source design | Design/egs.pen (Pencil/Penpot, 5.2 Mo, 2789 frames) |
Voir issue #9 — extraction des design tokens depuis
egs.penversapps/web.
🚢 Infrastructure & déploiement¶
Domaines & vhosts Nginx (VPS 85.190.240.49)¶
| Domaine | Cible | Port | Statut vhost |
|---|---|---|---|
gallois-sisal.com |
Page de garde → (proxy Astro commenté) | 4321 | 🟡 Landing active, proxy :4321 commenté |
staging.gallois-sisal.com |
Astro staging | 4321 | 🟢 Proxy actif |
deploy.gallois-sisal.com |
Coolify Dashboard | 8000 | 🟢 Proxy actif |
📍 CMS EmDash : EmDash sert son admin sur
/_emdash/admin(préfixe/_emdashcodé en dur, non configurable dansEmDashConfig). Une redirection courte/admin→/_emdash/adminest en place (apps/web/src/pages/admin.astro: 308 + headerX-Robots-Tag: noindex). Les deux URLs marchent : - URL courte (recommandée) :https://staging.gallois-sisal.com/admin- URL brute :https://staging.gallois-sisal.com/_emdash/admin- Staging : 🟡 setup admin bloqué — voir bug WebAuthn ci-dessous - Prod : pas encore exposée (proxy:4321commenté)🗑️ Appwrite supprimé (23/06/2026) —
backend.gallois-sisal.cometbackend.cloud-gallois.comretirés (vhosts + certs SSL + domaines). Aucun conteneur/volume Appwrite n'existait sur le serveur ; seuls des vhosts orphelins pointant vers des conteneurs absents restaient. Backup des configs dans/root/backups/appwrite-removal-20260623/sur le VPS.
Environnements¶
| Env | Domaine | Branche | Auto-déploiement | État |
|---|---|---|---|---|
| Production | gallois-sisal.com |
main |
Push main → Coolify |
🟡 Page de garde |
| Staging | staging.gallois-sisal.com |
dev |
Push dev → Coolify |
🟢 Site Astro |
| Coolify | deploy.gallois-sisal.com |
— | — | 🟢 Actif |
CI/CD (GitHub Actions)¶
| Workflow | Déclencheur | Action |
|---|---|---|
ci.yml |
push main/dev/feature/**/fix/** + PR |
Build Astro + Type check |
deploy-staging.yml |
push dev |
Build gate → API Coolify → staging |
deploy-prod.yml |
push main |
Build gate → API Coolify → prod |
deploy-gh-pages.yml |
— | Déploiement doc GitHub Pages |
Secrets GitHub requis : COOLIFY_URL, COOLIFY_TOKEN, COOLIFY_UUID_STAGING, COOLIFY_UUID_PROD
⚠️ Phase 3 (issue tracker) : la CI doit être reconfigurée pour le monorepo consolidé (les workflows actuels pointent vers l'ancien layout). Voir roadmap Phase 3.
🤖 Outils & automatisations actifs¶
| Outil | Rôle | État |
|---|---|---|
| EmDash CMS | Headless CMS (collections Page, Post, SQLite) |
🟢 Déployé en staging — setup admin non terminé (voir ⚠️ ci-dessous) |
| Agentation | Feedback visuel → issues (toolbar dev/staging) | 🟡 Conditionné par PUBLIC_AGENTATION |
| GSAP + Lenis | Animations + scroll smooth | 🟢 Actif |
| AccessibilityWidget | Dyslexie, contraste, taille texte (localStorage) | 🟢 Actif |
| Hermes (agent) | Notifications Telegram, création issues | 🟢 Actif (services/agent) |
| Coolify | Orchestration déploiements | 🟢 Actif (token Riake, root) |
⚠️ Points d'attention immédiats (23/06/2026)¶
🔴 BUG — Setup admin EmDash bloqué (passkey WebAuthn)¶
L'admin EmDash ne peut pas être créé en staging actuellement. Quand on va sur
https://staging.gallois-sisal.com/_emdash/admin et qu'on saisit l'email, le navigateur
affiche « Erreur de sécurité. Assurez-vous que vous êtes sur une connexion sécurisée ».
Cause racine (confirmée en lisant le code EmDash + le conteneur) :
- Le conteneur staging a EMDASH_APP_URL=https://staging.gallois-sisal.com, mais EmDash ne lit pas cette variable. Il lit EMDASH_SITE_URL ou SITE_URL (ni l'une ni l'autre n'est set).
- Sans EMDASH_SITE_URL, getPublicOrigin() retombe sur url.origin = http://0.0.0.0:4321 (interne au conteneur).
- Résultat : EmDash construit la config passkey avec rp.id = "localhost" (confirmé via POST /_emdash/api/setup/admin → {"rp":{"name":"localhost","id":"localhost"}}).
- Le navigateur crée une passkey pour localhost, qui ne matche jamais l'origine réelle https://staging.gallois-sisal.com → WebAuthn rejette → « Erreur de sécurité ».
Correctif (1 variable d'env, dans Coolify — staging resource) :
Redéployer, puis refaire le setup sur/admin (redirige vers /_emdash/admin) — la passkey s'enregistrera correctement.
Note :
EMDASH_APP_URLpeut rester (inoffensif, ignoré par EmDash), mais ne suffit pas. Idem en prod quand on y activera le CMS :EMDASH_SITE_URL = https://gallois-sisal.com. Voirdocs/CI-CD-DEPLOY.mdsur le dépôt pour la checklist complète env/secrets.
🔴 À régler en priorité (Phase 2)¶
- Issue #9 — Extraire les design tokens (couleurs, typo, spacing) depuis
egs.penversapps/web - Issue #10 — Router les 79 assets
Design/images/versapps/web/public/ - Issue #17 — Refactorer les composants partagés (Navbar, Footer, CTA, Card) pour matcher Pencil
- Formulaire
/contact(issue #15) —action="#", aucun backend connecté - Revue responsive mobile (issue #18) — pas de tests mobile systématiques
🟡 À valider côté EGS¶
- Démo des pages corrigées (about, products, build-together, transition, impact, accueil)
- Décision CMS : EmDash utilisé par EGS pour éditer le contenu, ou contenu statique ?
- Contenu final : textes/visuels définitifs
- Page Durabilité (issue #16) : nouvelle page prévue — à confirmer dans le scope
🔒 Bloqués¶
- Issue #11 —
.figEGS-DS 487 Mo perdu pendant lefilter-repo(récupération à étudier) - Issue #22 —
egs-agent+egs-agent-localsupprimés de l'org GitHub (code sauf, métadonnées perdues — GitHub restore sous 90 j possibles)
📋 Décisions infrastructure pendantes (Phase 3)¶
- Reconfigurer la CI pour le monorepo consolidé
- Bascule prod : dé-commenter le bloc proxy
:4321dansdeploy/nginx/gallois-sisal.comquand prêt - Vérifier/certificat SSL multi-domaines (Let's Encrypt)
- Activer Agentation en staging (env
PUBLIC_AGENTATION)
📊 Métriques de code (approximatives)¶
| Métrique | Valeur |
|---|---|
| Commits totaux (monorepo) | ~20 582 (full history des 10 repos) |
| Pages Astro | 7 (+1 Durabilité prévue) |
| Composants Astro | 11 |
| Issues GitHub | 22 (8 fermées / 14 ouvertes) |
| Milestones | 4 (Phase 1 done, ⅔/4 planned) |
Images Design/images/ |
79 assets (~274 Mo) |
Taille egs.pen |
~5.2 Mo / 2789 frames |
Prochaine étape : voir ROADMAP.md pour le plan de finalisation et de lancement.