Open Source & Self-Hosted

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.

DDD
Architecture
8.3+
PHP Version
Laravel 13
Framework
MIT
Licence
Domain-Driven Design

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
DDDCQRSPorts & AdaptersSOLIDDomain EventsRepository PatternValue ObjectsADRs

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

POST/api/files
DELETE/api/files/{id}
GET/api/files/{id}/versions/{version?}
POST/api/files/{id}/shares
GET/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
Docker Ready

Infrastructure complète

Stack Docker Compose complète pour un déploiement en un clic

docker-compose.yml

Nginx

Reverse proxy

PHP 8.3

Application

MariaDB

Base de données

Redis

Cache & Queues

MinIO

Stockage S3