# Deployment Options

While lightweight and easy to use, Flask’s built-in server is not suitable for production as it doesn’t scale well and by default serves only one request at a time. Some of the options available for properly running Flask in production are documented here.

If you want to deploy your Flask application to a WSGI server not listed here, look up the server documentation about how to use a WSGI app with it. Just remember that your `Flask` application object is the actual WSGI application.

## Hosted options

- Deploying Flask on Heroku
- Deploying Flask on OpenShift
- Deploying Flask on Webfaction
- Deploying Flask on Google App Engine
- Deploying Flask on AWS Elastic Beanstalk
- Sharing your Localhost Server with Localtunnel
- Deploying on Azure (IIS)
- Deploying on PythonAnywhere

## Self-hosted options

- mod_wsgi (Apache)
  - Installing mod_wsgi
  - Creating a .wsgi file
  - Configuring Apache
  - Troubleshooting
  - Support for Automatic Reloading
  - Working with Virtual Environments
- Standalone WSGI Containers
  - Gunicorn
  - Gevent
  - Twisted Web
  - Proxy Setups
- uWSGI
  - Starting your app with uwsgi
  - Configuring nginx
- FastCGI
  - Creating a .fcgi file
  - Configuring Apache
  - Configuring lighttpd
  - Configuring nginx
  - Running FastCGI Processes
  - Debugging
- CGI
  - Creating a .cgi file
  - Server Setup