SecuFile
Architecture globale
Architecture multi-composants de SecuFile
Book: SecuFile — Stockage sécurisé de fichiers | Chapter: Architecture
Architecture globale
Diagramme d'architecture
+-------------------------------------------------------------+
| CLIENTS |
+----------+-----------+-----------+-----------+---------------+
| Desktop | Mobile | Web UI | API | Share Links |
| (Futur) | (Futur) | (React) | (Direct) | (Public) |
+----+-----+-----+-----+-----+----+-----+-----+-------+-------+
| | | | |
+-----------+-----------+-----------+-------------+
|
+--------v--------+
| Nginx Ingress |
| (TLS / OVH K8s)|
+--------+--------+
|
+--------------+--------------+
| |
+--------v--------+ +--------v--------+
| WebGUI Frontend | | WebGUI Backend |
| (React 18) | | (Python FastAPI) |
| Port 80 (nginx) | | Port 8001 |
+--------+---------+ +--------+---------+
| |
+-----------------------------+
|
+--------v--------+
| Go API (Gin) |
| Port 8080 |
| API REST v1 |
+--------+--------+
|
+------------------+------------------+
| | |
+-------v-------+ +------v------+ +-------v-------+
| PostgreSQL | | S3 OVH | | Redis |
| (Metadata, | | (Fichiers | | (Rate limit, |
| users, | | chiffres) | | sessions, |
| billing) | | | | cache) |
+---------------+ +------+------+ +---------------+
|
+--------v--------+
| OVH KMS |
| (Cles RSA) |
+-----------------+Composants principaux
1. Go API (filesecure) - Coeur du systeme
Le backend Go est le composant central. Il gere :
- L'authentification JWT et MFA
- Le chiffrement/dechiffrement des fichiers (AES-256-GCM, RSA-4096)
- Le stockage S3 OVH (upload, download, streaming)
- La gestion des organisations, utilisateurs, plans et abonnements
- La facturation Stripe
- Les share links et transferts
- L'audit trail et la conformite
- Les metriques Prometheus
Framework : Gin (Go HTTP framework) Port : 8080 Nombre de services : 30+ services injectes au demarrage
2. WebGUI Backend (Python FastAPI)
Le backend Python sert de couche intermediaire entre le frontend React et l'API Go. Il gere :
- Le proxy des requetes vers l'API Go avec gestion de l'authentification
- Le SSO Zitadel (OIDC flow complet)
- Les emails via Resend API (6 templates HTML)
- Le dashboard administrateur (agregation de donnees)
- Le scheduler de collecte S3 (statistiques horaires)
- La facturation OVH (API billing)
Framework : FastAPI Port : 8001 Base de donnees : Partage PostgreSQL avec le backend Go
3. WebGUI Frontend (React 18)
Le frontend React fournit l'interface utilisateur complete :
- 19 pages principales + 5 pages admin + 8 pages publiques
- Chiffrement cote client via Web Crypto API
- Gestion des fichiers et dossiers (drag & drop, batch operations)
- Dashboard superadmin avec metriques S3 et facturation
- Share links publics avec consent Loi 25
- Transferts securises
- SSO et MFA
Framework : React 18 avec React Router UI : shadcn/ui (Tailwind CSS) Build : ~530 kB (production)
4. Infrastructure de donnees
| Service | Role | Details |
|---|---|---|
| PostgreSQL | Base relationnelle principale | 26 migrations, 45+ tables, schemas partages Go/Python |
| Redis | Cache et rate limiting | Rate limiting distribue via Lua script atomique, fallback in-memory |
| S3 OVH | Stockage objets | Buckets dedies par organisation, multi-region (BHS/GRA) |
| OVH KMS | Gestion des cles | Protection des cles RSA-4096 privees des organisations |
| ClamAV | Antivirus | Scan optionnel des fichiers uploades |