Deploying a Flask App
You can find the step-by-step deployment guide here.
Application Build Copy link
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:
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:
pip3 install --upgrade -r requirements.txtFor 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:80Requirements Copy link
- Make sure the application initialization file (your app entry point) is named
main.py. - Make sure the application is listening on
0.0.0.0rather than127.0.0.1; otherwise, external connections will not work.
Troubleshooting Copy link
Deployment fails Copy link
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.pyfile or theappvariable - Incorrect start command
- Missing dependencies in
requirements.txt
Make sure that the gunicorn main:app command runs successfully in your local environment.