4

I'm trying to do the same thing as in Serving interactive bokeh figure on heroku. But even after reading the answer, I can't figure it out.

I've cloned the bokeh git repository and downloaded the data. Then, by executing the command

bokeh serve --show movies

(the python file is located in the movies subdirectory) in git bash, I can view the app locally on port 5006.

But what I really want is to deploy the app to the internet. I'm trying to use heroku to do this. This is a non-flask, non-django app.

For the procfile, I have

web: bokeh serve --port=$PORT --host=movies-rohan.herokuapp.com --host=* --address=0.0.0.0 --use-xheaders movies.py

Two questions about this:

1) Should I specify the port number, or leave it as $PORT?

2) Should I use "--allow-websocket-origin=" instead of "--host"? Does it make a difference?

Then there's the requirements.txt file. As I understand, this lists the dependencies for the app. But I don't know how to format this. Can anyone, please, provide a template for a requirements.txt file? As a sample requirements.txt, does this seem reasonable:

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true

[packages]
bokeh = "*"

[requires]
python_version = "3.6"

Besides the python file, the procfile, and requirements.txt, is anything else necessary? What about a pipfile, pipfile.lock, or procfile.windows? My understanding is that a pipfile is an alternative to requirements.txt.

Rohan Kadakia
  • 334
  • 2
  • 12

1 Answers1

0

You don't have to define the port number.

I think your Procfile should contain this command : web: bokeh serve --port=$PORT --allow-websocket-origin=movies-rohan.herokuapp.com --address=0.0.0.0 --use-xheaders movies I am assuming your movies.py file is in movies folder

Nimesh Kumar
  • 373
  • 1
  • 5
  • 12