Host a private Streamlit app for clients
Share Streamlit, Gradio or FastAPI apps with specific people behind a sign-in gate, with more than one private app.
The problem
Streamlit Community Cloud is free and easy, but it allows one private app per workspace (as of November 2026). For a second client dashboard you need another host, and most hosts leave sign-in to you.
What Stedhold does
- Detects Streamlit from requirements.txt or a streamlit_app.py file and starts it with streamlit run.
- Installs dependencies once, from prebuilt wheels, when you import the app.
- Puts an email sign-in in front of every app. Each app can be shared with different people.
- Sleeps the app after 15 minutes without visitors so you are not paying for idle dashboards.
Check your requirements.txt
- One package per line, version pins allowed: streamlit==1.40.0
- No git+https lines or local paths; they are ignored.
- Every package needs a prebuilt wheel for Python 3.12 on Linux. Popular packages (pandas, numpy, plotly, scikit-learn) have them.
The main file is found automatically (streamlit_app.py, app.py, main.py and similar).
Knowing who is looking
Your app receives the signed-in person's email in the X-Stedhold-User-Email header. In Streamlit, read it with st.context.headers to show each client only their own data.