EQVPS

Hoe je een Telegram-bot host op een VPS (en draaiend houdt)

15 jun 2026 · 3 min lezen · EQVPS Team

Een Telegram-bot die alleen draait terwijl je laptop open is, draait niet echt — hij demonstreert. Om hem daadwerkelijk online te hebben, om 3 uur 's nachts antwoordend, je herstarts en zijn eigen crashes overlevend, moet hij op een server leven. Hier is het hele pad, van begin tot eind, met de commando's.

Eerst goed nieuws: een bot is een piepkleine workload. Hij zit meestal idle op berichten te wachten, dus de goedkoopste box draait hem prima — geen dedicated IP, geen domein, niets fancy.

1. Krijg een token van BotFather

Stuur in Telegram een bericht naar @BotFather, verstuur /newbot, kies een naam en gebruikersnaam. Het geeft je een token die eruitziet als 12345:AAH.... Behandel het als een wachtwoord — iedereen ermee bestuurt je bot.

2. Een minimale bot

SSH in de server, zet Python en de library op:

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

Een bot die antwoordt — ~/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()

Merk op dat het het token uit een omgevingsvariabele leest — niet hardcoded. Dat telt in de volgende stap.

3. Het deel dat het echt draaiend houdt: systemd

Als je gewoon python bot.py draait, sterft het op het moment dat je SSH sluit. Een systemd-service is wat het logout, crashes en herstarts laat overleven. Maak /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

Dan:

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 is de regel die het echte werk doet — crash, en het is terug in 5 seconden. enable betekent dat het opkomt na een herstart. Dat is het hele verschil tussen "ik draaide een bot één keer" en "mijn bot is op."

4. Waarom geen domein of open poorten

De bot gebruikt long polling — hij reikt naar Telegram voor updates, dus niets hoeft naar binnen te reiken. Geen publieke URL, geen inkomende firewall-regel, geen dedicated IP. Dit is precies waarom een NAT-VPS (gedeeld IP, SSH op een poort) een prima en goedkoop thuis is voor een bot. Webhooks bestaan voor zeer hoog volume, maar je hebt ze vrijwel zeker niet nodig om te beginnen.

Eerlijke kanttekeningen

Dat is het. Vergrendel de box eerst met de security-checklist, zet de service erin, en je bot blijft online of jij het nu bent of niet. Op een crypto-betaalde VPS kun je hem een minuut nadat je het besluit draaiend hebben.

FAQ

Welke VPS heb ik nodig voor een Telegram-bot?

De kleinste. Een Telegram-bot idlet meestal, wachtend op updates, dus 1 GB RAM en 2 cores is ruim voldoende voor de meeste bots — zelfs vrij drukke. Je hebt alleen meer nodig als de bot zelf zwaar werk doet (beeldverwerking, een lokaal model, een grote database).

Hoe houd ik een Telegram-bot draaiend nadat ik SSH sluit?

Draai het als een systemd-service. Anders dan het starten in je terminal, houdt systemd het in leven nadat je uitlogt, herstart het als het crasht, en start het weer na een herstart. Dat is het verschil tussen speelgoed en iets dat op blijft.

Waarom stopt mijn bot wanneer ik de verbinding verbreek?

Omdat je het in je SSH-sessie startte, dus het sterft wanneer die sessie eindigt. Wikkel het in een systemd-service (of tmux voor een snelle test) en het draait onafhankelijk van je login.

Heb ik een domein of webhook nodig voor een Telegram-bot?

Nee. Long polling (getUpdates) heeft geen publieke URL nodig, geen domein, geen inkomende poort — de bot reikt naar Telegram. Daarom is een NAT-VPS zonder dedicated IP prima voor een bot. Webhooks zijn een optionele optimalisatie voor hoog volume.

Is het veilig om mijn bot-token op een VPS te zetten?

Ja, als je het als een wachtwoord behandelt: houd het in een omgevingsvariabele of een bestand dat alleen leesbaar is voor de gebruiker van de bot, commit het nooit naar git, en vergrendel de server met SSH-sleutels. Als een token lekt, trek het in bij BotFather en geef een nieuwe uit.

← Terug naar blogBekijk plannen & prijzen →

Reacties

Nog geen reacties. Wees de eerste.

Laat een reactie achter

Reacties worden gemodereerd voordat ze verschijnen.