How to deploy the streamlit within a private cloud part of the org

Am developing internal dashboard app for a client

And client is specific to host the app within their infra

How to achieve this? any pointers please?

Thanks in advance

If your client wants to host the Streamlit app within their own infrastructure (not on Streamlit Cloud), you can deploy it like any standard Python web app. Here are the main options:

1. Host on a VM or internal server

  • Install Python and dependencies (streamlit, etc.)

  • Run the app with streamlit run app.py

  • Use nohup, screen, or systemd to keep it running

  • Optionally reverse-proxy with Nginx or Apache for HTTPS and domain routing

2. Dockerize the app

  • Create a Dockerfile and run it inside their infra (VM, Kubernetes, etc.)

  • Example Dockerfile:

FROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]

3. Deploy on internal cloud (AWS, Azure, GCP)

  • Use EC2, App Engine, or Azure Web Apps

  • Make sure firewall rules allow internal access only

4. Authentication & Access Control

  • Use Streamlit’s built-in auth (if using Streamlit Cloud)

  • Or wrap the app with reverse proxy + basic auth or VPN access for internal users

I have been building an open source project which makes deploying multiple Streamlit apps within your infrastructure easy. Internal Tools for Teams – OpenRun - App Deployment Simplified has the instructions for doing the complete configuration. High level steps are start Docker, install and configure OpenRun and then start a sync.

OpenRun provides GitOps (with GitHub/GitLab etc), SAML/OIDC auth with RBAC, scaling down to zero when idle, secrets management etc. Currently, OpenRun runs on top of Docker/Podman. Support for running on top of Kubernetes is being added.