La plus grosse partie du stockage de mon serveur est utilisée pour la photothèque familiale. J'en suis à 80 Go (pour 20 ans), ce qui n'est rien comparé aux usages d'aujourd'hui. Un utilisateur mobile lambda avec une présence sur les réseaux sociaux en balance probablement autant mensuellement sur les serveurs de Google ou Apple. Je reste dans un usage "album de famille" avec des photos pour les évènements de la vie.
Néanmoins stocker tout cela en ligne en gardant la maîtrise technique, sans céder aux sirènes des offres gratuites (du moins monétairement parlant), demande de l'effort :
Seafile a son propre système de stockage. On ne peut pas simplement partager un dossier avec la galerie photo. C'est un problème qui vient de trouver une bonne solution mais avant cela je suis passé par deux étapes intermédiaires :
J'avais au moins récupéré la moitié de mon espace disque mais avoir à nouveau une installation hybride (mi-docker, mi-services sur la machine hôte), devoir réinstaller un NginX en reverse proxy après mes efforts pour maîtriser Traefik et avoir une installation full-container, ce n'était vraiment pas satisfaisante. Néanmoins je suis resté dans cette situation quelques mois.
J'ai enfin trouvé le temps (et l'envie) de me pencher sur le sujet et expérimenter le support de FUSE entre deux containers. FUSE demande des capacité de la machine hôte, le point de montage sera forcément sur l'hôte (attention à la sécurité) et partagé entre les deux containers (Seafile et la galerie photo dans mon cas).
Le bout de docker-compose de Seafile :
volumes:
- type: bind
source: ${ROOT_INSTALL}/data/seafile-fuse
target: /seafile-fuse
bind:
propagation: rshared
privileged: true
cap_add:
- SYS_ADMIN
Et celui de Photoview :
volumes:
- type: bind
source: ${ROOT_INSTALL}/data/seafile-fuse
target: /photos
bind:
propagation: rslave
privileged: true
cap_add:
- SYS_ADMIN
Je suis revenu à un serveur entièrement conteneurisé. Les sources complets sont sur mon GitHub.