---
title: "How to Deploy a Flask App | Hostman Docs"
description: "Follow this step-by-step guide to deploying your Flask application on Hostman. Learn how to optimize your Flask app for smooth performance."
---

> For the complete documentation index for AI agents, see [llms.txt](https://hostman.com/llms.txt).

You can find the step-by-step deployment guide [here](https://hostman.com/docs/app-platform/backend-apps/).

## Application Build

Hostman uses the following environment when building a Flask application:

-   Python 3.10, 3.11, 3.12, 3.13, or 3.14
-   pip
-   gunicorn
-   System libraries for working with PostgreSQL and MySQL

Hostman will execute the following commands during the build:

```shell
apt install -y python3 python3-pip gunicorn python3-psycopg2 libpq-dev python-dev default-mysql-client python3-dev default-libmysqlclient-dev python3-mysqldb --fix-missing
pip3 install psycopg2 flask
ln /usr/bin/python3 /usr/bin/python -sf
ln /usr/bin/pip3 /usr/bin/pip -sf
```

To install dependencies, add the following line to the build command:

```shell
pip3 install --upgrade -r requirements.txt
```

For the app to deploy correctly, you may need to modify the start command to suit your project, specifying port binding, for example:

```
gunicorn main:app --timeout 60 --bind 0.0.0.0:80
```

## Requirements

-   Make sure the application initialization file (your app entry point) is named `main.py`.
-   Make sure the application is listening on `0.0.0.0` rather than `127.0.0.1`; otherwise, external connections will not work.

## Troubleshooting

### Deployment fails

If there are problems with deployment, first check the deployment log. You will be able to determine at what point something went wrong.

Most errors are usually related to:

-   Missing `main.py` file or the `app` variable
-   Incorrect start command
-   Missing dependencies in `requirements.txt`

Make sure that the `gunicorn main:app` command runs successfully in your local environment.
