Black Lives Matter. Please consider donating to Black Girls Code today.

Do I need a reverse proxy (Nginx) in front of my Dash app?

I’m developing a Dash app that makes requests to two Flask-RESTful apps to get data and populate different tables and graphs. I’m planning to deploy these apps on a DigitalOcean droplet where they will be put in Docker containers. I read that the Flask built-in server has some limitations and that it’s suitable for development purposes mainly. My user base is not large (10 people at most) but I wonder if I would run into some problems when my app needs to handle multiple requests. Do I need to use a reverse proxy such as Nginx in front of my Dash app and why?

I read that the Flask built-in server has some limitations and that it’s suitable for development purposes mainly.

That is common misconception with flask, it means that calling server.run which is called by dash.run_server is not optimized for production app and you should use a wsgi server instead. You can run the flask server with gunicorn or waitress for a production wsgi server.

Please refer to http://flask.pocoo.org/docs/1.0/deploying/ for deployment options. The Self-hosted options can be built on a docker container.