Site vitrine statique développé avec Astro. Les contenus éditoriaux sont gérés par Admin-Sites-Astro.
- Astro
- API publique de l'administration centralisée
- Déploiement statique vers O2Switch
Prérequis : Node.js >= 22.12.0 et npm 10.9.0. La version Node de référence
est déclarée dans .node-version.
npm install
cp .env.example .env
npm run devNAF_ADMIN_API_URL est obligatoire pour charger les pages pendant le build.
NAF_ADMIN_API_URL=https://admin.stan-bouchet.fr
PUBLIC_CONTACT_FORM_ENDPOINT=/contact.php
PUBLIC_TURNSTILE_SITE_KEY=Le footer possède un contenu statique de secours. Les pages éditoriales n'ont pas de source secondaire : si l'API d'administration est indisponible, le build échoue afin d'éviter de publier un site incomplet ou obsolète.
npm run dev
npm run build
npm run check
npm run audit
npm run previewLes pull requests exécutent systématiquement :
astro check;- un build statique avec des contenus de test déterministes ;
- Dependency Review pour refuser toute nouvelle vulnérabilité de niveau élevé ;
- CodeQL et Gitleaks.
Le mode de contenu de test exige simultanément CI=true et
NAF_USE_CONTENT_FIXTURES=true. Il ne peut donc pas remplacer par accident
l'API d'administration pendant un build local ou un déploiement de production.
L'audit npm complet continue de s'exécuter sur main, chaque nuit et à la
demande. Les actions GitHub sont figées sur des SHA immuables.
Les mises à jour Dependabot de type patch concernant une dépendance directe de
développement activent automatiquement le squash auto-merge. La fusion reste
bloquée jusqu'à la réussite de tous les contrôles obligatoires de main.
Le workflow .github/workflows/deploy-o2switch.yml :
- construit le site à chaque push sur
main; - permet un déploiement manuel avec
workflow_dispatch; - accepte le
repository_dispatchenvoyé par la nouvelle administration ; - déploie le dossier
dist/via FTPS.
La nouvelle administration envoie encore l'identifiant historique
sanity_content_updated pour son repository_dispatch. Ce nom est conservé
temporairement pour compatibilité et ne correspond plus à une intégration Sanity.
FTP_SERVERFTP_PORTFTP_USERNAMEFTP_PASSWORDNAF_ADMIN_API_URLPUBLIC_CONTACT_FORM_ENDPOINTPUBLIC_TURNSTILE_SITE_KEYTRUSTED_PROXY_IPS
- Site : https://naturaufeminin.fr
- Administration : https://admin.stan-bouchet.fr
Projet privé.