Stockage de fichiers
auto-hébergé
FileVault est une alternative self-hosted aux solutions cloud propriétaires. Gardez le contrôle total sur vos données avec une architecture DDD professionnelle.
Architecture DDD rigoureuse
Structuré en 3 couches distinctes pour une séparation claire des responsabilités
Domain Layer
Cœur Métier
Logique métier pure, totalement framework-indépendant. Aucune dépendance à Laravel.
- Entités : File, FileVersion, Share
- Value Objects : FileName, FileSize, MimeType
- Domain Events : FileUploaded, FileDeleted
- Interfaces de repositories (ports)
Application Layer
Cas d'usage
Architecture CQRS pour séparer les opérations de lecture et d'écriture.
- Commands : UploadFile, DeleteFile, CreateShare
- Queries : GetFileVersion, AccessShare
- Handlers : Orchestration des opérations
- DTOs : Transfert de données entre couches
Infrastructure Layer
Technique
Implémentations concrètes des ports avec pattern Ports & Adapters.
- Repositories Eloquent
- Adaptateurs de stockage flexibles
- Contrôleurs REST API
- Event Listeners Laravel
Fonctionnalités principales
Tout ce dont vous avez besoin pour gérer vos fichiers en toute sécurité
Upload sécurisé
Validation stricte des fichiers avec contrôle du nom, taille, type MIME et hash SHA-256.
Versionnement automatique
Historique complet de vos fichiers avec récupération de versions spécifiques.
Partage avec liens
Création de liens de partage avec token unique et permissions configurables.
Expiration optionnelle
Définissez une date d'expiration pour vos partages selon vos besoins.
Détection de doublons
Identification automatique des fichiers dupliqués via hash SHA-256.
Contrôle d'accès
Gestion fine des permissions avec policies et authentification sécurisée.
Stockage flexible
Support multi-backend via le pattern Ports & Adapters. Changez de backend par simple configuration.
- Pattern Ports & Adapters
- Configuration simple
- Aucun changement de code
Stockage Local
Idéal pour le développement et les petites installations.
S3 / MinIO
Compatible AWS S3 pour production avec MinIO en local.
Stack technique
Technologies modernes et éprouvées pour une solution robuste
Backend
- PHP 8.3+Typage strict
- Laravel 13Framework web
- MariaDB 11.2Base de données
- Redis 7Cache & Queues
Stockage
- MinIOS3 local
- AWS S3Production
- Ports & AdaptersAbstraction
DevOps
- DockerConteneurisation
- Docker ComposeOrchestration
- NginxReverse proxy
- PHP-FPMProcess manager
API REST
Endpoints disponibles
/api/files/api/files/{id}/api/files/{id}/versions/{version?}/api/files/{id}/shares/api/shares/{token}Cas d'usage
FileVault s'adapte à différents contextes et besoins
Entreprises
Solution self-hosted pour un contrôle total sur les données sensibles de l'entreprise.
Équipes
Collaboration sécurisée avec gestion fine des permissions et partages contrôlés.
Versionnement
Projets nécessitant un historique complet et traçabilité des modifications.
Apprentissage
Exemple concret de DDD et architecture propre pour développeurs.
Base SaaS
Point de départ solide pour construire un service de gestion documentaire.
</>Pour Développeurs
- Code organisé, maintenable et testable
- Séparation claire des responsabilités
- Indépendance du framework pour la logique métier
- Tests sans dépendances infrastructure
- Documentation via ADRs
👤Pour Utilisateurs
- Auto-hébergement : contrôle total
- Flexibilité : local ou cloud
- Versionnement complet
- Partage sécurisé avec expiration
- Performance avec Redis
Infrastructure complète
Stack Docker Compose complète pour un déploiement en un clic
Nginx
Reverse proxy
PHP 8.3
Application
MariaDB
Base de données
Redis
Cache & Queues
MinIO
Stockage S3