How big?
- 0.5 GB: one lightweight Node.js or Python bot, little headroom.
- 1 GB: a few bots, or one bot plus a small database. A good default.
- 2 GB or more: headless browsers, local embeddings or queues.
These are editorial rules of thumb, not measurements: check memory with free -m under real load.
Entry prices
| Host | Entry price | Billing model | Server admin effort |
|---|---|---|---|
| Vultr | $5/mo (1 GB); $3.50/mo (0.5 GB) | Fixed monthly | High |
| DigitalOcean | $4/mo (512 MiB); $6/mo (1 GiB) | Fixed monthly | High |
| Fly.io | $2.19 per 30 days (256 MB) | Per machine time | Medium |
| Hetzner Cloud | Not verified (see site) | Fixed monthly | High |
Prices verified on 2026-10-19 on the providers' official pricing pages. They change: check before you buy.
Region
Bots talk to the platform API more than to users, so latency to Telegram, Discord or Meta matters less than reliability. Choose a region near your users if you also serve a web dashboard, and consider data-residency rules for personal data.
Hardening checklist
- SSH keys only, no password login.
- ufw: allow 22 (and 443 only for webhooks).
- unattended-upgrades for security patches.
- A dedicated user and a systemd unit with Restart=always.
- Backups or snapshots of anything stateful.
Full walkthrough: Tutorial: bot on a Vultr VPS with systemd.
Related guides and tools
- Tutorial: bot on a Vultr VPS with systemd
- PaaS vs VPS for bots
- Railway vs Vultr for bots
- Cheapest always-on bot hosting
- Bot security guide
- Hosting comparator
Frequently asked questions
Is a VPS better than a PaaS for bots?
Not always. A VPS is cheaper for many bots and gives control; a PaaS saves maintenance. See our PaaS vs VPS page.
Docker or systemd?
Both work. systemd is lighter for one bot; Docker helps when you run several with different runtimes.
Which OS image?
A current LTS release of Ubuntu or Debian is the most documented choice.