No Docker, no command line
Connect the repo with your bot — the platform builds and starts it for you. No Dockerfile, no terminal.
Wrote a bot with aiogram, python-telegram-bot or any other stack, and building an image and wrestling with Docker isn't your idea of fun? Connect the repo — Dada Cloud builds and starts the bot for you. If it crashes, it comes back on its own. Free hosting, servers in Russia.
Connect the repo with your bot — the platform builds and starts it for you. No Dockerfile, no terminal.
If the bot process crashes, it restarts automatically — you don't have to watch it.
A webhook bot listens on 0.0.0.0 and the port from the PORT environment variable — Telegram reaches it on the domain you get. A long-polling bot (getUpdates) runs as a background worker instead: no HTTP domain, just a process that polls Telegram itself.
Conversation state and bot user data live in managed PostgreSQL next to it, with DATABASE_URL injected automatically.
Your first bot can run on the free tier, no card required. A Russian card is only needed if the bot grows.
Bot user data is stored on servers inside Russia — what the personal-data law requires.
The steps are the same for webhook and long-poll bots except two forks, called out below.
Long polling (getUpdates) — the bot polls Telegram itself, no domain needed. Webhook (aiogram, python-telegram-bot with a web server inside) — Telegram calls your domain. The mode decides what you do next.
Via a GitHub repo, or without git at all — as a code archive (upload-deploy). The platform builds and starts the process for you.
When creating the app, turn on the Worker toggle ("background worker, no HTTP") — the process runs in the background and gets no public domain. That's exactly what a long-poll bot needs, no extra domain gets created.
Without Worker: the app gets an HTTPS domain like name.dada-tuda.ru. Your bot must listen on 0.0.0.0 and the port from the PORT environment variable — the platform auto-detects the port for FastAPI, Flask, Django and Streamlit; for a bare aiogram app on its own web server you can set the port by hand.
For webhook mode, call setWebhook with the domain you got, once the app is up — Telegram starts sending updates to that address.
For conversation state, create a managed PostgreSQL next to the bot — DATABASE_URL gets injected automatically. Start on the free tier, move to Startup or Business as load grows.
Real plan prices, and an honest comparison against renting your own VPS.
| Tier | Price | What you get |
|---|---|---|
| Free | 0 RUB/mo | One bot, no card required. The limit is on resources, not on how long you can use it. |
| Startup | 990 RUB/mo | 5 apps, 2 databases, 7-day backups — once the bot needs more resources. |
| Business | 2900 RUB/mo | 20 apps, 10 databases, 30-day backups, priority support — for several bots or growing load. |
| Your own VPS | comparable or cheaper on hardware | On raw hardware cost a VPS is often cheaper. But the setup — Docker, systemd or supervisor, domain, TLS, restart-on-crash — you pay for in your own time, not money. |
Honest limitations, no vague hand-waving.
In "background worker" mode the bot gets updates via getUpdates and runs in the background — no HTTP domain is needed or issued. If the bot does need a webhook, deploy it as a regular app instead, without Worker.
The platform issues an HTTPS domain and a port via the PORT environment variable. If your app listens on a fixed port or localhost, it's not reachable from outside.
The platform auto-detects FastAPI, Flask, Django and Streamlit from the dependency manifest. A bare aiogram app without one of those web frameworks underneath isn't always detected — you can then set the webhook port by hand in the app settings.
On Dada Cloud: connect the repo with your bot, the platform builds and starts it for you — no Dockerfile, no command line.
Both are supported. Webhook: your app listens on 0.0.0.0 and the port from the PORT environment variable, Telegram reaches it on the domain you get. Long polling (getUpdates): turn on the "background worker" toggle when creating the app — the process runs in the background, no public domain is needed or issued.
The process restarts automatically, you don't need to bring it back up by hand.
Yes. Connect the repo with your bot on aiogram, python-telegram-bot or any other stack and run it on the free tier, no card required.
Yes, in managed PostgreSQL right next to the bot. Data is stored on servers in Russia, which meets 152-FZ.
Your first bot can run on the free Free tier, no card required. When the bot needs more resources, paid tiers are available with a Russian card: Startup — 990 RUB/mo, Business — 2900 RUB/mo.
No. Connect the repo with your bot — the platform builds and starts the process for you and restarts it if it crashes. You don't need to rent and configure a server separately.
It's a separate tier of the pricing plan, not a time-limited trial. The free tier's limit is on resources, not on how long you can use it. If the bot needs more, move to a paid tier.
Create an account and deploy your first app. The Free plan costs $0.