Files
wiki/Catalogue-Self-Hosted/apps/app-diskover.md
T
2026-06-09 18:40:21 +02:00

5.2 KiB


title: Diskover created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, file-management, python, search, indexer, elasticsearch] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=file-management, https://github.com/diskoverdata/diskover-community]

Diskover 🔎

Indexeur de fichiers open source écrit en Python qui crawle votre stockage (NAS, SAN, local) et expose une interface web de recherche/visualisation propulsée par Elasticsearch.

📋 Informations Générales

Champ Valeur
Site web https://diskover.net
GitHub https://github.com/diskoverdata/diskover-community
License Apache-2.0
Langage Python
Étoiles GitHub 184
Dernière MAJ 2024
Catégorie cat-file-management

📝 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

Pages Liées