2.2 KiB
2.2 KiB
Architecture — MicroAPI
Stack
| 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 |
Structure des dossiers
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)
Principes
- Stateless — Chaque requête est indépendante, pas de session serveur
- Async-first — Tous les endpoints sont async par défaut
- API-first — Documentation Swagger automatique sur
/docs - 12-factor — Configuration par variables d'environnement
- Zéro coût opérationnel — Whisper local, pas d'API externe payante
Roadmap technique
- ✅ Scaffold (health check, structure)
- ⬜ Endpoint /api/transcribe (Whisper local, upload fichier)
- ⬜ Endpoint /api/summarize (Résumé de texte)
- ⬜ Endpoint /api/convert (Markdown→PDF, JSON→CSV)
- ⬜ Authentification API keys
- ⬜ Rate limiting + quotas
- ⬜ Intégration Lemon Squeezy (paiements)
- ⬜ Dashboard utilisateur