SecuAAS Docs
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

ServiceRoleDetails
PostgreSQLBase relationnelle principale26 migrations, 45+ tables, schemas partages Go/Python
RedisCache et rate limitingRate limiting distribue via Lua script atomique, fallback in-memory
S3 OVHStockage objetsBuckets dedies par organisation, multi-region (BHS/GRA)
OVH KMSGestion des clesProtection des cles RSA-4096 privees des organisations
ClamAVAntivirusScan optionnel des fichiers uploades

On this page