Initial vault setup
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
---
|
||||
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é)
|
||||
|
||||
```yaml
|
||||
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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
- [Site officiel](https://diskover.net)
|
||||
- [Documentation](https://docs.diskoverdata.com)
|
||||
- [GitHub diskoverdata/diskover-community](https://github.com/diskoverdata/diskover-community)
|
||||
- [Article XDA : Diskover self-hosted file indexer](https://www.xda-developers.com/diskover-free-self-hosted-file-indexer/)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-file-management]] — Catégorie File Management
|
||||
- [[recettes-docker-compose]] — Templates Docker Compose
|
||||
- [[securisation-home-lab]] — Sécurité
|
||||
- [[traefik]] — Reverse proxy
|
||||
Reference in New Issue
Block a user