# Migrating from Heroku: How to use Render to deploy a Python Dash app (Solution)

**URL:** <https://community.plotly.com/t/migrating-from-heroku-how-to-use-render-to-deploy-a-python-dash-app-solution/68048>\
**Category:** Dash Python\
**Created:** [September 17, 2022, 5:52pm UTC](https://community.plotly.com/t/migrating-from-heroku-how-to-use-render-to-deploy-a-python-dash-app-solution/68048 "2022-09-17T17:52:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![nicholas\_kluge](https://avatars.discourse-cdn.com/v4/letter/n/c4cdca/32.png) [@nicholas\_kluge](https://community.plotly.com/u/nicholas_kluge)\
**Post date:** [September 17, 2022, 5:52pm UTC](https://community.plotly.com/t/migrating-from-heroku-how-to-use-render-to-deploy-a-python-dash-app-solution/68048/1 "2022-09-17T17:52:27Z")

</div>

Hello World!

Like many other people who are having to migrate from Heroku to other providers (🥺), I found [Render’s servers](https://render.com/) as a free hosting option.

After brute-forcing a bunch, I found the setting to allow one to deploy a Python Dash app on [Render](https://render.com/).

My test application has this skeleton:

```auto
import dash
import dash_auth
import dash_bootstrap_components as dbc
from dash import dcc, html, Output, Input, State, dash_table

app = dash.Dash( __name__ ,
                meta_tags=[
                    {'name': 'viewport', 'content': 'width=device-width, initial-scale=1.0, maximum-scale=1.2, minimum-scale=0.5,'}],
                external_stylesheets=[dbc.themes.QUARTZ])

server = app.server
app.title = 'Title'
app.layout = dbc.Container(fluid=True, children=[])

@app.callback(
    [Output('some_stuff', 'children'),],
    [Input('stuff', 'value')])

def display_something(value):
    return value

if __name__ == ' __main__':
    app.run_server(debug=False)

```

The source code is in a private repository on Github (_assets folder, requirements.txt, gitignore, the whole thing_). So:

- I connect the repository to Render as a `Web Service`;
- use the `Build Command = pip install --upgrade pip setuptools wheel && pip install -r requirements.txt` (_I was getting errors because of the old pip version, so I am updating it_).
- and use the `Start Command` (and here is where I got so many failed deploys…) `gunicorn my_app:server`.

And It works!

Other information that can help someone else replicate this result.

- The name of the file containing the application is `my_app.py`.
- The version of python that I specify to Render is `3.8.0` (in Render, you specify this as an environmental variable during deployment, directly on Render’s dashboard).

Hope this helps people in a similar situation as me!

Thanks for your attention! 🤗

---

<div class="post-metadata">

**Author:** ![Pippo](https://avatars.discourse-cdn.com/v4/letter/p/ebca7d/32.png) [@Pippo](https://community.plotly.com/u/Pippo)\
**Post date:** [July 26, 2023, 12:06pm UTC](https://community.plotly.com/t/migrating-from-heroku-how-to-use-render-to-deploy-a-python-dash-app-solution/68048/2 "2023-07-26T12:06:11Z")

</div>

Hi and many thanks for your post!

I have just tried to deploy my Dash app to Render for the first time following your steps. However I receive the below error message during deployment, seemingly after installing the requirements - “bash: gunicorn: command not found”. The only difference to your steps was I am using Python 3.11.4.

 ![image](https://us1.discourse-cdn.com/flex024/uploads/plot/original/3X/6/8/68b8884c86ec0d6543280d9a02637eae676b2a3a.png)

Would you have any ideas?

Many thanks !

---

<div class="post-metadata">

**Author:** ![Pippo](https://avatars.discourse-cdn.com/v4/letter/p/ebca7d/32.png) [@Pippo](https://community.plotly.com/u/Pippo)\
**Post date:** [July 26, 2023, 12:33pm UTC](https://community.plotly.com/t/migrating-from-heroku-how-to-use-render-to-deploy-a-python-dash-app-solution/68048/3 "2023-07-26T12:33:12Z")

</div>

I managed to find the solution, I needed to add gunicorn to my requirements.txt:  
gunicorn==20.1.0

I didn’t need this line in my requirements to run my app locally or on pythonanywhere. Many thanks again for your very helpful post!
