Retour aux outils
AutreIntermédiaireOpen sourceAuto-hébergeablev2.3.5

Diskover

Indexeur de fichiers open source écrit en Python qui crawle votre stockage (NAS, SAN, local) et expo

MAJ 2026-06-14
Diskover
Code source★ 1 794

Diskover s'attaque à un problème que tous les sysadmins connaissent : « Où est passé ce fichier de 2019 ? ». Au lieu de dépendre d'un `find` récursif ou d'une arborescence Windows, Diskover crawle en profondeur n'importe quel montage (NFS, SMB, local, Ceph, S3) et indexe métadonnées + noms dans Elas

Description

Diskover s'attaque à un problème que tous les sysadmins connaissent : « Où est passé ce fichier de 2019 ? ». Au lieu de dépendre d'un find récursif ou d'une arborescence Windows, Diskover crawle en profondeur n'importe quel montage (NFS, SMB, local, Ceph, S3) et indexe métadonnées + noms dans Elasticsearch.

L'UI web permet de naviguer dans une vue arborescente façon « sunburst », de filtrer par taille/date/type/owner/extension, de détecter les doublons, de repérer les fichiers non accédés depuis N jours (utile pour purger), et d'identifier les gros orphelins. C'est l'outil de référence pour les datarooms, archives, NAS de plusieurs To, ou les workflows de conformité RGPD (cartographie des données).

L'indexation est incrémentale : un cron relance le crawler régulièrement et ne retraitent que les fichiers modifiés. Diskover existe en édition Community (gratuite, open source) et Pro (commerciale, avec support et plugins).

Installation

Option 1 : Docker Compose (recommandé)

version: '3.8'
services:
  diskover:
    image: diskover/diskover-community:latest
    container_name: diskover
    restart: unless-stopped
    ports:
      - "8110:80"
    environment:
      - ES_HOST=elasticsearch
      - ES_PORT=9200
      - ES_INDEX=diskover
    volumes:
      - /mnt/nas:/mnt/nas:ro        # Adapter au stockage à indexer
      - diskover-config:/opt/diskover/config
    depends_on:
      - elasticsearch
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.diskover.rule=Host(`diskover.example.com`)"
      - "traefik.http.routers.diskover.entrypoints=websecure"
      - "traefik.http.routers.diskover.tls.certresolver=letsencrypt"
      - "traefik.http.services.diskover.loadbalancer.server.port=80"
    networks:
      - proxy

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.20
    container_name: diskover-elasticsearch
    restart: unless-stopped
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms2g -Xmx2g
      - xpack.security.enabled=false
    volumes:
      - es-data:/usr/share/elasticsearch/data
    networks:
      - proxy

volumes:
  diskover-config:
  es-data:

networks:
  proxy:
    external: true

Option 2 : Installation manuelle

git clone https://github.com/diskoverdata/diskover-community.git
cd diskover-community
pip install -r requirements.txt
# Configurer Elasticsearch externe, éditer configs/
python diskover.py /mnt/nas

Configuration

  • Indexer plusieurs sources : ajouter des crons distincts par montage.
  • Politique d'index : configurer Elasticsearch pour la rotation (ILM) et limiter la taille.
  • Filtres : exclure .tmp, node_modules, __pycache__ via config.py.
  • Doublons : activer le hash SHA256 pour identifier les fichiers identiques.
  • Lancer le crawler en cron quotidien pour une indexation incrémentale.

Alternatives

Open Source

  • [[app-filebrowser]] — File manager avec search limité
  • [[app-anythingllm]] — Pas la même cible (RAG docs)
  • Sonarr / Radarr — Plutôt orienté médias
  • Elasticsearch + lsplugin — DIY
  • MaidSafe / Recoll — Indexation desktop

Propriétaires

  • WinDirStat (desktop, pas serveur)
  • TreeSize (desktop)
  • Cohesity DataPlatform
  • NetApp OnCommand Insight

Sécurité

  • Elasticsearch sans exposition publique : ne pas ouvrir le port 9200.
  • Activer xpack.security + auth sur Elasticsearch en production.
  • Diskover Community ne supporte pas l'auth native → mettre derrière un reverse proxy authentifié (Authelia, Authentik).
  • HTTPS obligatoire sur l'UI.
  • Limiter l'accès au dossier monté (:ro en Docker si lecture seule suffit).
  • Les métadonnées indexées peuvent être sensibles (noms de fichiers clients) → RGPD.

Ressources