Hosting streamlit on Heroku

OK I was able to make it work by disabling CORS in setup.sh :

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

Awesome! I didnā€™t have time to try the new version since I originally posted but thatā€™s good to know.

@Julien_Almarcha and @Alexandre_Domingues: Please note that since 0.48 these config options can now be specified directly on the command line e.g.:

streamlit run --server.enableCORS false my_script.py

Yay! :partying_face:

1 Like

Thx, good to know!

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.

4 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