Site vitrine du projet IA·rbre — plateforme collaborative pour la végétalisation urbaine et l'adaptation au changement climatique.
Site en production : iarbre.fr
iarbre-website/
├── website/ # Site statique Hugo
│ ├── content/ # Contenu éditorial (articles, pages)
│ ├── layouts/ # Templates HTML Hugo
│ ├── assets/ # SCSS, JS, images sources
│ ├── static/ # Fichiers servis tels quels (favicon, images…)
│ ├── data/ # Données structurées (YAML/JSON)
│ └── hugo.toml # Configuration Hugo
├── deploy/ # Playbooks Ansible (preprod, prod, feature)
└── .github/workflows # CI/CD GitHub Actions
- Hugo extended ≥
0.145.0(la versionextendedest requise pour la compilation SCSS)
git clone git@github.com:TelesCoop/iarbre-website.git
cd iarbre-website/website
hugo serverLe site est disponible sur http://localhost:1313 avec rechargement automatique.
| Branche | URL | Auth | Déploiement |
|---|---|---|---|
main |
iarbre.fr | publique | automatique au push |
dev |
preprod.iarbre.fr | htpasswd | automatique au push |
feature <branch> |
feature-<branch>.iarbre.fr |
htpasswd | automatique à l'ouverture de PR |
Les environnements preprod et feature sont protégés par authentification HTTP basique. Les credentials sont stockés dans le vault Ansible.
| Workflow | Trigger | Rôle |
|---|---|---|
website-checks.yml |
push / pull_request | Build Hugo de validation |
website.yml |
push sur main ou dev |
Déploiement prod ou preprod |
deploy-feature.yml |
ouverture / synchronize de PR | Déploiement d'un environnement éphémère |
delete-feature.yml |
fermeture de PR | Suppression de l'environnement éphémère |
ANSIBLE_VAULT_KEY— mot de passe du vault Ansible (deploy/vault.key)SSH_PRIVATE_KEY— clé privée SSH pour la connexion aux serveurs cibles
Les playbooks Ansible vivent dans deploy/. Voir deploy/README.md pour le détail.
cd deploy
ansible-playbook website.yml -l preprod # ou prod
ansible-playbook website.yml -l feature -e branch=<branch-name>Les trois environnements (prod, preprod, feature) cohabitent sur le même serveur physique, distingués par leur project_slug :
- prod :
/telescoop/iarbre_website/ - preprod :
/telescoop/iarbre_website_preprod/ - feature :
/telescoop/iarbre_website-feature-<branch>/
- Créer une branche depuis
dev:git checkout -b ma-feature - Ouvrir une PR vers
dev— un environnement de preview est déployé automatiquement - Une fois validée, merge dans
dev(déclenche le déploiement preprod) - Le merge
dev→maindéclenche le déploiement production