Host a Telegram bot 24/7 on your own VPS: polling or webhook over HTTPS, systemd auto-restart, from €12/mo. Dedicated IPv4, card or crypto, live in minutes.
Free hosts sleep after inactivity, cap executions and restart your process in the middle of a job. A VPS removes all three: your process runs until you stop it, updates from Telegram land on your dedicated IPv4 without port forwarding, and you decide when to update the bot — not a platform maintenance window.
| Workload | Paket | Why |
|---|---|---|
| One bot, no database | Core VPS 4 — €12/ay | A Python bot idles around 150 MB — 8 GB leaves headroom for media and logs |
| Bot + PostgreSQL + message history | Core VPS 6 NVMe — €13/mo | NVMe keeps history queries fast under constant writes |
| Several bots, CI, staging | Core VPS 8 — €30/ay | 24 GB for parallel services on one box |
cat > /etc/systemd/system/mybot.service <<'EOF' [Unit] Description=My Telegram Bot After=network-online.target [Service] WorkingDirectory=/opt/mybot ExecStart=/opt/mybot/venv/bin/python bot.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable --now mybot
Polling to start: no domain, no certificate, works from minute one — the guide uses it. Webhook when you grow: Telegram pushes updates to your server over HTTPS, so put Caddy or nginx in front of the bot process.
Not for polling — the bot connects outward on its own. For a webhook a hostname with a certificate is the clean way (Caddy issues it automatically); start without one and add it when you switch.
A single Python bot idles around 150 MB, a Node.js bot around 80 MB. Even the entry 8 GB plan runs a bot plus a database plus a staging copy with room to spare.
Your bot, your server €12 to start, crypto accepted, live in minutes. See plans →