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>
```