Deploying Streamlit with a Flask Model server on Heroku

Hello!
I wanted to deploy a streamlit web app on Heroku. So, the way I designed this is, there is a flask model server which when receives a post request gives the prediction as a response. So, I send it a post request from the streamlit app using the requests library. I am facing a lot of errors and confusion about hosting them on Heroku, especially with ports. Locally, I am able to do it comfortably as flask server runs on HTTP://localhost:5000 and the streamlit on HTTP://localhost:8501 and I am able to easily call HTTP://localhost:5000 and receive the predictions from the flask server. However, I am not able to deploy them on Heroku and I am constantly getting R10 errors.

I would be grateful for any help! Thanks!

1 Like

@Soma Did you try using Heroku CLI for deployment? For some reason it worked for me though i got R10 error while doing the deployment via heroku web interface

Yeah, I have been using Heroku CLI and I am able to deploy only streamlit apps on Heroku. However, I am getting confused in this case, where I have a flask server(which I call model server) which returns to me the model’s results upon a POST request and another streamlit server which is the main page or which is rendered to the browser. From streamlit, I make a POST request to the flask server to get my results. I am confused with the $PORT variable that heroku assigns, about how I should be using this port in this case and how my procfile should be.

2 Likes