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.

Sources

Checked November 2026.

Request access

Host a private Streamlit app for clients · Stedhold