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)
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
-
Copier
.env.exampleen.env:cp backend/.env.example backend/.env -
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).