EQVPS

Sådan hoster du en Telegram-bot på en VPS (og holder den kørende)

15. jun. 2026 · 3 min. læsning · EQVPS Team

En Telegram-bot, der kun kører, mens din bærbare er åben, kører ikke rigtigt — den demonstrerer. For at have den faktisk online, svarende klokken 3 om natten, overlevende dine genstarter og sine egne nedbrud, skal den bo på en server. Her er hele vejen, fra start til slut, med kommandoerne.

Gode nyheder først: en bot er en lille arbejdsbyrde. Den sidder mest inaktiv og venter på beskeder, så den billigste boks kører den fint — ingen dedikeret IP, intet domæne, intet fancy.

1. Få et token fra BotFather

I Telegram, skriv til @BotFather, send /newbot, vælg et navn og brugernavn. Den rækker dig et token, der ser ud som 12345:AAH.... Behandl det som en adgangskode — enhver med det kontrollerer din bot.

2. En minimal bot

SSH ind i serveren, sæt Python og biblioteket 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

En bot der svarer — ~/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()

Bemærk, den læser token'et fra en miljøvariabel — ikke hardcodet. Det betyder noget i næste trin.

3. Den del der faktisk holder den kørende: systemd

Hvis du bare kører python bot.py, dør den i det øjeblik, du lukker SSH. En systemd-tjeneste er, hvad der får den til at overleve logud, nedbrud og genstarter. Opret /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

Så:

sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot      # bør sige active (running)
journalctl -u mybot -f           # live-logs

Restart=always er linjen, der laver det rigtige arbejde — crash, og den er tilbage på 5 sekunder. enable betyder, den kommer op efter en genstart. Det er hele forskellen mellem "jeg kørte en bot én gang" og "min bot er oppe".

4. Hvorfor intet domæne eller åbne porte

Botten bruger long polling — den rækker ud til Telegram efter opdateringer, så intet behøver at nå ind. Ingen offentlig URL, ingen indgående firewall-regel, ingen dedikeret IP. Det er præcis derfor, en NAT-VPS (delt IP, SSH på en port) er et fint og billigt hjem for en bot. Webhooks eksisterer til meget høj volumen, men du behøver næsten helt sikkert ikke dem for at starte.

Ærlige forbehold

Det er det. Lås boksen ned først med sikkerhedstjeklisten, drop tjenesten ind, og din bot forbliver online, uanset om du gør. På en krypto-betalt VPS kan du have den kørende et minut efter, du beslutter dig.

FAQ

Hvilken VPS har jeg brug for til en Telegram-bot?

Den mindste. En Telegram-bot er mest inaktiv og venter på opdateringer, så 1 GB RAM og 2 kerner er rigeligt til de fleste bots — selv temmelig travle. Du har kun brug for mere, hvis botten laver tungt arbejde selv (billedbehandling, en lokal model, en stor database).

Hvordan holder jeg en Telegram-bot kørende, efter jeg lukker SSH?

Kør den som en systemd-tjeneste. I modsætning til at starte den i din terminal holder systemd den i live, efter du logger ud, genstarter den, hvis den crasher, og starter den igen efter en genstart. Det er forskellen mellem et legetøj og noget, der forbliver oppe.

Hvorfor stopper min bot, når jeg afbryder?

Fordi du startede den i din SSH-session, så den dør, når den session slutter. Pak den ind i en systemd-tjeneste (eller tmux til en hurtig test), og den kører uafhængigt af dit login.

Har jeg brug for et domæne eller en webhook til en Telegram-bot?

Nej. Long polling (getUpdates) kræver ingen offentlig URL, intet domæne, ingen indgående port — botten rækker ud til Telegram. Det er derfor, en NAT-VPS uden en dedikeret IP er helt fin til en bot. Webhooks er en valgfri optimering til høj volumen.

Er det sikkert at lægge mit bot-token på en VPS?

Ja, hvis du behandler det som en adgangskode: hold det i en miljøvariabel eller en fil, der kun kan læses af bottens bruger, commit det aldrig til git, og lås serveren ned med SSH-nøgler. Hvis et token lækker, tilbagekald det i BotFather og udsted et nyt.

← Tilbage til blogSe planer & priser →

Kommentarer

Ingen kommentarer endnu. Vær den første.

Skriv en kommentar

Kommentarer modereres, før de vises.