Telegram bot inayoendesha tu wakati laptop yako iko wazi haiendeshi kweli — inafanya demo. Kuiwa na mtandaoni kweli, ikijibu saa 3 usiku, ikibaki kupitia reboots zako na crashes zake, inahitaji kuishi kwenye seva. Hii ndio njia nzima, mwanzo hadi mwisho, na amri.
Habari njema kwanza: bot ni mzigo mdogo. Kwa kiasi kikubwa inakaa idle ikisubiri messages, hivyo sanduku nafuu zaidi huiendesha vizuri — hakuna dedicated IP, hakuna domain, hakuna cha fancy.
1. Pata token kutoka BotFather
Katika Telegram, message @BotFather, tuma /newbot, chagua jina na username. Inakukabidhi token inayoonekana kama 12345:AAH.... Itendee kama nenosiri — yeyote aliye nayo anadhibiti bot yako.
2. Bot ndogo
SSH ndani ya seva, weka Python na maktaba:
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
Bot inayojibu — ~/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()
Angalia inasoma token kutoka environment variable — si hardcoded. Hilo linahusika katika hatua inayofuata.
3. Sehemu inayoiweka ikiendesha kweli: systemd
Kama unaendesha tu python bot.py, inakufa mara unapofunga SSH. Huduma ya systemd ndicho kinachoifanya ibaki kupitia logout, crashes, na reboots. Unda /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
Kisha:
sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot # inapaswa kusema active (running)
journalctl -u mybot -f # live logs
Restart=always ndio mstari unaofanya kazi halisi — crash, na inarudi kwa sekunde 5. enable maana yake inakuja baada ya reboot. Hiyo ndiyo tofauti nzima kati ya "niliendesha bot mara moja" na "bot yangu iko juu."
4. Kwa nini hakuna domain au ports zilizo wazi
Bot inatumia long polling — inafikia Telegram kwa masasisho, hivyo hakuna kinachohitaji kufikia ndani. Hakuna URL ya umma, hakuna sheria ya firewall inayoingia, hakuna dedicated IP. Ndio hasa sababu NAT VPS (IP inayoshirikiwa, SSH kwenye port) ni gharama nzuri na nafuu kwa bot. Webhooks zipo kwa wingi wa juu sana, lakini karibu kwa hakika huzihitaji kuanza.
Tahadhari za uaminifu
- Usafi wa token: hapa iko inline katika faili la unit kwa uwazi — sawa kwenye sanduku lililofungwa, lakini kwa chochote kinachoshirikiwa, ipakie kutoka
EnvironmentFileya root-pekee badala yake, na kamwe usiicommit kwa git. Imevuja? Weka revoke katika BotFather, toa mpya. - Bots nzito: kama bot yako hufanya kazi yenyewe (image generation, modeli ya ndani), si ndogo tena — panda saizi ipasavyo.
Ndio hivyo. Funga sanduku kwanza na security checklist, ingiza huduma, na bot yako inabaki mtandaoni iwe wewe au la. Kwenye VPS iliyolipwa kwa crypto unaweza kuiwa ikiendesha dakika moja baada ya kuamua.
Maoni
Bado hakuna maoni. Kuwa wa kwanza.