Plotly’s Dash is a powerful tool to create analytical web apps entirely in python. By default, Dash apps run on localhost, but they can be hosted on any third party service that hosts python. Because Dash is built on top of Flask, the deployment procedure is virtually identical.
Our deployment documentation explains how to host an app on Heroku, but the instructions vary only slightly when brought to another service such as IBM Cloud.
It’s helpful to begin with a template and build your app from there. IBM’s getting started tutorial provides a flask template that can be very easily used with Dash.
Steps 1 through 3 of our Heroku deployment documentation also correspond to IBM Cloud. Make sure you change the procfile to our recommendation (so gunicorn is used to run your app,) and follow our instructions on using virtualenv and pip freeze
to create your requirements.txt
file.
There are two additional relevant files in the IBM template: setup.py
and manifest.yml
. These provide additional information about your app, such as its name and routing information. These should work as is to get a template running, but you may need to increase your memory in manifest.yml
IBM uses cloud foundry for the actual deployment rather than git, so once your app is ready, you will be using cf push
rather than git push
(outlined in step 4 of IBM’s documentation.)
With these slight tweaks, you should be able to get your dash app running on IBM Cloud. Once pushed, you should see your app in your dashboard, along with a link to view it live.
You can see one of our gallery apps repurposed for IBM Cloud here