Flask auto-detection
The platform finds flask in requirements.txt or setup.py and builds the app without a Dockerfile.
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.
The platform finds flask in requirements.txt or setup.py and builds the app without a Dockerfile.
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.
The app gets a name.dada-tuda.ru address with a certificate. A custom domain takes a couple of minutes.
A managed database in one click, DATABASE_URL wired into the app automatically.
The process restarts automatically after a failure.
Your first app can run for free, no card required.
Six steps from a local app.py to a live HTTPS address.
requirements.txt must list flask - that is what the platform reads to recognise the project. Add gunicorn there too for a production run.
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.
Name the app inside a project and connect a GitHub repo - or upload a zip if you don't use git.
A managed database is created in one click and DATABASE_URL lands in the environment - a local SQLite file will not survive a redeploy.
SECRET_KEY, API keys and anything else are set in the console and injected at start, so they stay out of the repo.
In a minute or two the app answers at name.dada-tuda.ru over HTTPS. A custom domain takes a couple of minutes.
Real platform tiers, and an honest comparison with renting your own VPS.
| Tier | Price | What you get |
|---|---|---|
| Free | 0 ₽/mo | One app with a database and a domain, no card required. The limit is resources, not a trial clock. |
| Startup | 990 ₽/mo | 5 apps, 2 databases, 7-day backups - a site with real users plus a background worker. |
| Business | 2,900 ₽/mo | 20 apps, 10 databases, 30-day backups, priority support. |
| Your own VPS | comparable on hardware | A VPS is cheaper per unit of hardware. But gunicorn under systemd, nginx, certificates and backups cost your time. |
Three places a Flask deploy usually trips.
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.
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.
Uploaded files and a local SQLite database do not survive a new deploy. Data goes to PostgreSQL, files to object storage.
On Dada Cloud: connect the repo and the platform builds and runs the app on the free tier, no card required.
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.
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.
Create a managed PostgreSQL next to the app - DATABASE_URL appears in the app's environment automatically.
The platform restarts the process automatically. Logs are visible in the panel so you can see what happened.
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.
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.
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.
Not on the app disk - it is wiped on every build. Store uploads in object storage and keep the links in PostgreSQL.
Create an account and deploy your first app. The Free plan costs $0.