Skip to content
VDS · Aplikácie a boti

Telegram bot na serveri: spustenie a autostart

Ako hosťovať Telegram bota na VPS: izolácia pod vlastným používateľom, služba systemd, ukladanie tokenu, logy a zvládanie výpadkov siete.

Aktualizované 23. augusta 2026

Bot potrebuje neustále bežiaci proces — tam sa končí free hosting a začína VDS. Bot pritom spotrebuje len minimum prostriedkov: aj VDS-1 (1 jadro, 2 GB) zvládne bota s tisíckami používateľov.

Umiestnenie

Samostatný používateľ a adresár — aby bot nebežal ako root:

useradd -r -m -d /srv/bot -s /usr/sbin/nologin botuser
cd /srv/bot && sudo -u botuser git clone https://github.com/you/bot.git .
sudo -u botuser python3 -m venv venv
sudo -u botuser venv/bin/pip install -r requirements.txt

Pre Node.js: npm ci --omit=dev namiesto venv.

Token drž v súbore s premennými prostredia, nie v kóde:

install -o botuser -g botuser -m 600 /dev/null /srv/bot/.env
echo 'BOT_TOKEN=123456:ABC...' > /srv/bot/.env

Súbor s tokenom sa nesmie dostať do repozitára: pridaj ho do .gitignore ešte pred prvým commitom.

Služba

/etc/systemd/system/tgbot.service:

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

[Service]
User=botuser
WorkingDirectory=/srv/bot
EnvironmentFile=/srv/bot/.env
ExecStart=/srv/bot/venv/bin/python -u bot.py
Restart=always
RestartSec=10
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now tgbot
journalctl -u tgbot -f

Prepínač -u pri Pythone vypína bufferovanie výstupu — bez neho sa logy v journali objavia s oneskorením niekoľkých minút, alebo vôbec.

Long polling alebo webhook

Long polling je jednoduchší: bot si Telegram sám vyžaduje a nemusíš nič vystavovať. Na väčšinu úloh to stačí.

Webhook je rýchlejší a šetrí traffic, ale vyžaduje doménu a certifikát:

location /bot/token {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
}

Budeš potrebovať Let's Encrypt a reverznú proxy. Telegram prijíma self-signed certifikáty neochotne — použi riadny certifikát.

Nikdy nesmú bežať dve kópie bota naraz: Telegram doručuje aktualizácie len jednému príjemcovi a boty začnú odpovedať striedavo. Po úpravách sprav restart, nie druhé spustenie.

Dáta

Na nastavenia a štatistiky stačí SQLite — súbor vedľa bota. Samostatný databázový server potrebuješ len vtedy, ak má bot webový panel alebo viacero procesov.

Časté chyby

PríznakPríčina
Conflict: terminated by other getUpdatesBežia dve kópie bota
Bot po noci prestane reagovaťNie je nastavené Restart=always a proces spadol pri výpadku siete
UnauthorizedToken bol zrušený alebo skopírovaný s nadbytočnými medzerami
Žiadne logyBufferovanie výstupu alebo zápis do súboru namiesto stdout
Ručne funguje, ako služba padáV systemd chýbajú premenné prostredia

Token, ktorý sa objavil na screenshote, vo verejnom repozitári alebo v cudzom chate, sa považuje za kompromitovaný. Zruš ho cez BotFather a zmeň súbor .env — nespoliehaj sa na to, že si nikto nič nevšimne.