EQVPS
Inizia

Come ospitare un bot Telegram su un VPS (e tenerlo in funzione)

15 giu 2026 · 3 min di lettura · EQVPS Team

Un bot Telegram che gira solo mentre il tuo laptop è aperto non è davvero in funzione — è una demo. Perché sia effettivamente online, a rispondere alle 3 di notte, a sopravvivere ai tuoi riavvii e ai propri crash, deve vivere su un server. Ecco l'intero percorso, dall'inizio alla fine, con i comandi.

Prima la buona notizia: un bot è un carico minuscolo. Sta per lo più inattivo in attesa di messaggi, quindi la macchina più economica lo esegue benissimo — niente IP dedicato, niente dominio, niente di elaborato.

1. Ottieni un token da BotFather

Su Telegram, scrivi a @BotFather, invia /newbot, scegli un nome e un username. Ti consegna un token che appare come 12345:AAH.... Trattalo come una password — chiunque lo possieda controlla il tuo bot.

2. Un bot minimale

Fai SSH nel server, configura Python e la libreria:

sudo apt update && sudo apt install -y python3-venv
mkdir ~/mybot && cd ~/mybot
python3 -m venv venv && source venv/bin/activate
pip install python-telegram-bot

Un bot che risponde — ~/mybot/bot.py:

import os
from telegram.ext import ApplicationBuilder, CommandHandler

async def start(update, ctx):
    await update.message.reply_text("Alive and on a server. 🟢")

app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

Nota che legge il token da una variabile d'ambiente — non scritto a mano. Questo conta nel prossimo passo.

3. La parte che davvero lo tiene in funzione: systemd

Se esegui semplicemente python bot.py, muore nel momento in cui chiudi SSH. Un servizio systemd è ciò che lo fa sopravvivere a logout, crash e riavvii. Crea /etc/systemd/system/mybot.service:

[Unit]
Description=Telegram bot
After=network-online.target

[Service]
WorkingDirectory=/home/youruser/mybot
Environment=BOT_TOKEN=12345:AAH...your-token
ExecStart=/home/youruser/mybot/venv/bin/python bot.py
Restart=always
RestartSec=5
User=youruser

[Install]
WantedBy=multi-user.target

Poi:

sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot      # dovrebbe dire active (running)
journalctl -u mybot -f           # log in tempo reale

Restart=always è la riga che fa il vero lavoro — va in crash, e torna in 5 secondi. enable significa che torna su dopo un riavvio. È tutta la differenza tra "ho eseguito un bot una volta" e "il mio bot è attivo".

4. Perché niente dominio o porte aperte

Il bot usa il long polling — raggiunge Telegram per gli aggiornamenti, quindi nulla deve raggiungere dentro. Nessun URL pubblico, nessuna regola firewall in entrata, nessun IP dedicato. È esattamente per questo che un VPS NAT (IP condiviso, SSH su una porta) è una casa comoda ed economica per un bot. I webhook esistono per volumi molto elevati, ma quasi certamente non ti servono per iniziare.

Avvertenze oneste

Ecco fatto. Blinda prima la macchina con la checklist di sicurezza, inserisci il servizio, e il tuo bot resta online che tu lo sia o no. Su un VPS pagato in crypto puoi averlo in funzione un minuto dopo che lo decidi.

FAQ

Quale VPS mi serve per un bot Telegram?

Il più piccolo. Un bot Telegram è per lo più inattivo, in attesa di aggiornamenti, quindi 1 GB di RAM e 2 core bastano per la maggior parte dei bot — anche quelli abbastanza attivi. Ti serve di più solo se il bot fa lavoro pesante da solo (elaborazione immagini, un modello locale, un grande database).

Come tengo in funzione un bot Telegram dopo aver chiuso SSH?

Eseguilo come servizio systemd. A differenza di lanciarlo nel terminale, systemd lo tiene vivo dopo il logout, lo riavvia se va in crash e lo avvia di nuovo dopo un riavvio. È la differenza tra un giocattolo e qualcosa che resta attivo.

Perché il mio bot si ferma quando mi disconnetto?

Perché lo hai avviato nella tua sessione SSH, quindi muore quando quella sessione finisce. Avvolgilo in un servizio systemd (o tmux per un test rapido) e gira indipendentemente dal tuo login.

Mi serve un dominio o un webhook per un bot Telegram?

No. Il long polling (getUpdates) non ha bisogno di alcun URL pubblico, dominio o porta in entrata — è il bot a raggiungere Telegram. Ecco perché un VPS NAT senza IP dedicato va benissimo per un bot. I webhook sono un'ottimizzazione opzionale per volumi elevati.

È sicuro mettere il token del mio bot su un VPS?

Sì, se lo tratti come una password: tienilo in una variabile d'ambiente o in un file leggibile solo dall'utente del bot, non committarlo mai su git, e blinda il server con chiavi SSH. Se un token trapela, revocalo in BotFather ed emettine uno nuovo.

← Torna al blogVedi piani e prezzi →

Commenti

Ancora nessun commento. Sii il primo.

Lascia un commento

I commenti sono moderati prima di comparire.