ላፕቶፔ ክፍት ሲሆን ብቻ የሚሄድ Telegram bot በእውነት እየሄደ አይደለም — እያሳየ ነው። በእውነት online እንዲኖረው፣ በ3am እየመለሰ፣ reboots ችዎን እና የራሱን crashes እየተረፈ፣ በserver ላይ መኖር አለበት። ሙሉ መንገዱ ይኸውና፣ ከመጀመሪያ እስከ መጨረሻ፣ ከትዕዛዞች ጋር።
መልካም ዜና መጀመሪያ: bot ጥቃቅን workload ነው። በአብዛኛው messages እየጠበቀ idle ይቀመጣል፣ ስለዚህ ርካሹ box በደንብ ያሄደዋል — dedicated IP የለም፣ domain የለም፣ fancy ምንም የለም።
1. token ከBotFather ያግኙ
በTelegram ውስጥ @BotFatherን መልእክት ይላኩ፣ /newbot ይላኩ፣ ስም እና username ይምረጡ። እንደ 12345:AAH... የሚመስል token ይሰጥዎታል። እንደ password ይያዙት — ያለው ማንም botዎን ይቆጣጠራል።
2. minimal bot
ወደ serverሩ SSH ይግቡ፣ Python እና libraryን ያዋቅሩ:
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 — ~/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()
tokenን ከenvironment variable እንደሚያነብ ያስተውሉ — hardcoded አይደለም። ያ በሚቀጥለው ደረጃ ጠቃሚ ነው።
3. በእውነት እያሄደ የሚያቆየው ክፍል: systemd
python bot.pyን ብቻ ካሄዱ፣ SSH በዘጉ ቅጽበት ይሞታል። systemd service logout፣ crashes እና reboots እንዲተርፍ የሚያደርገው ነው። /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
ከዚያ:
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 እውነተኛውን ስራ የሚሠራው መስመር ነው — crash ያድርግ፣ እና በ5 ሰከንድ ተመልሷል። enable ማለት ከreboot በኋላ ይነሳል ማለት ነው። ያ "አንድ ጊዜ bot አሄድኩ" እና "botዬ up ነው" መካከል ያለው ሙሉ ልዩነት ነው።
4. ለምን domain ወይም ክፍት ports የለም
botው long polling ይጠቀማል — ለupdates ወደ Telegram ይደርሳል፣ ስለዚህ ምንም ወደ ውስጥ መድረስ አያስፈልገውም። የሕዝብ URL የለም፣ ገቢ firewall rule የለም፣ dedicated IP የለም። ለዚህም ነው NAT VPS (የተጋራ IP፣ SSH በport) ለbot ጥሩ እና ርካሽ ቤት የሆነው። Webhooks ለበጣም ከፍተኛ volume አሉ፣ ግን ለመጀመር ማለት ይቻላል አያስፈልጓቸውም።
ታማኝ ማሳሰቢያዎች
- Token hygiene: እዚህ ለግልጽነት inline በunit file ውስጥ ነው — በተቆለፈ box ላይ ጥሩ፣ ግን ለተጋራ ለማንኛውም ነገር፣ ይልቁንም ከroot-only
EnvironmentFileይጫኑት፣ እና ወደ git በጭራሽ አይcommit። ፈሰሰ? በBotFather ይሻሩ፣ አዲስ ይስጡ። - ከባድ bots: botዎ ስራውን ራሱ የሚሠራ ከሆነ (image generation፣ local model)፣ ከእንግዲህ ጥቃቅን አይደለም — በዚያ መሠረት ያሳድጉ።
ያ ነው። boxን መጀመሪያ በsecurity checklist ይቆልፉ፣ serviceን ይጣሉ፣ እና botዎ እርስዎ online ይሁኑ አይሁኑ online ይቆያል። በcrypto-paid VPS ላይ ከወሰኑ አንድ ደቂቃ በኋላ እያሄደ ማድረግ ይችላሉ።
አስተያየቶች
እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።