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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

TierPriceNote
Free0 RUB/moOne bot, no card required. The limit is on resources, not on how long you can use it.
Startup990 RUB/mo5 apps, 2 databases, 7-day backups — once the bot needs more resources.
Business2900 RUB/mo20 apps, 10 databases, 30-day backups, priority support — for several bots or growing load.
Your own VPScomparable or cheaper on hardwareOn 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