Mayan utilise fusepy pour exposer ses cabinets et index comme des répertoires réels dans le système de fichiers. La classe MirrorFilesystem implémente l'interface FUSE :
Dans .env, configure les noms :
MAYAN_MIRROR_INDEX_NAME=mon-index # slug de l'index
MAYAN_MIRROR_CABINET_NAME=mon-cabinet # label du cabinet
Ajoute les profils dans COMPOSE_PROFILES :
COMPOSE_PROFILES=all_in_one,postgresql,rabbitmq,redis,index_mirror,cabinet_mirror
Le service Docker reçoit automatiquement cap_add: [SYS_ADMIN] et le device /dev/fuse — nécessaires pour que FUSE fonctionne dans un container.
sudo apt install fuse
# Activer user_allow_other (pour --allow-other)
echo "user_allow_other" | sudo tee -a /etc/fuse.conf
# Créer le point de montage
mkdir -p /mnt/index-factures
# Monter (avec le virtualenv activé)
./manage.py mirroring_mount_index \
mon-index-slug \
/mnt/index-factures \
--allow-other \
--background
mkdir -p /mnt/cabinet-clients
./manage.py mirroring_mount_cabinet \
"Clients" \
/mnt/cabinet-clients \
--allow-other \
--background
Pour un cabinet imbriqué, utilise --delimiter :
./manage.py mirroring_mount_cabinet \
"Clients,Actifs" \
/mnt/cabinet-clients-actifs \
--delimiter "," \
--allow-other \
--background
| Option | Description |
|---|---|
--allow-other |
Permet aux autres utilisateurs (dont root) d'accéder au montage |
--allow-root |
Accès root uniquement (alternatif à --allow-other) |
--background |
Lance en daemon (détaché du terminal) |
--log-level |
Niveau de log FUSE (DEBUG, INFO, etc.) |
--delimiter |
Séparateur pour cabinets imbriqués (cabinet seulement) |
fusermount -u /mnt/index-factures
Le montage est en lecture seule — on peut lire et copier les fichiers, mais pas en écrire. Le contenu servi est toujours le dernier fichier (file_latest) du document. Si un document a plusieurs fichiers versions, seul le plus récent est visible.