Retour aux projets
· juillet 2026

Perso Hub & Système Hub

Deux tableaux de bord personnels consolidant 6 applications en 2 process Streamlit (habitudes, tâches, watchlist films/séries, monitoring NAS, monitoring PC, tri automatique de médias) via st.navigation. Design system unifié « cockpit » (thème sombre, composants réutilisables), historique de métriques SQLite, PWA installable, actions Docker sécurisées.

Perso Hub & Système Hub

Contexte

6 applications personnelles Streamlit indépendantes (habitudes, tâches, watchlist films/séries, monitoring NAS, monitoring PC, tri automatique de médias), chacune sur son propre port et sans cohérence visuelle entre elles, devenues difficiles à maintenir et fastidieuses à naviguer au quotidien.

Approche

Consolidation en 2 tableaux de bord (« Perso Hub » et « Système Hub ») via st.navigation : un process unique par hub, avec menu latéral, plutôt que 6 ports séparés. Design system partagé développé de zéro (palette, typographies, composants réutilisables) appliqué uniformément aux deux hubs et à toutes les pages. PWA installable, historique de métriques système en base SQLite, et actions d'administration (redémarrage de conteneurs Docker, consultation de logs) directement depuis l'interface.

Défis techniques

Les applications fusionnées partageaient le même état de session Streamlit et réutilisaient des noms de clés génériques, provoquant des collisions entre pages (une page écrasait les données d'une autre) — résolu par un mécanisme d'isolation qui sauvegarde et restaure un espace de noms dédié à chaque changement de page. Plusieurs comportements internes du framework (pensés pour une app isolée, pas pour une fusion en un seul process) ont dû être contournés pour obtenir un rendu uniforme et responsive sur mobile.

Résultat

Passage de 6 ports/process à 2, interface cohérente et installable en PWA, testée sur desktop et mobile sans régression, données historiques de chaque application préservées lors de la bascule.

Technologies Python Streamlit Docker SQLite Plotly