Files
jpgiannetti ae2fc3ee6f refactor: réorganiser Dockerfiles et scripts par module
Réorganise la structure Docker pour plus de cohérence dans le monorepo.
Chaque module (backend, docs) a maintenant ses propres Dockerfiles et scripts.

Changements:
- backend/docker/ : Dockerfile (prod) + dev.Dockerfile (hot reload) + init script
- docs/docker/ : mkdocs.Dockerfile + pdf.Dockerfile
- docs/scripts/ : generate-bdd-docs.py + generate-pdf-docs.py
- Déplace docker-compose.yml dans backend/
- Supprime scripts obsolètes (fix-markdown-*.sh, remove-broken-links.sh)
- Déplace .dockerignore à la racine
- Met à jour Makefile avec nouveaux chemins

Organisation finale:
- backend/ : tout ce qui concerne l'API backend
- docs/ : tout ce qui concerne la documentation
- scripts/ : uniquement setup.sh (scripts généraux du projet)
2026-02-12 20:41:10 +01:00
..
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00
2026-01-31 11:45:11 +01:00

Backend - RoadWave

Backend Go de l'application RoadWave.

Structure

backend/
├── cmd/                    # Points d'entrée de l'application
│   └── api/                # Serveur API REST
├── internal/               # Code interne (non exportable)
│   ├── auth/               # Validation JWT, intégration Zitadel
│   ├── user/               # Profils, centres d'intérêt
│   ├── content/            # CRUD contenus, métadonnées
│   ├── geo/                # Recherche géospatiale, algorithme
│   ├── streaming/          # Génération HLS, transcoding
│   ├── moderation/         # Signalements, workflow
│   ├── payment/            # Intégration Mangopay
│   └── analytics/          # Métriques écoute, jauges
├── pkg/                    # Code exportable (bibliothèques réutilisables)
├── migrations/             # Migrations SQL
├── tests/
│   └── bdd/                # Step definitions pour tests Gherkin
├── config/                 # Fichiers de configuration (dev, staging, prod)
├── go.mod                  # Dépendances Go
├── sqlc.yaml               # Configuration SQLC
├── .air.toml               # Configuration Air (hot reload)
├── Dockerfile              # Image production
└── Dockerfile.dev          # Image développement

Architecture

Voir ADR-012 : Architecture Backend pour les détails de l'architecture modulaire.

Commandes

Depuis la racine du monorepo :

# Développement
make dev              # Démarrer avec hot reload
make docker-up        # Lancer tous les services Docker

# Tests
make test             # Lancer tous les tests
make test-unit        # Tests unitaires uniquement
make test-bdd         # Tests BDD Gherkin

# Migrations
make migrate-up       # Appliquer les migrations
make migrate-down     # Rollback dernière migration
make migrate-create name=add_users  # Créer nouvelle migration

# Build
make build            # Compiler le binaire production
make lint             # Linter le code
make format           # Formatter le code

Configuration

  1. Copier .env.example en .env :

    cp backend/.env.example backend/.env
    
  2. Ajuster les variables d'environnement si nécessaire

Dépendances

  • Go : 1.21+
  • PostgreSQL : 16+ avec PostGIS
  • Redis : 7+
  • Zitadel : dernière version

Toutes les dépendances sont gérées via Docker Compose (voir docker-compose.yml à la racine).