Flask hosting without a server or nginx

Built a site or API with Flask and have nowhere to deploy it? Connect your repo - Dada Cloud detects flask in requirements.txt, builds and runs the app, and issues an HTTPS domain. If it crashes, it restarts itself. Free tier, servers in Russia.

Why Flask apps run on Dada Cloud

Flask auto-detection

The platform finds flask in requirements.txt or setup.py and builds the app without a Dockerfile.

Port from code or default

The port is read from app.run in your code, defaulting to 5000. The app must listen on 0.0.0.0 and the PORT env variable.

HTTPS domain right away

The app gets a name.dada-tuda.ru address with a certificate. A custom domain takes a couple of minutes.

PostgreSQL next door

A managed database in one click, DATABASE_URL wired into the app automatically.

Crashes restart themselves

The process restarts automatically after a failure.

Free tier to start

Your first app can run for free, no card required.

How to deploy a Flask app

Six steps from a local app.py to a live HTTPS address.

01

Pin your dependencies

requirements.txt must list flask - that is what the platform reads to recognise the project. Add gunicorn there too for a production run.

02

Bind to 0.0.0.0 and PORT

Start with gunicorn app:app --bind 0.0.0.0:$PORT. The port always comes from the environment, never from a constant in the code.

03

Create the app and connect your code

Name the app inside a project and connect a GitHub repo - or upload a zip if you don't use git.

04

Add PostgreSQL

A managed database is created in one click and DATABASE_URL lands in the environment - a local SQLite file will not survive a redeploy.

05

Set environment variables

SECRET_KEY, API keys and anything else are set in the console and injected at start, so they stay out of the repo.

06

Open the address and attach a domain

In a minute or two the app answers at name.dada-tuda.ru over HTTPS. A custom domain takes a couple of minutes.

What Flask hosting costs

Real platform tiers, and an honest comparison with renting your own VPS.

TierPriceWhat you get
Free0 ₽/moOne app with a database and a domain, no card required. The limit is resources, not a trial clock.
Startup990 ₽/mo5 apps, 2 databases, 7-day backups - a site with real users plus a background worker.
Business2,900 ₽/mo20 apps, 10 databases, 30-day backups, priority support.
Your own VPScomparable on hardwareA VPS is cheaper per unit of hardware. But gunicorn under systemd, nginx, certificates and backups cost your time.

Worth knowing up front

Three places a Flask deploy usually trips.

Flask's built-in server is not for production

app.run works, but serves one request at a time. Under real traffic use gunicorn - one line in requirements.txt and one in the start command.

Bind to 0.0.0.0 and PORT

The port arrives through the PORT environment variable. An app pinned to 127.0.0.1 or a fixed port builds fine and stays unreachable.

The app disk is wiped on every build

Uploaded files and a local SQLite database do not survive a new deploy. Data goes to PostgreSQL, files to object storage.

Flask hosting - FAQ

Where can I deploy a Flask app for free?

On Dada Cloud: connect the repo and the platform builds and runs the app on the free tier, no card required.

Do I need a Dockerfile or gunicorn config?

No. requirements.txt with flask is enough - the platform builds and runs the app itself. If you have your own Dockerfile, it is used instead.

What port should Flask use?

Listen on 0.0.0.0 and the PORT env variable. If app.run sets a port in code, it is picked up; the default is 5000.

How do I store data?

Create a managed PostgreSQL next to the app - DATABASE_URL appears in the app's environment automatically.

What happens if the app crashes?

The platform restarts the process automatically. Logs are visible in the panel so you can see what happened.

Do I need gunicorn in production?

Yes. Flask's built-in server handles one request at a time and is meant for development. Add gunicorn to requirements.txt and start with gunicorn app:app --bind 0.0.0.0:$PORT - one line in each file.

Where do I keep secrets and env vars?

In the app's environment variables, set in the console and injected at start. Read them with os.environ; a .env file committed to the repo ends up inside the built image.

Can I deploy without git?

Yes. Zip the project (up to 100MB) and upload it in the console - the platform reads requirements.txt the same way it would from a repo.

Where do uploaded files go?

Not on the app disk - it is wiped on every build. Store uploads in object storage and keep the links in PostgreSQL.

Give your code a public address

Create an account and deploy your first app. The Free plan costs $0.

Create account