OffshoreVps
الشروحات8 أكتوبر 20265 دقيقة للقراءةبقلم فريق OffshoreVps

كيف تستضيف بوت Telegram على VPS

احصل على رمز البوت، واكتب بوت Python، وخزّن الرمز بأمان، وأبقِه يعمل 24/7 عبر خدمة systemd.

يجب أن يعمل بوت Telegram طوال الوقت ليرد على الرسائل. تشغيله على حاسوبك المحمول يعني أنه يتوقف كلما أغلقت الغطاء. يحل VPS صغير ذلك بدولارات قليلة شهرياً. يشغّل هذا الدليل بوت Python كخدمة systemd ليبدأ عند الإقلاع ويُعاد تشغيله بعد أي انهيار.

نافذة طرفية على VPS تعرض الأوامر المستخدمة لاستضافة بوت Telegram، تبدأ بـ “sudo apt update && sudo apt install -y python3 p”
نوع الأوامر التي ستشغّلها على خادمك في هذا الدليل.

ما حجم VPS المناسب؟

معظم البوتات خفيفة. تكفي خطة بـ 1 إلى 2 vCPU وذاكرة 2 GB من RAM. راجع استضافة بوتات Telegram للخطط المقترحة.

الخطوة 1: احصل على رمز البوت

تحدّث إلى @BotFather على Telegram، وأرسل /newbot، واختر اسماً ومعرّفاً ينتهي بـ bot، وانسخ الرمز. تعامل معه ككلمة مرور، لأن أي شخص يملكه يستطيع التحكم في البوت.

الخطوة 2: جهّز الخادم

sudo apt update && sudo apt install -y python3 python3-venv
sudo adduser --disabled-password --gecos "" botuser
sudo -iu botuser
mkdir ~/mybot && cd ~/mybot
python3 -m venv .venv
. .venv/bin/activate
pip install python-telegram-bot

الخطوة 3: اكتب بوتاً صغيراً

# bot.py
import os
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes

async def start(update: Update, ctx: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("Hello! I am running on a VPS.")

app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

لا يحتاج الاستطلاع (polling) إلى منافذ مفتوحة، لذلك لا تضطر إلى إعداد نطاق أو webhook.

خطوات هذا الدليل بالترتيب: 1. أي حجم من VPS؟؛ 2. احصل على رمز البوت؛ 3. اكتب بوتاً صغيراً؛ 4. خزّن الرمز بأمان؛ 5. التحديث والمراقبة؛ 6. الاستطلاع أم webhook؟
خطوات هذا الدليل بالترتيب.

الخطوة 4: خزّن الرمز بأمان

echo "BOT_TOKEN=123456:ABC..." > ~/mybot/.env
chmod 600 ~/mybot/.env

الخطوة 5: شغّله كخدمة

بعد العودة كمستخدم مسؤول، أنشئ /etc/systemd/system/mybot.service:

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

[Service]
User=botuser
WorkingDirectory=/home/botuser/mybot
EnvironmentFile=/home/botuser/mybot/.env
ExecStart=/home/botuser/mybot/.venv/bin/python bot.py
Restart=always
RestartSec=5

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

التحديث والمراقبة

  • حدّث الشيفرة، ثم sudo systemctl restart mybot.
  • افحص السجلات بـ journalctl -u mybot -n 100.
  • استخدم النسخ الاحتياطية إذا كان البوت يخزّن بيانات.

الاستطلاع أم webhook؟

الاستطلاع هو الأبسط ويكفي لمعظم البوتات. استخدم webhook إذا احتجت إلى تسليم فوري بحجم كبير، وهو يتطلب نطاقاً وHTTPS. راجع الاستضافة مع Nginx وHTTPS.