2026-06-05 02:48:04 +02:00
|
|
|
# Architecture — MicroAPI
|
2026-06-05 02:45:49 +02:00
|
|
|
|
2026-06-05 02:48:04 +02:00
|
|
|
## Stack
|
2026-06-05 02:45:49 +02:00
|
|
|
|
2026-06-05 02:48:04 +02:00
|
|
|
| Couche | Technologie | Justification |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| Framework | FastAPI | Performant, async, documentation auto (Swagger) |
|
|
|
|
|
| Serveur | Uvicorn | ASGI, production-ready |
|
|
|
|
|
| Runtime | Python 3.11+ | Écosystème riche, gratuit |
|
|
|
|
|
| Base de données | SQLite (phase 1) | Zéro ops, migration vers PostgreSQL si besoin |
|
|
|
|
|
| Conteneurisation | Docker | Isolation, déploiement reproductible |
|
|
|
|
|
| Reverse proxy | Caddy (existant) | Routing, HTTPS |
|
|
|
|
|
| Paiements | Lemon Squeezy | MoR, 0€/mois, gère TVA |
|
|
|
|
|
| Emails | Resend (gratuit 3K/mois) | Transactionnel |
|
|
|
|
|
| Monitoring | Uptime Kuma (existant) | Health checks |
|
2026-06-05 02:45:49 +02:00
|
|
|
|
2026-06-05 02:48:04 +02:00
|
|
|
## Structure des dossiers
|
2026-06-05 02:45:49 +02:00
|
|
|
|
|
|
|
|
```
|
2026-06-05 02:48:04 +02:00
|
|
|
micro-api/
|
|
|
|
|
├── main.py # Application FastAPI
|
|
|
|
|
├── requirements.txt # Dépendances Python
|
|
|
|
|
├── Dockerfile # Image Docker
|
|
|
|
|
├── docker-compose.yml # Stack de déploiement
|
|
|
|
|
├── README.md # Documentation utilisateur
|
|
|
|
|
├── ARCHITECTURE.md # Ce document
|
|
|
|
|
├── tests/ # Tests unitaires & intégration
|
|
|
|
|
│ └── test_health.py
|
|
|
|
|
├── app/ # Code applicatif (à venir)
|
|
|
|
|
│ ├── routers/ # Endpoints API
|
|
|
|
|
│ ├── services/ # Logique métier (transcription, etc.)
|
|
|
|
|
│ ├── models/ # Modèles de données
|
|
|
|
|
│ └── utils/ # Utilitaires
|
|
|
|
|
└── data/ # Données persistantes (volumes)
|
2026-06-05 02:45:49 +02:00
|
|
|
```
|
|
|
|
|
|
2026-06-05 02:48:04 +02:00
|
|
|
## Principes
|
2026-06-05 02:45:49 +02:00
|
|
|
|
2026-06-05 02:48:04 +02:00
|
|
|
1. **Stateless** — Chaque requête est indépendante, pas de session serveur
|
|
|
|
|
2. **Async-first** — Tous les endpoints sont async par défaut
|
|
|
|
|
3. **API-first** — Documentation Swagger automatique sur `/docs`
|
|
|
|
|
4. **12-factor** — Configuration par variables d'environnement
|
|
|
|
|
5. **Zéro coût opérationnel** — Whisper local, pas d'API externe payante
|
2026-06-05 02:45:49 +02:00
|
|
|
|
2026-06-05 02:48:04 +02:00
|
|
|
## Roadmap technique
|
2026-06-05 02:45:49 +02:00
|
|
|
|
2026-06-05 02:48:04 +02:00
|
|
|
1. ✅ Scaffold (health check, structure)
|
|
|
|
|
2. ⬜ Endpoint /api/transcribe (Whisper local, upload fichier)
|
|
|
|
|
3. ⬜ Endpoint /api/summarize (Résumé de texte)
|
|
|
|
|
4. ⬜ Endpoint /api/convert (Markdown→PDF, JSON→CSV)
|
|
|
|
|
5. ⬜ Authentification API keys
|
|
|
|
|
6. ⬜ Rate limiting + quotas
|
|
|
|
|
7. ⬜ Intégration Lemon Squeezy (paiements)
|
|
|
|
|
8. ⬜ Dashboard utilisateur
|