Hosting streamlit on Heroku

Please guys, could you give some tips to publish a simple script in python using heroku ?
A tutorial ?

Hi @silviolima07

I found the video below via awesome-streamlit.org

2 Likes

Have a look at this gist:


all you need are 3 files:

  • Your python code
  • a Pipefile or a requirements.txt file
  • a Procfile
3 Likes

I see most of the comments are from 2019, but if anyone trying to deploy on Heroku today make sure your requirements.txt file has streamlit version code. If not specified it keeps showing “Connecting to streamlit” when viewed through the link. Maybe a bug in the latest version.

  1. requirements.txt
    streamlit==0.49.0

  2. setup.sh
    mkdir -p ~/.streamlit/
    echo "
    [server]\n
    headless = true\n
    enableCORS=false\n
    port = $PORT\n
    \n
    " > ~/.streamlit/config.toml

3.Procfile
web: sh setup.sh && streamlit run your_app.py

This worked like charm.

3 Likes

Works perfectly thankyou for this

2020-07-14T15:27:22.074324+00:00 heroku[web.1]: Starting process with command sh setup.sh && streamlit run app.py
2020-07-14T15:27:29.434867+00:00 heroku[web.1]: Process exited with status 134
2020-07-14T15:27:29.475031+00:00 heroku[web.1]: State changed from starting to crashed
2020-07-14T15:27:29.343638+00:00 app[web.1]:
2020-07-14T15:27:29.343681+00:00 app[web.1]: Telemetry: As an open source project, we collect usage statistics.
2020-07-14T15:27:29.343682+00:00 app[web.1]: We cannot see and do not store information contained in Streamlit apps.
2020-07-14T15:27:29.343682+00:00 app[web.1]:
2020-07-14T15:27:29.343682+00:00 app[web.1]: If you’d like to opt out, add the following to ~/.streamlit/config.toml,
2020-07-14T15:27:29.343687+00:00 app[web.1]: creating that file if necessary:
2020-07-14T15:27:29.343687+00:00 app[web.1]:
2020-07-14T15:27:29.343688+00:00 app[web.1]: [browser]
2020-07-14T15:27:29.343692+00:00 app[web.1]: gatherUsageStats = false
2020-07-14T15:27:29.343693+00:00 app[web.1]:
2020-07-14T15:27:29.369552+00:00 app[web.1]: libgcc_s.so.1 must be installed for pthread_cancel to work
2020-07-14T15:27:36.000000+00:00 app[api]: Build succeeded

@Nikhil_Agarwal , kindly help to me solve the above issue as you mentioned followed same steps but giving same application error.

Please follow this ( ignore the Docker portion). It will work as I’ve tested it

Thank you, Nikhil! Your post and this tutorial helped get my app ready to go :slight_smile:

Hello! I am using streamlit==0.67.1, and I keep seeing this error message '‘Connection failed with status 0.’. Even when running ‘streamlit hello’ I see this error. I’m not sure how to troubleshoot this, could someone assist? I’m using a virtual machine and I wasn’t seeing this error 3 weeks ago, but it has been happening for 2 weeks now.

@anasalu I had the same problem. Try Nikhil’s solution above with the Streamlit version set to 0.49.0 and edit the setup.sh file to exlude any new line characters (\n). Also, if you copy the code, be sure that the quotation characters an non-directional (should be the default of your keyboard, so you might just have to retype those). If this doesn’t work, try including a runtime.txt file in your directory specifying the version of Python. My Streamlit app is working with python-3.7.5 in my runtime.txt file.

Hi @cgusb, welcome to the Streamlit community!

While an okay thing to do for troubleshooting, there’s no reason why downgrading to 20 versions of Streamlit ago should be necessary to deploy apps on Heroku. Plenty of people on the forum are able to deploy with current versions of Streamlit. Like you also say, the issue is usually around newline or other characters that mess up the deployment process.

Best,
Randy

1 Like

I created this project some time ago, it guides you on how to deploy Streamlit on Heroku and optionally add a Nginx proxy to allow for simple authentication.

2 Likes

Hi Randy, you’re absolutely right. I upgraded back to the current version (Streamlit 0.67.1) and my app deployed successfully. Thank you for pointing that out! I should have tried to update again once I got things working.

1 Like

I have compiled some resources to deploy streamlit to heroku (its without the nginx proxy though)

Hi everyone,
I am trying to deploy my app on Heroku but I am unable to figure it out.

Can anyone pls resolve.
Here is the logs:

Regards,
Akash

Have you looked at the several tips in this thread? And this guide?

Also post your Procfile and setup.sh please?

1 Like

Thanks
Yes I have read several tips…tried using downgraded version of streamlit also.
Still not working…the app gets deployed but is showing error after that…
Procfile: web: sh setup && streamlit run solar_app.py

Setup.sh:
mkdir -p ~/.streamlit/

echo "
[server]\n
headless = true\n
port = $PORT\n
enableCORS = false\n
\n
" > ~/.streamlit/config.toml

Is the issue solved ?

No, still same. Can you help pls

Hi @Akash743, please use this youtube tutorial, hope it will help