Intermédiaire

Déploiement sur Streamlit Community Cloud

Prérequis

Pour déployer sur Streamlit Community Cloud, il faut :

  • Un compte GitHub (gratuit)
  • Un compte Streamlit Community Cloud (gratuit, inscription sur share.streamlit.io)
  • Le projet poussé sur un dépôt GitHub (public ou privé)

Ce que Streamlit Community Cloud fait

Streamlit Community Cloud héberge gratuitement des applications Streamlit. Le service lit le code depuis GitHub, installe les dépendances listées dans requirements.txt, et expose l'application sur une URL publique du type https://monapp.streamlit.app.

À chaque push sur la branche principale, l'application est automatiquement redéployée.

Limitation importante

Streamlit Community Cloud héberge le frontend Streamlit, pas le backend Flask. Pour un projet complet (Flask + Streamlit), il faut déployer Flask séparément — ou adapter l'application pour que Streamlit appelle directement le repository sans passer par HTTP (retour au mode séances 2-4).

Pour ce cours, on déploie le dashboard Streamlit seul, en mode appel direct au repository (sans Flask).

Préparer le projet pour le déploiement

1. S'assurer que requirements.txt est à jour

bash
pip freeze > requirements.txt

Vérifiez que toutes les dépendances nécessaires sont listées : streamlit, plotly, pandas, requests (si utilisé).

2. Configurer les secrets

Sur Streamlit Community Cloud, les secrets sont définis dans l'interface web (pas via un fichier commité). La structure est la même que le fichier secrets.toml local :

toml
# Défini dans l'interface Streamlit Community Cloud
API_BASE_URL = "https://mon-api.example.com"
API_KEY = "ma-cle-production"

3. Vérifier le .gitignore

Assurez-vous que .gitignore exclut bien les fichiers sensibles avant de pousser :

bash
git status  # vérifier qu'aucun fichier secret n'est listé

Que fait Streamlit Community Cloud lors du déploiement ?

Déployer

Étape 1 — Pousser le projet sur GitHub

bash
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/username/mon-dashboard.git
git push -u origin main

Étape 2 — Connecter Streamlit Community Cloud à GitHub

Rendez-vous sur share.streamlit.io, cliquez sur "New app", puis autorisez l'accès au dépôt GitHub.

Étape 3 — Configurer le déploiement

Dans l'interface de configuration :

ChampValeur
Repositoryusername/mon-dashboard
Branchmain
Main file pathapp.py

Étape 4 — Ajouter les secrets

Dans "Advanced settings" puis "Secrets", collez le contenu au format TOML. Utilisez les valeurs de production, pas celles de développement.

toml
API_BASE_URL = "https://mon-api-production.example.com"
API_KEY = "cle-production-secrete"

Accès aux secrets en production

Les secrets définis dans l'interface Streamlit Community Cloud sont accessibles dans le code via st.secrets["CLÉ"], exactement comme avec le fichier .streamlit/secrets.toml en local.

Étape 5 — Déployer

Cliquez sur "Deploy". Streamlit installe les dépendances et démarre l'application. L'URL publique apparaît une fois le déploiement terminé.

Redéploiement automatique

À chaque git push sur la branche main, Streamlit Community Cloud redéploie automatiquement l'application :

bash
# Modifier le code localement
# Tester avec streamlit run app.py
git add .
git commit -m "Amélioration du dashboard"
git push
# L'application en ligne est mise à jour automatiquement

Cycle de développement

Le workflow reste le même qu'en développement local : modifier, tester, commiter, pousser. Le redéploiement est déclenché automatiquement par le lien entre GitHub et Streamlit Community Cloud.

Qu'est-ce qui déclenche un redéploiement automatique sur Streamlit Community Cloud ?

À retenir

Points clés

  • Streamlit Community Cloud héberge le dashboard Streamlit — pas le backend Flask
  • Le déploiement nécessite un dépôt GitHub et un requirements.txt à jour
  • Les secrets sont définis dans l'interface web, pas dans un fichier commité
  • Chaque git push sur main déclenche un redéploiement automatique
  • L'URL publique est du type https://monapp.streamlit.app

Ressources