−25%

la planurile Windows anuale, până pe 31 oct. Vezi planurile

EQVPS
Începe

Cum găzduiești un bot Telegram pe un VPS (și cum îl ții pornit)

15 iun. 2026 · 3 min de citit · EQVPS Team

Un bot Telegram care rulează doar cât ți-e deschis laptopul nu rulează de fapt — face o demonstrație. Ca să fie chiar online, să răspundă la 3 dimineața, să supraviețuiască repornirilor tale și propriilor căderi, trebuie să trăiască pe un server. Iată tot drumul, de la început până la sfârșit, cu comenzile.

Întâi vestea bună: un bot e o sarcină minusculă. Stă mai mult degeaba, așteptând mesaje, așa că cea mai ieftină mașină îl duce bine — fără IP dedicat, fără domeniu, nimic sofisticat.

1. Ia un token de la BotFather

În Telegram, scrie-i lui @BotFather, trimite /newbot, alege un nume și un username. Îți dă un token care arată ca 12345:AAH.... Tratează-l ca pe o parolă — oricine îl are îți controlează botul.

2. Un bot minimal

Intră pe server prin SSH, configurează Python și biblioteca:

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 care răspunde — ~/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()

Observă că citește tokenul dintr-o variabilă de mediu — nu e scris direct în cod. Asta contează la pasul următor.

3. Partea care chiar îl ține pornit: systemd

Dacă rulezi doar python bot.py, moare în clipa în care închizi SSH. Un serviciu systemd e ce-l face să supraviețuiască ieșirii din sesiune, căderilor și repornirilor. Creează /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

Apoi:

sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot      # should say active (running)
journalctl -u mybot -f           # live logs

Restart=always e linia care face treaba reală — pică și e înapoi în 5 secunde. enable înseamnă că pornește după o repornire. Asta e toată diferența dintre „am rulat o dată un bot” și „botul meu e online”.

4. De ce fără domeniu sau porturi deschise

Botul folosește long polling — el cere actualizările de la Telegram, deci nimic nu trebuie să ajungă la el. Fără URL public, fără regulă de firewall de intrare, fără IP dedicat. Exact de aceea un VPS NAT (fără IP propriu, SSH pe un port) e o casă bună și ieftină pentru un bot. Webhookurile există pentru volume foarte mari, dar aproape sigur nu-ți trebuie ca să începi.

Rezerve cinstite

  • Igiena tokenului: aici e scris direct în fișierul de unitate, pentru claritate — în regulă pe o mașină bine închisă, dar pentru orice e folosit de mai mulți, încarcă-l dintr-un EnvironmentFile accesibil doar pentru root și nu-l pune niciodată în git. S-a scurs? Revocă-l din BotFather și emite unul nou.
  • Boți grei: dacă botul face el însuși munca (generare de imagini, un model local), nu mai e minuscul — dimensionează corespunzător.

Asta e tot. Închide întâi mașina cu lista de securitate, pune serviciul, iar botul tău rămâne online, fie că ești și tu, fie că nu. Pe un VPS plătit cu cripto îl poți avea pornit la un minut după ce te-ai hotărât.

Întrebări frecvente

De ce VPS am nevoie pentru un bot Telegram?

De cel mai mic. Un bot Telegram stă mai mult degeaba, așteptând actualizări, așa că 1 GB RAM și 2 nuclee ajung din plin pentru majoritatea boților — chiar și pentru cei destul de aglomerați. Îți trebuie mai mult doar dacă botul face el însuși muncă grea (procesare de imagini, un model local, o bază de date mare).

Cum țin un bot Telegram pornit după ce închid SSH?

Rulează-l ca serviciu systemd. Spre deosebire de pornirea lui în terminal, systemd îl ține în viață după ce ieși, îl repornește dacă pică și îl pornește din nou după o repornire. Asta e diferența dintre o jucărie și ceva care rămâne online.

De ce se oprește botul meu când mă deconectez?

Pentru că l-ai pornit în sesiunea SSH, așa că moare când se termină sesiunea. Pune-l într-un serviciu systemd (sau în tmux, pentru un test rapid) și rulează independent de autentificarea ta.

Am nevoie de un domeniu sau de un webhook pentru un bot Telegram?

Nu. Long polling-ul (getUpdates) nu are nevoie de URL public, de domeniu sau de port de intrare — botul se conectează el la Telegram. De aceea un VPS NAT, fără IP dedicat, e perfect pentru un bot. Webhookurile sunt o optimizare opțională pentru volum mare.

E sigur să-mi pun tokenul botului pe un VPS?

Da, dacă îl tratezi ca pe o parolă: ține-l într-o variabilă de mediu sau într-un fișier pe care îl poate citi doar utilizatorul botului, nu-l pune niciodată în git și închide serverul cu chei SSH. Dacă un token se scurge, revocă-l din BotFather și emite unul nou.

Comentarii

Încă nu există comentarii. Fii primul.

Lasă un comentariu

Comentariile sunt moderate înainte să apară.