సర్వర్పై Telegram బాట్: లాంచింగ్ మరియు ఆటోస్టార్ట్
VPS పై Telegram బాట్ను ఎలా హోస్ట్ చేయాలి: దాని స్వంత యూజర్ కింద ఐసోలేషన్, systemd సర్వీస్, టోకెన్ నిల్వ, లాగ్లు, మరియు నెట్వర్క్ అంతరాయాల నిర్వహణ.
23 ఆగస్టు, 2026న నవీకరించబడింది
బాట్కు నిరంతరం నడుస్తూ ఉండే ప్రాసెస్ అవసరం — అక్కడే ఉచిత హోస్టింగ్ ముగిసి VDS మొదలవుతుంది. బాట్కు వనరులు దాదాపు అవసరం ఉండవు: వేలాది మంది యూజర్లు ఉన్న బాట్ను కూడా VDS-1 (1 కోర్, 2 GB) సులభంగా నిర్వహిస్తుంది.
ప్లేస్మెంట్
ప్రత్యేక యూజర్ మరియు డైరెక్టరీ — బాట్ 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
Node.js కోసం: venv బదులు npm ci --omit=dev ఉపయోగించండి.
టోకెన్ను కోడ్లో కాకుండా ఎన్విరాన్మెంట్ ఫైల్లో ఉంచండి:
install -o botuser -g botuser -m 600 /dev/null /srv/bot/.env
echo 'BOT_TOKEN=123456:ABC...' > /srv/bot/.env
టోకెన్ ఉన్న ఫైల్ రిపాజిటరీలోకి వెళ్లకూడదు: మొదటి కమిట్కు ముందే దాన్ని .gitignore లో జోడించండి.
సర్వీస్
/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
Python లో -u ఫ్లాగ్ అవుట్పుట్ బఫరింగ్ను ఆపేస్తుంది — అది లేకపోతే లాగ్లు journal లో కొన్ని నిమిషాల ఆలస్యంతో కనిపిస్తాయి, లేదా అసలు కనిపించవు.
లాంగ్ పోలింగ్ లేదా వెబ్హుక్
లాంగ్ పోలింగ్ సులభం: బాట్ స్వయంగా Telegram ను పోల్ చేస్తుంది, మీరు ఏదీ బయటకు తెరవాల్సిన అవసరం లేదు. చాలా పనులకు ఇది సరిపోతుంది.
వెబ్హుక్ వేగంగా ఉంటుంది, ట్రాఫిక్ ఖర్చు తక్కువ, కానీ దానికి డొమైన్ మరియు సర్టిఫికెట్ అవసరం:
location /bot/token {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
మీకు Let's Encrypt మరియు రివర్స్ ప్రాక్సీ అవసరం. Telegram సెల్ఫ్-సైన్డ్ సర్టిఫికెట్లను ఇష్టపడదు — సాధారణ సర్టిఫికెట్ ఉపయోగించండి.
ఒకేసారి బాట్ యొక్క రెండు కాపీలు ఎప్పుడూ నడవకూడదు: Telegram అప్డేట్లను ఒకే గ్రహీతకు పంపుతుంది, దాంతో బాట్లు అప్పుడప్పుడు మాత్రమే స్పందిస్తాయి. మార్పుల తర్వాత restart చేయండి, రెండోసారి లాంచ్ చేయకండి.
డేటా
సెట్టింగ్లు మరియు గణాంకాలకు SQLite సరిపోతుంది — బాట్ పక్కనే ఒక ఫైల్. బాట్కు వెబ్ ప్యానెల్ లేదా బహుళ ప్రాసెస్లు ఉంటే మాత్రమే ప్రత్యేక డేటాబేస్ సర్వర్ అవసరం.
సాధారణ తప్పులు
| లక్షణం | కారణం |
|---|---|
Conflict: terminated by other getUpdates | బాట్ యొక్క రెండు కాపీలు నడుస్తున్నాయి |
| రాత్రి తర్వాత బాట్ నిశ్శబ్దమవుతుంది | Restart=always కాన్ఫిగర్ చేయలేదు, నెట్వర్క్ డ్రాప్లో ప్రాసెస్ క్రాష్ అయింది |
Unauthorized | టోకెన్ రద్దు చేయబడింది లేదా అదనపు స్పేస్లతో కాపీ అయింది |
| లాగ్లు లేవు | అవుట్పుట్ బఫరింగ్, లేదా stdout బదులు ఫైల్లో రాయడం |
| మాన్యువల్గా పనిచేస్తుంది, సర్వీస్గా క్రాష్ అవుతుంది | systemd లో ఎన్విరాన్మెంట్ వేరియబుల్స్ లేవు |
స్క్రీన్షాట్, పబ్లిక్ రిపాజిటరీ లేదా ఇతరుల చాట్లో కనిపించిన టోకెన్ రాజీపడినట్లే. దాన్ని BotFather ద్వారా రద్దు చేసి
.envఫైల్ను మార్చండి — ఎవరూ గమనించరని ఎప్పుడూ అనుకోకండి.