📝 Note
pro/mjf dashboard/architecture
Architecture — MJF-Dashboard
Liens : Decisions · Journal
Vue d’ensemble
Dashboard de monitoring read-only. Chaque connecteur interroge sa source, met en cache les données, et expose des DataFrames Pandas à l’app Streamlit.
Composants principaux
| Composant | Rôle |
|---|---|
app.py | Point d’entrée Streamlit, routing des vues |
connectors/s3.py | Client boto3 → Pure Storage S3 |
connectors/catdv.py | Client REST → CatDV API v11 |
connectors/flashblade.py | Client REST → FlashBlade API v2 |
connectors/emby.py | Client HTTP → Emby API |
views/overview.py | KPIs globaux cross-sources |
views/storage.py | Métriques S3 (buckets, extensions, top objets) |
views/collection.py | Clips CatDV, coverage proxy/thumbnail |
views/encoding.py | Couverture H265 Emby vs CatDV |
check_*.py | Scripts utilitaires de contrôle croisé |
Flux de données
Pure S3 ──────────────────────┐
CatDV REST API ────────────── connectors/*.py ──> cache (.cache/) ──> views/*.py ──> Streamlit UI
FlashBlade REST API ───────────┤
Emby HTTP API ────────────────┘
Dépendances externes
- Pure Storage FlashBlade : S3 (boto3) + filesystem (REST v2)
- CatDV : REST API v11, auth basic ou token
- Emby : HTTP API, clé API
Schémas
Voir README.md du repo pour le schéma ASCII complet.
Déploiement
- Local :
streamlit run app.py - Docker :
docker compose up -d→ port 8501 - Kubernetes :
kubectl apply -k k8s/