Welcome to the Streamlit community and thanks for your thoughtful question!
Deploying Streamlit on Windows Server is definitely possible, and many users have used NSSM (the Non-Sucking Service Manager) to run Streamlit as a Windows service for production use. While NSSM is no longer maintained, it still works for many, but alternatives like Windows Task Scheduler or other service wrappers can also be used. For 50ā100 concurrent users, the main considerations are server resources (CPU/RAM), network/firewall configuration, and ensuring Streamlit is run in headless mode with proper dependency management.
For step-by-step guidance, check out this community deployment guide and the official deployment tutorials. Key tips include: (1) run your app with streamlit run app.py in a virtual environment, (2) use a service manager (NSSM, Task Scheduler, or similar) to keep the app running, (3) open the necessary ports in Windows Firewall, and (4) monitor resource usage to ensure your server can handle the expected load. Streamlit is multi-threaded and can handle many users if the server is sized appropriately, but always test under load to confirm performance. For more on scaling and production best practices, see this discussion.
Sources: