Deployment of Many Streamlit apps

I would love to use streamlit for one of our use cases. Cloud options are not allowed for corporate IT requirements.

I will have many single-page apps that will run very infrequently by many different users on many machines around our factory. The rough scale is 40 users infrequently looking at 1 or 2 of 100+ visualizations daily. I would expect changes to these scripts on a weekly basis.

I want very low deployment friction. Having every script run on its own port is just not an option.

Installing and maintaining a streamlit environment on viewer/user machines is not viable/scalable.

Would this work (or is there a better similar solution)?

  1. All streamlet apps live in a folder/folders on the server.
  2. A single streamlit app will run on our server that serves up the table of contents app.
  3. An index/table-of-contents file allows users to pick from one of the many apps using the new multi-page app functionality.
  4. Index file is auto-generated when OS detects file changes (I can write this no-problem).

This way, deployment is as simple as copying a file to a folder. But I’m concerned about:

  1. Will we need to restart the streamlit instance if the index changes?
  2. If a streamlit app is changed while it is being viewed, what happens?

As an aside, I can imagine autogenerating some of these apps using configuration data from our MES.

For what it is worth, I have verified that streamlit detects scripts that are running and have changed on the server. They give a nice prompt offering a reload.

Hey @Chuck_Bass,

You can set the config value “runOnSave” to true to ensure that the script will automatically rerun if the file is modified.