Save France
Introduction

Guide de démarrage rapide

Installation et configuration de l'environnement de développement

Prérequis

Avant de commencer, assurez-vous d'avoir installé :

  • Node.js 18 ou supérieur
  • npm 9 ou supérieur
  • Docker et Docker Compose (pour l'environnement de développement)
  • Autres dépendances spécifiques au projet

Installation

  1. Cloner le dépôt
    git clone [URL_DU_DEPOT]
    cd save-france
    
  2. Installer les dépendances
    cd front/sources
    npm install
    
  3. Configurer l'environnement Créez un fichier .env à la racine du projet en vous basant sur .env.example :
    cp .env.example .env
    

    Mettez à jour les variables d'environnement selon votre configuration.

Démarrage en développement

Démarrer l'environnement Docker

Le projet utilise Docker Compose avec Caddy comme reverse proxy. Tous les services sont orchestrés ensemble.

# Depuis la racine du projet
make setup    # Configuration initiale (première fois uniquement)
make up       # Démarrer tous les conteneurs

Ou directement avec Docker Compose :

docker compose up -d

Installer le certificat SSL (première fois)

Pour accéder à l'application en HTTPS local :

make ssl    # Copie le certificat SSL de Caddy

Ajoutez ensuite le certificat rootCA.crt à votre système :

  • macOS : Double-cliquez et ajoutez-le au trousseau
  • Linux : Copiez dans /usr/local/share/ca-certificates/ et exécutez sudo update-ca-certificates

Accès à l'application

L'application est accessible via les URLs configurées dans votre fichier .env (variable HOST) :

Note : Assurez-vous d'avoir ajouté les entrées dans votre fichier /etc/hosts :

127.0.0.1 save-france.local
127.0.0.1 api.save-france.local
127.0.0.1 adminer.save-france.local
127.0.0.1 mails.save-france.local

Commandes utiles

Docker

make up           # Démarrer les conteneurs
make down         # Arrêter les conteneurs
make reset        # Rebuild complet (destructif)
make api          # Shell dans le conteneur API
make front        # Shell dans le conteneur frontend
make api-logs     # Logs du conteneur API
make front-logs   # Logs du conteneur frontend

Développement Backend (depuis le conteneur)

make api                          # Accéder au conteneur
php bin/console doctrine:migrations:migrate    # Migrations
php bin/console doctrine:fixtures:load         # Fixtures

Développement Frontend (depuis le conteneur)

make front        # Accéder au conteneur
npm run check     # Linter
npm run test      # Tests

Tests et qualité

make tests        # Tests backend (PHPUnit)
make api:lint     # Lint backend (phpcs, rector, phpstan)
make front:lint   # Lint frontend

Configuration recommandée

  • Éditeur : VS Code avec les extensions recommandées
  • Navigateur : Dernière version de Chrome ou Firefox
  • Outils :
    • Vue DevTools pour le débogage
    • Redux DevTools pour l'état de l'application

Dépannage

Problèmes courants

  1. L'application n'est pas accessible
    • Vérifiez que les conteneurs sont démarrés : docker compose ps
    • Vérifiez les entrées dans /etc/hosts
    • Vérifiez les logs : make api-logs ou make front-logs
  2. Erreur de certificat SSL
    • Exécutez make ssl pour copier le certificat
    • Ajoutez le certificat à votre système
    • Redémarrez votre navigateur
  3. Problèmes de permissions
    • Vérifiez la variable WWW_DATA_UID dans .env
    • Elle doit correspondre à votre UID : echo $(id -u)
    • Relancez make setup si nécessaire
  4. Conteneurs qui ne démarrent pas
    • Vérifiez les logs : docker compose logs
    • Vérifiez les ports disponibles (80, 443, 5432)
    • Essayez un rebuild : make reset
  5. Variables d'environnement manquantes
    • Copiez .env.example vers .env
    • Configurez au minimum la variable HOST

Architecture

Le projet utilise une architecture Docker complète :

  • Caddy : Reverse proxy avec SSL automatique
  • Frontend : Nuxt 4 (développement avec HMR)
  • API : Symfony 7.3 avec FrankenPHP
  • Database : PostgreSQL 17.2
  • Adminer : Interface web pour la base de données
  • Mailpit : Serveur SMTP de test
  • Gotenberg : Génération de PDF

Tous ces services communiquent via un réseau Docker interne.

Prochaines étapes