OffshoreVps
Long polling Webhooks No KYC

Telegram bot hosting on a VPS, from $5.76 a month

A Telegram bot gets its messages in one of two ways, and the choice decides what your server needs. Long polling needs nothing open. A webhook needs HTTPS on one of four ports. Here is how to pick and how to set it up.

Tether (USDT)BitcoinMoneroEthereumLitecoinSolanaTRON
No KYC Pay in crypto Full root Live in minutes 10 locations

Page by the OffshoreVps teamUpdated Telegram Bot API notes checked 19 Oct 2026

Sizes and prices

Two servers for a Telegram bot

Prices are one-month prices; a 12-month term takes 50% off.

Location
VPS

One bot

$5.76/mo

or $2.88/mo on a 12-month term (−50%)

  • CPU1 vCPU
  • RAM2 GB DDR4
  • Disk40 GB NVMe
  • NetworkUnlimited · 1 Gbps

Our cheapest size. Plenty for a command bot, a small database and logs.

Configure and order
Location
Most flexible
VPS

Several bots with a database

$8.50/mo

or $4.25/mo on a 12-month term (−50%)

  • CPU2 vCPU
  • RAM4 GB DDR4
  • Disk60 GB NVMe
  • NetworkUnlimited · 1 Gbps

Room for webhooks behind a reverse proxy, PostgreSQL and more than one bot.

Configure and order
Polling or webhook

Two ways for a Telegram bot to receive messages

Long polling (getUpdates)Webhook (setWebhook)
How it worksYour bot asks Telegram for new updates in a loopTelegram sends each update to an HTTPS URL on your server
Open portsNone, only outboundHTTPS on 443, 80, 88 or 8443
Domain and certificateNot neededAn HTTPS URL; a self-signed certificate must be uploaded to Telegram
Best forSimple bots and testingBusy bots and anything already behind a web server
Watch out forIt does not work while a webhook is set. Track the offset to avoid duplicate updatesA broken certificate or proxy means updates stop arriving

Facts from the Telegram Bot API documentation, read 19 October 2026.

Setup

Run the bot as a service

Polling needs only this unit file. For a webhook, put a web server such as Nginx in front with a certificate and proxy the path to your bot.

Create a user
sudo adduser --disabled-password --gecos '' tgbot
# copy your bot to /home/tgbot/app and install its dependencies as that user
/etc/systemd/system/telegram-bot.service
[Unit]
Description=Telegram bot
After=network-online.target
Wants=network-online.target

[Service]
User=tgbot
WorkingDirectory=/home/tgbot/app
EnvironmentFile=/home/tgbot/app/.env   # holds BOT_TOKEN, readable only by tgbot
ExecStart=/usr/bin/python3 bot.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
Start it
chmod 600 /home/tgbot/app/.env
sudo systemctl daemon-reload
sudo systemctl enable --now telegram-bot
journalctl -u telegram-bot -f
Webhook only: firewall
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp   # one of 443, 80, 88 or 8443
Good to know

Keep the bot safe

Do

  • Keep the token in an environment file, never in a public repository
  • Revoke and regenerate the token through BotFather if it leaks
  • Use SSH keys and keep the server patched
  • Back up your database; see how to back up a VPS

Avoid

  • Running the bot as root
  • Setting a webhook and polling at the same time
  • Exposing an admin endpoint without a secret
  • Keeping the only copy of your data on the server
FAQ

Telegram bot hosting questions

01How do I host a Telegram bot 24/7?

Run it on a VPS as a systemd service with Restart=always. The process starts at boot, restarts after a crash and keeps running when you log out. The setup above includes the unit file.

02Should I use polling or a webhook?

Use long polling for simple bots and testing, because it needs no open ports. Use a webhook for busy bots or when you already run a web server. You cannot use both at once.

03Which ports can a Telegram webhook use?

The Bot API documentation lists 443, 80, 88 and 8443, over HTTPS.

04Do I need a domain for a Telegram bot?

Not for polling. For a webhook you need an HTTPS URL; a self-signed certificate works if you upload it to Telegram, but a normal certificate for a domain is easier. See buy domain names.

05How much server does a Telegram bot need?

Most bots fit in 1 to 2 GB RAM. Our cheapest VPS has 1 vCPU, 2 GB and 40 GB NVMe for $5.76 a month. For several bots and a database, the 2 vCPU, 4 GB size ($8.50 in Romania) leaves room.

06Can I pay without a card?

Yes. Generate a login and pay with Bitcoin, Monero, USDT or another supported coin, with no name, ID or phone. See no-KYC VPS hosting.

Sources

Where these numbers come from

Checked 19 October 2026. Chain sizes and software requirements change, so confirm against the source before you order.

A bot that never goes offline

Pick a size, pay in crypto, log in as root. No ID, no card.