EQVPS

কীভাবে একটি VPS-এ একটি Telegram bot হোস্ট করবেন (আর এটি চালু রাখবেন)

Jun 15, 2026 · 2 min read · EQVPS Team

যে Telegram bot শুধু আপনার ল্যাপটপ খোলা থাকাকালীন চলে সেটি আসলে চলছে না — এটি demo করছে। এটিকে সত্যিই online রাখতে, ভোর 3টায় উত্তর দিতে, আপনার reboot ও নিজের ক্র্যাশ টিকিয়ে দিতে, এটিকে একটি সার্ভারে থাকতে হবে। এই যে পুরো পথ, শুরু থেকে শেষ, কমান্ড সহ।

আগে সুখবর: একটি bot একটি ক্ষুদ্র workload। এটি বেশিরভাগ বার্তার অপেক্ষায় idle বসে থাকে, তাই সবচেয়ে সস্তা বক্স এটি ভালোই চালায় — কোনো dedicated IP নয়, ডোমেইন নয়, কিছুই বিদেশি-বিচিত্র নয়।

1. BotFather থেকে একটি token পান

Telegram-এ, @BotFather-কে বার্তা দিন, /newbot পাঠান, একটি নাম ও username বাছুন। এটি আপনাকে 12345:AAH...-র মতো দেখতে একটি token দেয়। এটিকে একটি password-এর মতো ভাবুন — এটি সহ যে কেউ আপনার bot নিয়ন্ত্রণ করে।

2. একটি ন্যূনতম bot

সার্ভারে 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 থেকে পড়ে — hardcode নয়। পরের ধাপে ওটা গুরুত্বপূর্ণ।

3. যে অংশ আসলে এটিকে চালু রাখে: systemd

আপনি কেবল python bot.py চালালে, আপনি SSH বন্ধ করার মুহূর্তে এটি মরে। একটি systemd সার্ভিস-ই এটিকে logout, ক্র্যাশ ও reboot টিকিয়ে দেয়। /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      # active (running) বলা উচিত
journalctl -u mybot -f           # live log

Restart=always-ই সেই লাইন যা আসল কাজটা করছে — ক্র্যাশ, আর এটি 5 সেকেন্ডে ফিরে আসে। enable মানে এটি একটি reboot-এর পরে উঠে আসে। "আমি একবার একটি bot চালিয়েছি" ও "আমার bot চালু"-র মধ্যে পুরো পার্থক্য সেটাই।

4. কেন কোনো ডোমেইন বা খোলা পোর্ট নয়

bot long polling ব্যবহার করে — এটি update-এর জন্য Telegram-এ পৌঁছায়, তাই কিছু ভেতরে পৌঁছানোর দরকার নেই। কোনো পাবলিক URL নয়, inbound firewall নিয়ম নয়, dedicated IP নয়। ঠিক এজন্যই একটি NAT VPS (shared IP, একটি পোর্টে SSH) একটি bot-এর একটি ঠিক ও সস্তা ঘর। Webhook খুব উচ্চ ভলিউমের জন্য আছে, কিন্তু শুরু করতে আপনার প্রায় নিশ্চিতভাবেই এদের লাগে না।

সৎ সতর্কতা

ব্যস। আগে security checklist দিয়ে বক্স লক করুন, সার্ভিসটি ফেলুন, আর আপনি থাকুন বা না-থাকুন আপনার bot online থাকে। একটি ক্রিপ্টো-পরিশোধিত VPS-এ আপনি সিদ্ধান্তের এক মিনিট পরে এটি চালু করতে পারেন।

FAQ

একটি Telegram bot-এর জন্য আমার কোন VPS দরকার?

সবচেয়ে ছোটটা। একটি Telegram bot বেশিরভাগ idle, update-এর অপেক্ষায়, তাই 1 GB RAM ও 2 core বেশিরভাগ bot-এর জন্য যথেষ্ট — এমনকি বেশ ব্যস্তগুলোও। শুধু তখনই বেশি লাগে যদি bot নিজে ভারী কাজ করে (image processing, একটি local মডেল, একটি বড় database)।

SSH বন্ধ করার পরে একটি Telegram bot কীভাবে চালু রাখব?

এটিকে একটি systemd সার্ভিস হিসেবে চালান। এটিকে আপনার terminal-এ চালু করার বিপরীতে, systemd আপনি log out করার পরে এটিকে জীবিত রাখে, ক্র্যাশ করলে restart করে, ও একটি reboot-এর পরে আবার শুরু করে। ওটাই একটি খেলনা ও চালু-থাকা কিছুর মধ্যে পার্থক্য।

আমি disconnect করলে আমার bot থামে কেন?

কারণ আপনি এটি আপনার SSH সেশনে শুরু করেছেন, তাই সেই সেশন শেষ হলে এটি মরে। এটিকে একটি systemd সার্ভিসে (বা একটি দ্রুত পরীক্ষার জন্য tmux-এ) মুড়ুন আর এটি আপনার login থেকে স্বাধীনভাবে চলে।

একটি Telegram bot-এর জন্য কি একটি ডোমেইন বা webhook দরকার?

না। Long polling (getUpdates)-এর কোনো পাবলিক URL, ডোমেইন, বা inbound পোর্ট লাগে না — bot Telegram-এ পৌঁছায়। এজন্যই কোনো dedicated IP ছাড়া একটি NAT VPS একটি bot-এর জন্য পুরোপুরি ঠিক। Webhook উচ্চ ভলিউমের জন্য একটি ঐচ্ছিক optimization।

একটি VPS-এ আমার bot token রাখা কি নিরাপদ?

হ্যাঁ, যদি আপনি এটিকে একটি password-এর মতো ভাবেন: এটি একটি environment variable বা শুধু bot-এর ব্যবহারকারী পড়তে-পারা একটি ফাইলে রাখুন, কখনও git-এ commit করবেন না, ও SSH key দিয়ে সার্ভার লক করুন। একটি token ফাঁস হলে, BotFather-এ এটি revoke করুন ও একটি নতুন ইস্যু করুন।

← Back to blogSee plans & pricing →

মন্তব্য

এখনো কোনো মন্তব্য নেই। প্রথম হোন।

একটি মন্তব্য দিন

মন্তব্য প্রকাশের আগে মডারেট করা হয়।