A Procfile tells [[Heroku]] how to actually run your app. The Procfile is run when the app is initialized in each session. The file must be called `Procfile` (no file extension), be a simple text file, and stored in the root directory of the app. To run your app locally on Windows, you can create another Procfile named `Procfile.windows` and include the required contents to run the app on your local Windows machine. ## Example Procfiles ### Dash For multi-page [[dash]] apps, the Procfile should be specified as below (but note the caveats below). ```txt title:Procfile web: gunicorn index:server ``` where `index` refers to the `.py` file that contains the line `app.run_server()`. This will work with three important caveats: - In the file `app.py`, include the line ```python title: app.py import dash from flask import Flask server = Flask(__name__) app = dash.Dash(__name__, server=server) ``` - In the file `index.py` include the line ```python title: index.py from app import server ``` - Make sure that `gunicorn` is included in the [[requirements.txt]] file (even though it may not be in your local[[ virtual environment]]). See more [here](). ### Streamlit For [[streamlit]] apps, the Procfile should be specified as below. ```txt title: Procfile sh setup.sh && streamlit run <my_app.py> ```