Deploy a Telegram bot in 30 seconds. No Docker
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.
Why Telegram bots deploy on Dada Cloud
No Docker, no command line
Connect the repo with your bot — the platform builds and starts it for you. No Dockerfile, no terminal.
If it crashes, it comes back
If the bot process crashes, it restarts automatically — you don't have to watch it.
Webhook or long polling — both work
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.
Managed PostgreSQL for state
Conversation state and bot user data live in managed PostgreSQL next to it, with DATABASE_URL injected automatically.
Free hosting to start
Your first bot can run on the free tier, no card required. A Russian card is only needed if the bot grows.
User data in Russia (152-FZ)
Bot user data is stored on servers inside Russia — what the personal-data law requires.
How to deploy a Telegram bot on Dada Cloud
The steps are the same for webhook and long-poll bots except two forks, called out below.
Pick your bot's mode
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.
Connect the repo or upload a zip
Via a GitHub repo, or without git at all — as a code archive (upload-deploy). The platform builds and starts the process for you.
Long polling: turn on "background worker"
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.
Webhook: create a regular app
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.
Register the webhook with Telegram
For webhook mode, call setWebhook with the domain you got, once the app is up — Telegram starts sending updates to that address.
Add PostgreSQL and pick a plan
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.
How much does hosting a Telegram bot cost
Real plan prices, and an honest comparison against renting your own VPS.
| Tier | Price | Note |
|---|---|---|
| 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. |
What's worth knowing upfront
Honest limitations, no vague hand-waving.
Long polling is a background process, no domain
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.
A webhook bot must listen on 0.0.0.0 and PORT
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.
Framework auto-detection is limited
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.
Telegram bot hosting — FAQ
On Dada Cloud: connect the repo with your bot, the platform builds and starts it for you — no Dockerfile, no command line.
Get your backend live from GitHub today
Connecting a repo takes a minute. You only pay for what you actually use.
Create account