Skip to content

Hosting for bots

Python, Node.js and Docker: your bot keeps running even when your computer is off

Price
from $2.85/mo
Locations
4 in Europe
Apps
8 apps in one click
Rental
from 1 day

Configurations for the job

Six steps from small to large, with resources and price matched to the job.

Server location
  1. 01

    One bot on Python or Node.js

    A Telegram, Discord or VK bot on long polling, no database

    Why these resources
    CPU
    1 vCPU
    Memory
    1 GB DDR5
    Disk
    10 GB NVMe

    $2.85/mo

    $0.10 for 24 hours

    Order in the bot

    $3.14/mo

    $0.11 for 24 hours

    Order in the bot

    $2.59/mo

    $0.09 for 24 hours

    Order in the bot

    $3.10/mo

    $0.11 for 24 hours

    Order in the bot
  2. 02Recommended

    Bot with a database

    Users, orders and settings in PostgreSQL or SQLite

    Why these resources
    CPU
    1 vCPU
    Memory
    2 GB DDR5
    Disk
    20 GB NVMe

    $3.29/mo

    $0.12 for 24 hours

    Order in the bot

    $4.48/mo

    $0.16 for 24 hours

    Order in the bot

    $2.99/mo

    $0.11 for 24 hours

    Order in the bot

    $3.89/mo

    $0.14 for 24 hours

    Order in the bot
  3. 03

    Several bots in Docker

    Each bot in its own container, restarted automatically

    Why these resources
    CPU
    2 vCPU
    Memory
    2 GB DDR5
    Disk
    30 GB NVMe

    $5.16/mo

    $0.18 for 24 hours

    Order in the bot

    $6.50/mo

    $0.23 for 24 hours

    Order in the bot

    $4.63/mo

    $0.17 for 24 hours

    Order in the bot

    $5.83/mo

    $0.21 for 24 hours

    Order in the bot
  4. 04

    Bot with webhooks and an admin

    HTTPS webhooks, a web admin panel, Redis and background jobs

    Why these resources
    CPU
    2 vCPU
    Memory
    4 GB DDR5
    Disk
    40 GB NVMe

    $6.58/mo

    $0.24 for 24 hours

    Order in the bot

    $8.97/mo

    $0.32 for 24 hours

    Order in the bot

    $5.98/mo

    $0.21 for 24 hours

    Order in the bot

    $7.77/mo

    $0.28 for 24 hours

    Order in the bot
  5. 05

    Bot with broadcasts

    Mass mailings, queues and a database with a long history

    Why these resources
    CPU
    4 vCPU
    Memory
    8 GB DDR5
    Disk
    80 GB NVMe

    $13.15/mo

    $0.47 for 24 hours

    Order in the bot

    $17.94/mo

    $0.64 for 24 hours

    Order in the bot

    $11.96/mo

    $0.43 for 24 hours

    Order in the bot

    $15.54/mo

    $0.56 for 24 hours

    Order in the bot
  6. 06

    Bot studio

    Dozens of client bots and a shared database on one server

    Why these resources
    CPU
    6 vCPU
    Memory
    12 GB DDR5
    Disk
    120 GB NVMe

    $20.90/mo

    $0.75 for 24 hours

    Order in the bot

    $28.50/mo

    $1.02 for 24 hours

    Order in the bot

    $19.00/mo

    $0.68 for 24 hours

    Order in the bot

    $24.70/mo

    $0.88 for 24 hours

    Order in the bot

Need a different size? Build a configuration or pick a ready-made plan.

Why these resources

Minimums come from the apps' official requirements; our estimates are marked.

  1. 01One bot on Python or Node.js1 vCPU · 1 GB · 10 GB

    A long-polling bot is a single process, and most of the memory goes to the OS: the Ubuntu cloud image needs 1 GB. Python and Node.js in the library have the same minimum: 1 vCPU, 1 GB, 10 GB.

  2. 02Bot with a database1 vCPU · 2 GB · 20 GB · estimate

    The bot and PostgreSQL on one server. PostgreSQL advises about 25% of memory for shared_buffers, 512 MB here; the rest goes to the bot and the OS.

  3. 03Several bots in Docker2 vCPU · 2 GB · 30 GB · estimate

    With a restart policy, Docker brings a container back after a crash and after a server reboot. The second core and 30 GB are for building images and their layers. Our estimate.

  4. 04Bot with webhooks and an admin2 vCPU · 4 GB · 40 GB · estimate

    Caddy or Nginx receives webhooks over HTTPS, Redis holds the queue and cache, Celery or BullMQ workers run background jobs. Our estimate.

  5. 05Bot with broadcasts4 vCPU · 8 GB · 80 GB · estimate

    A broadcast to a large user base is a queue of thousands of jobs: the cores go to the workers, the memory to PostgreSQL and Redis. Our estimate.

  6. 06Bot studio6 vCPU · 12 GB · 120 GB · estimate

    Dozens of bot containers, a shared database and Redis. Our estimate.

What's included

  • Python, Node.js, Bun, Go and Docker are installed with the order, at the “Add-ons” step
  • “Projects” in the server settings build code from Git or a ZIP into a Docker image and run the container
  • No sign-up, no ID checks
  • Rent from 24 hours
  • Up and running in ~60 seconds
  • Dedicated IPv4 with a reputation check
  • Intrusion protection
  • Up to 25 Gbps port
  • Migration across 4 locations
  • Public API
  • Shared access

One-click apps

Tick the ones you need when ordering, and they are installed together with the server.

Full library
Install over SSH

root@vps:~# sudo apt update && sudo apt install -y python3 python3-venv python3-pip

  • SystemUbuntu 24.04 · x86_64ok
  • Sourcegithub.com/python/cpythonok
  • Version3.14.8ok

✓ Python 3.14.8 installed · about 45 seconds

root@vps:~#

Install command from the library. Output is shortened and may differ on your server.
  • Python

    Language for bots and scripts

    BotsFree

  • Node.js

    JavaScript runtime

    Dev / ToolsFree

  • Bun

    JS and TS runtime

    Dev / ToolsFree

  • Go

    Language for network services

    Dev / ToolsFree

  • Docker

    Container runtime

    Dev / ToolsFree

  • Redis

    In-memory cache and queues

    DatabasesFree

  • Caddy

    Web server with auto HTTPS

    Dev / ToolsFree

Where to host

The price of the “Bot with a database” step in each data center.

Locations and the price of the “Bot with a database” step
LocationPer month
NetherlandsAmsterdam$3.29
GermanyFrankfurt$4.48
PolandWarsaw$2.99
EstoniaTallinn$3.89

Check the latency to each data center before you order: Looking Glass · Speedtest

Pay only for what you need

Filled is what the job uses, empty is overpayment. Prices in the Netherlands, per month.

  1. 01One bot on Python or Node.js

    Needs: 1 vCPU · 1 GB · 10 GB

    Ready-made plan NL-R9-1: 1 vCPU · 2 GB · 10 GB

    CPU
    1 of 1 vCPU
    Memory
    1 of 2 GB
    Disk
    10 of 10 GB

    $2.85/mo

    instead of $2.89 for the ready-made plan

    1% cheaper
  2. 02Bot with a database

    Needs: 1 vCPU · 2 GB · 20 GB

    Ready-made plan NL-R9-2: 1 vCPU · 3 GB · 30 GB

    CPU
    1 of 1 vCPU
    Memory
    2 of 3 GB
    Disk
    20 of 30 GB

    $3.29/mo

    instead of $3.49 for the ready-made plan

    6% cheaper
  3. 04Bot with webhooks and an admin

    Needs: 2 vCPU · 4 GB · 40 GB

    Ready-made plan NL-R9-4: 3 vCPU · 5 GB · 45 GB

    CPU
    2 of 3 vCPU
    Memory
    4 of 5 GB
    Disk
    40 of 45 GB

    $6.58/mo

    instead of $7.90 for the ready-made plan

    17% cheaper
  4. 05Bot with broadcasts

    Needs: 4 vCPU · 8 GB · 80 GB

    Ready-made plan NL-R9-6: 4 vCPU · 8 GB · 150 GB

    CPU
    4 of 4 vCPU
    Memory
    8 of 8 GB
    Disk
    80 of 150 GB

    $13.15/mo

    instead of $14.63 for the ready-made plan

    10% cheaper

Bot hosting FAQ

No answer here? Message @ExpressHost_SupportBot.

Is this the same as “Hosting in a Telegram bot”?

No. “Hosting in a Telegram bot” is how you manage the server: ordering, payment and reboots in our bot. This page is about a server for your own bots on Python, Node.js or in Docker, for any platform: Telegram, Discord, VK.

How many resources does a bot need?

A single long-polling bot runs fine on 1 vCPU, 1 GB RAM, 10 GB NVMe ($2.85 a month): most of the memory goes to the OS. If the bot keeps data in PostgreSQL, we plan 1 vCPU, 2 GB RAM, 20 GB NVMe for $3.29; that's our estimate.

Can I run several bots on one server?

Yes. The easiest way is one Docker container per bot: they don't get in each other's way, and with a restart policy Docker brings a crashed container back by itself. For several bots, take the “Several bots in Docker” plan (2 vCPU, 2 GB RAM, 30 GB NVMe, $5.16 a month).

How do I make the bot restart after a crash?

Run it as a systemd service with Restart=always, under PM2 for Node.js, or in Docker with the unless-stopped policy. The bot then comes back both after a crash and after a server reboot.

Webhook or long polling?

Long polling is simpler: the bot needs no domain and no open port. A webhook needs an HTTPS address: the server gets a *.expresshost.cloud domain right away, and a Let's Encrypt certificate is issued by Caddy from the library or by “Projects” in the server settings.

Bots on Ryzen and NVMe — in 4 steps.