Dynamic apps and uwsgi

Hi @will, thanks for checking out Streamlit, and for the kind words!

A bit more context on the Streamlit web architecture:

Streamlit serves data over HTTP and WebSockets, using a single (configurable) port. If you have multiple Streamlit apps running on the same host, you could configure each one to use a different port, and then have your reverse proxy route HTTP/WebSocket data to the proper Streamlit app.

Streamlit uses the Tornado framework under the hood, which does not support being run in a WSGI container:

The reverse is not supported; the Tornado Application and RequestHandler classes are designed for use with the Tornado HTTPServer and cannot be used in a generic WSGI container.

But as @monchier notes, you can certainly configure Nginx as a reverse proxy for multiple Streamlits running on the same host. The Tornado docs have more details about running a Tornado app from behind nginx here: Running and deploying — Tornado 6.4 documentation