How can I deploy multiple Streamlit apps on different subdomains?
Problem
You want to deploy multiple Streamlit apps on different subdomains.
Solution
Like running your Streamlit app on more common ports such as 80, subdomains are handled by a web server like Apache or Nginx:
-
Set up a web server on a machine with a public IP address, then use a DNS server to point all desired subdomains to your webserver's IP address
-
Configure your web server to route requests for each subdomain to the different ports that your Streamlit apps are running on
For example, let’s say you had two Streamlit apps called Calvin
and Hobbes
. App Calvin
is running on port 8501. You set up app Hobbes
to run on port 8502. Your webserver would then be set up to "listen" for requests on subdomains calvin.somedomain.com
and hobbes.subdomain.com
, and route requests to port 8501 and 8502, respectively.
Check out these two tutorials for Apache2 and Nginx that deal with setting up a webserver to redirect subdomains to different ports:
Still have questions?
Our forums are full of helpful information and Streamlit experts.