نشر بوت تيليجرام على VPS: شرح كامل + حل أشهر المشاكل

"بوتي شغال على جهازي… لكن كيف أخليه يشتغل وأنا نايم؟"

هذا السؤال طرحه عليّ صديق قبل سنتين. كان قد أنهى لتوه بناء بوت تيليجرام جميل. يشتغل. يستجيب. كل شيء تمام. لكن البوت يموت لحظة إغلاق اللابتوب.

قلت له: "تحتاج VPS." قال: "الفي بي إس هذا معقد؟" قلت له: "أبداً. بس لازم تعرف شوية أشياء. تعال."

هذا الدليل هو ما شرحته له في تلك الليلة. مشروح بالتفصيل الممل، مع كل مشكلة واجهته — أنا بنفسي — وحلولها.

صورة توضيحية تشرح تشغيل بوت تيليجرام على VPS باستخدام Ubuntu و PM2 مع بقاء البوت يعمل 24/7 حتى بعد إغلاق الحاسوب، مع واجهة Terminal وسيرفر سحابي وتقنيات Webhook و Nginx


📋 الخلاصة في دقيقة

  1. اختر VPS رخيص (5 دولارات شهرياً تكفي)
  2. ثبت نظام Ubuntu (الأسهل)
  3. ارفع كود البوت إلى السيرفر
  4. ثبت المكتبات المطلوبة
  5. شغّل البوت باستخدام PM2 أو systemd
  6. تأكد أن Webhook شغال (أو استخدم polling)
  7. اختبر أن البوت يعمل بعد إغلاق حاسوبك

ما هو "نشر بوت تيليجرام على VPS"؟

ببساطة: هو نقل كود البوت من حاسوبك الشخصي إلى خادم افتراضي يعمل 24 ساعة. هذا الخادم (VPS) لا ينام. لا يُغلق. لا ينقطع عنه الإنترنت. بوتك يصبح حياً دائماً.

لماذا تحتاج VPS أصلاً؟

حاسوبك ينام. يفصل كهرباء. تسافر وتغلقه. البوت يموت معه. VPS هو كمبيوتر في السحاب. تدفع مبلغاً بسيطاً شهرياً. يبقى شغالاً إلى الأبد.

تجربتي الأولى: كنت أشغل بوت على لابتوبي القديم. كان البوت مهماً — يرسل تنبيهات لمجموعة فيها 300 شخص. ذات ليلة انقطع التيار الكهربائي. 6 ساعات. 300 شخص لم يستلموا إشعاراتهم. صباح اليوم التالي: 3 رسائل غاضبة.

من ذلك اليوم؟ كل بوت على VPS.

اختيار VPS المناسب: لا تصرف أكثر مما تحتاج

تسمع أسماء: DigitalOcean. Linode. Vultr. AWS. Google Cloud. القائمة طويلة.

اختياري الشخصي: DigitalOcean. لماذا؟ لأن واجهتهم نظيفة. ودروسهم ممتازة. وسعرهم يبدأ من 6 دولارات. لكن إن كنت تريد أرخص شيء: Vultr عندهم خطة بـ 2.50 دولار. تكفي لبوت صغير. أو Oracle Cloud عندهم خطة مجانية تماماً (نعم، مجانية. لكن التسجيل معقد قليلاً).

نصيحة: لا تشتر أرخص VPS بذاكرة 512MB. رأيت بوتات تستهلك كل الذاكرة وتنهار. ابدأ بـ 1GB ذاكرة على الأقل. تدفع دولاراً إضافياً وتنام مرتاحاً.

الخطوة الأولى: شراء VPS وإعداده

1. اختر المزود

  • DigitalOcean: للمبتدئين. الأسهل. (هذا ما أستخدمه)
  • Vultr: الأرخص. جيد للمشاريع الصغيرة جداً
  • Linode: وسط. جيد للكل

2. اختر نظام التشغيل

أوبونتو. فقط أوبونتو.

لا تفكر. لا تبحث عن مقارنة. Ubuntu 22.04 LTS. كل الدروس مكتوبة له. كل المشاكل لها حلول. 99% من مجتمع تيليجرام يستخدم أوبونتو لبوتاته. لا تكن مختلفاً هنا.

3. اختر الموقع

اختر أقرب موقع جغرافي لجمهور بوتك. إذا كان جمهورك عربياً: أوروبا (أمستردام أو فرانكفورت). ping أقل يعني استجابة أسرع.

الخطوة الثانية: الاتصال بالسيرفر وتجهيزه

بعد الشراء، سيعطيك المزود: عنوان IP، اسم مستخدم (عادةً root)، كلمة مرور.

من حاسوبك (ويندوز، ماك، لينكس): افتح Terminal واكتب:


ssh root@عنوان_IP
  

سيطلب كلمة المرور. لأول مرة، سيجبرك على تغيير كلمة المرور. غيّرها. لا تنسها. جدياً.

تذكير مهم: إذا كنت تستخدم ويندوز، نزّل PuTTY. أو الأفضل: استخدم Windows Terminal الجديد. يدعم SSH مباشرة. أسهل.

الآن أنت داخل السيرفر. شاشة سوداء. لا تخف.

تحديث النظام (ضروري جداً):


apt update
apt upgrade -y
  

هذا يحمّل آخر التحديثات الأمنية. لا تتخط هذه الخطوة.

تثبيت بايثون (إذا كنت ستبرمج بلغة بايثون):


apt install python3 python3-pip -y
  

تثبيت الأدوات المساعدة:


apt install git nano curl -y
  
  • git: لنسخ الكود من GitHub
  • nano: محرر نصوص بسيط داخل Terminal
  • curl: لاختبار الاتصالات

الخطوة الثالثة: رفع كود البوت إلى السيرفر

عندك طريقتان:

الطريقة الأسهل: GitHub

ارفع كود بوتك إلى GitHub (مستودع خاص — Private). ثم من السيرفر:


git clone https://github.com/username/repo.git
  

هذه أفضّل طريقة. أي تعديل في الكود مستقبلاً؟ فقط git pull من السيرفر ويصبح كل شيء محدثاً.

الطريقة المباشرة: SCP

إذا لا تريد GitHub:


scp -r /مسار/مجلد/البوت root@عنوان_IP:/home/
  

تنقل الملفات مباشرة من جهازك للسيرفر.

الخطوة الرابعة: تشغيل البوت لأول مرة

دخل مجلد البوت:


cd /home/مجلد_البوت
  

ثبت المكتبات المطلوبة:


pip3 install -r requirements.txt
  

أو يدوياً:


pip3 install python-telegram-bot
  

الآن: شغّل البوت


python3 bot.py
  

لحظة الحقيقة: إذا ظهرت رسائل في Terminal تبين أن البوت يعمل… أنت في الاتجاه الصحيح. لكن — لا تغلق Terminal. إذا أغلقتها… البوت يموت.

المشكلة الكبيرة: كيف يبقى البوت شغالاً بعد إغلاق Terminal؟

أنت الآن في مشكلة. إذا ضغطت Ctrl+C أو أغلقت النافذة… البوت يتوقف. الحل: تحتاج أداة تشغل البوت في الخلفية. وتعيد تشغيله إذا توقف. وتضمن أنه يبدأ مع بداية تشغيل السيرفر.

الخيار 1: PM2 (الأسهل)

PM2 هو مدير عمليات. صنع أساساً لـ Node.js لكنه يعمل مع بايثون أيضاً.

تثبيته:


npm install pm2 -g
  

(إذا لم تكن Node.js مثبتة: apt install nodejs npm -y)

تشغيل البوت:


pm2 start bot.py --interpreter python3
  

جعله يبدأ تلقائياً مع السيرفر:


pm2 startup
pm2 save
  

أوامر مفيدة:

  • pm2 status — هل البوت شغال؟
  • pm2 logs bot — شوف سجلات البوت
  • pm2 restart bot — أعد تشغيل البوت
  • pm2 stop bot — أوقف البوت

الخيار 2: systemd (الأصعب لكنه الأفضل)

systemd هو مدير النظام نفسه. مدمج في أوبونتو. لا يحتاج تثبيت.

أنشئ ملف خدمة:


nano /etc/systemd/system/telegrambot.service
  

ضع هذا المحتوى:


[Unit]
Description=Telegram Bot
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/مجلد_البوت
ExecStart=/usr/bin/python3 /home/مجلد_البوت/bot.py
Restart=always

[Install]
WantedBy=multi-user.target
  

ثم:


systemctl daemon-reload
systemctl enable telegrambot
systemctl start telegrambot
systemctl status telegrambot   # تأكد أنه شغال
  

Webhook أم Polling على VPS؟

إذا كنت ستستخدم Webhook (الطريقة الأسرع والأفضل):

تحتاج:

  1. اسم نطاق (Domain) يشير إلى IP السيرفر
  2. شهادة SSL (مجاناً من Let's Encrypt)
  3. Nginx (خادم ويب)

خطوات مختصرة:

تثبيت Nginx:


apt install nginx -y
  

تثبيت Certbot (لشهادة SSL):


apt install certbot python3-certbot-nginx -y
  

الحصول على شهادة SSL:


certbot --nginx -d yourdomain.com
  

إعداد Nginx كـ Reverse Proxy:


nano /etc/nginx/sites-available/default
  

أضف:


server {
    listen 443 ssl;
    server_name yourdomain.com;
    
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}
  

إعادة تشغيل Nginx:


systemctl restart nginx
  

تسجيل Webhook: من Terminal أو المتصفح:


https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://yourdomain.com
  

إذا كنت تفضل Polling (أبسط): لا تحتاج Domain. لا SSL. لا Nginx. فقط تأكد أن كودك يستخدم Polling وشغّل البوت بـ PM2 أو systemd. خلاص. أبسط. لكنه أقل احترافية وأبطأ قليلاً.

أشهر المشاكل بعد نشر بوت تيليجرام على VPS

المشكلة 1: Webhook لا يعمل — خطأ SSL

القصة: قضيت 3 ساعات في ليلة جمعة أحاول أن أفهم لماذا Webhook لا يعمل. كان كل شيء يبدو صحيحاً. الدومين يشير للسيرفر. Nginx يعمل. البوت يعمل. لكن Webhook يرفض.

السبب؟ شهادة SSL انتهت صلاحيتها. نعم. Let's Encrypt تصدر شهادات تنتهي كل 90 يوماً. إذا لم تجدد تلقائياً… Webhook يموت بصمت. لا رسالة خطأ واضحة. فقط "Webhook fails."

الحل: تأكد من التجديد التلقائي:


certbot renew --dry-run
    

إذا نجح — التجديد التلقائي يعمل. إذا لا — شغّله.

المشكلة 2: خطأ 502 Bad Gateway

القصة: بوت كان يعمل شهراً كاملاً. فجأة: 502 Bad Gateway.

السبب؟ أعدت تشغيل السيرفر. Nginx بدأ قبل أن يبدأ البوت. Nginx يحاول توجيه الطلبات لمنفذ 8080. المنفذ فارغ. 502.

الحل: تأكد أن systemd يشغّل البوت أولاً، ثم Nginx. أو ببساطة: أعد تشغيل البوت بعد السيرفر وسترجع الأمور.

المشكلة 3: نسيان فتح المنافذ في جدار الحماية

القصة: كل شيء تمام. Webhook مسجل. Nginx يعمل. لكن الطلبات لا تصل للبوت.

السبب: جدار الحماية (Firewall) يمنع الاتصال على المنفذ 443.

الحل:


ufw allow 443
ufw allow 80
ufw allow 22    # لا تغلق هذا أبداً — SSH
ufw enable
    

المشكلة 4: "Address already in use"

القصة: حاولت تشغيل البوت. يقول: Address already in use.

السبب: البوت شغال بالفعل. في مكان ما. نسخة أخرى.

الحل: تأكد من PM2: pm2 status وأوقف البوت القديم. أو تأكد من systemd: systemctl status telegrambot. أو ابحث عن العملية يدوياً: ps aux | grep python واقتلها.

المشكلة 5: البوت يعمل ثم يتوقف بعد فترة

القصة: كل شيء تمام. تترك البوت. بعد ساعتين… توقف.

السبب: غالباً استهلاك ذاكرة. البوت يستهلك ذاكرة أكثر مما يملك السيرفر. النظام يقتل العملية.

الحل: راقب الذاكرة: htop وشوف الاستهلاك. راجع كودك: هل تفتح ملفات ولا تغلقها؟ هل تحمّل بيانات ضخمة في الذاكرة؟ ارفع خطة VPS لذاكرة أكبر.

حصلت معي شخصياً هذه. بوتي كان يقرأ ملف 50MB كل مرة تأتيه رسالة. كان يحمّل الملف كاملاً في الذاكرة. في VPS بـ 512MB رام، هذا انتحار. الحل: استخدمت streaming بدل تحميل الملف كاملاً.

جدول مقارنة: PM2 vs systemd

الميزة PM2 systemd
السهولة ★★★★★ سهل جداً ★★★ متوسط
إعادة التشغيل التلقائي نعم نعم
التشغيل عند بداية السيرفر نعم نعم
احتياج تثبيت إضافي يحتاج Node.js لا يحتاج (مدمج)
مراقبة الذاكرة مدمج يحتاج أدوات خارجية
مناسب لـ المبتدئين والمشاريع الصغيرة المشاريع الجادة والإنتاجية

رأيي الشخصي: PM2 للمبتدئين. systemd للمحترفين. لكن كلاهما يؤدي الغرض. إذا كنتَ في أول طريقك: PM2. ابسط. أسرع. مفهوم.

قائمة مراجعة قبل أن تنام الليلة

  • VPS تم شراؤه وتستطيع الدخول عليه
  • كود البوت مرفوع على السيرفر
  • المكتبات مثبتة ولا أخطاء
  • البوت يعمل يدوياً بدون أخطاء
  • PM2 أو systemd معدّ ويشتغل
  • إذا Webhook: SSL ساري و Nginx يعمل
  • إذا Polling: يتصل بتيليجرام بدون مشاكل
  • جدار الحماية مفتوح على المنافذ الصحيحة
  • أغلقت الـ Terminal… واختبرت أن البوت ما زال يعمل

الأسئلة الشائعة

كم تكلفة تشغيل بوت على VPS؟

شهرياً: من 0$ (Oracle Cloud المجانية) إلى 6$ (DigitalOcean). المتوسط: 5$. هذا سعر وجبة.

هل يمكن تشغيل أكثر من بوت على نفس VPS؟

نعم. طالما الذاكرة تسمح. عندي VPS واحد عليه 3 بوتات. فقط تأكد من استخدام منافذ مختلفة لو استخدمت Webhook.

كيف أنقل بوتي من VPS قديم لآخر جديد؟

انسخ الكود. سجل Webhook جديد على السيرفر الجديد. احذف Webhook القديم. وابدأ.

هل يجب أن يكون لدي دومين مدفوع؟

إذا استخدمت Polling: لا تحتاج دومين أبداً. إذا استخدمت Webhook: تحتاج دومين. لكن ممكن تستخدم دومينات رخيصة (.xyz أو .online) بسعر دولار سنوياً.

ما أفضل VPS لمشروع بوت صغير؟

للمشاريع الصغيرة جداً: Vultr 6$ أو خطة DigitalOcean الأساسية. للمشاريع الجادة: DigitalOcean 12$ أو Linode 10$.

هل يمكنني استخدام cPanel أو استضافة مشتركة بدل VPS؟

تقنياً: ممكن. عملياً: لا أنصح. تحتاج صلاحيات لتنصيب المكتبات وتشغيل systemd أو PM2. الاستضافة المشتركة لا تمنحك هذا. VPS هو الحل.

في تلك الليلة، بعد ساعتين من الشرح، قال لي صديقي: "هسا فهمت. بس كان نفسي حد يشرحلي كدا من الأول."

هذا هو الدليل الذي تمنيته قبل 3 سنوات عندما رفعت أول بوت لي. بوت تيليجرام بدون VPS ليس بوتاً حقيقياً. هو مجرد تجربة على حاسوبك.

ارفع بوتك اليوم. نام الليلة. واصحَ بكرة. بوتك سيظل شغالاً. هذا هو الشعور الذي تدفع 5 دولارات من أجله.

أنهِ قراءة هذا. افتح متصفحك. اشتري VPS. وابدأ الخطوة الأولى. اليوم.

أسعد جلال
بواسطة : أسعد جلال
كاتب تقني وصانع محتوى متخصص في الذكاء الاصطناعي والسيو والتدوين والتقنيات الحديثة. أشارك خبرتي عبر مقالات وشروحات عملية تعتمد على التجربة الفعلية، مع التركيز على تبسيط المواضيع المعقدة وتقديم محتوى دقيق ومنظم يساعد القارئ على التعلم والتطبيق وتحقيق نتائج ملموسة.
تعليقات