انتقل إلى المحتوى

الحلول · البوتات

VPS لبوت Telegram

يستهلك البوت في الخمول أقل من مئة ميغابايت ويقضي وقته في الانتظار، لذا لا يكون الخادم هو القيد تقريباً أبداً: U1-1 مقابل $6.90 شهرياً يشغّل بوتاً كما ينبغي. ما يحدد فاتورتك فعلاً هو الوسائط، وما إذا كنت تشغّل خادم Bot API خاصاً بك. كلاهما مسألة حساب، وكلاهما أدناه.

القرار الكامن وراء القرار

Webhook أم long polling

هذا، لا الخطة، ما يحدد إن كان بوتك يحتاج إلى نطاق وشهادة ومنفذ مفتوح.

Long polling

يتصل بوتك اتصالًا صادرًا بـ Telegram وينتظر التحديثات. لا نطاق، ولا شهادة TLS، ولا منفذ مفتوح على الإنترنت، ويعمل خلف NAT. إنها أسرع طريقة لتشغيل شيء ما، وهي حل دائم جيد تمامًا لمعظم البوتات.

Webhook

Telegram يتصل بك. يحتاج إلى عنوان عام وشهادة صالحة ومنفذ مفتوح، وكل ذلك متاح في أي خطة هنا، وفي المقابل لا توجد حلقة استطلاع ويتوسع بشكل أفضل تحت حمل حقيقي. انتقل حين يستدعي الحمل أو زمن الاستجابة ذلك، لا قبله.

الحساب

كم بوتًا تستوعب الخطة فعلًا

البوتات = (RAM − 300 MB لنظام التشغيل) ÷ ما يشغله بوت واحد. العمودان هما بوت أوامر عديم الحالة وبوت يحمل ORM ومجدولًا وذاكرة تخزين مؤقت.

سعة عمليات البوت وحصة نقل البيانات الشهرية لكل خطة، مع أسعار مباشرة
الخطةRAMبوتات خفيفةبوتات ثقيلةنقل البياناتالسعرنشر
U1-1بوت واحد، لأي حجم من الجمهور1 GB124Unmetered$6.90نشر
C1-1-25بوت واحد، بترافيك مقيس لكن رخيص1 GB1241 TB$9.90نشر
GL2-4عدة بوتات، أو بوت مع قاعدة بيانات4 GB6325Unmetered$11.90نشر
BD-8خادم Bot API مستضاف ذاتياً8 GB1315232 TB$12.90نشر

عدد مستخدمي بوتك ليس في هذا الحساب، لأنه ليس جزءًا من المشكلة: يسلّم Telegram عمليتك التحديثات واحدًا تلو الآخر بدلًا من فتح اتصال لكل مستخدم. ما يغيّر الإجابة هو الحالة التي تحتفظ بها بنفسك: ذاكرة تخزين مؤقت كبيرة، أو قاعدة بيانات داخل العملية، أو نموذج.

الرقم الذي يحدد الفاتورة

الوسائط، لا الذاكرة

متوسط حجم الملف × الرسائل يوميًا × 30. الاتجاهان يُحتسبان: الملف المستلَم ترافيك أيضًا.

نقل البيانات الشهري حسب نوع الرسالة عند مئة وخمسة آلاف وخمسين ألف رسالة يوميًا
ما ينقله البوت100/يوم5,000/يوم50,000/يوم
نص فقطأمر ورد. تكلفته شبه معدومة.< 1 GB< 1 GB3 GB
الصورصورة مضغوطة، مرسلة ومستقبلة.< 1 GB44 GB439 GB
الرسائل الصوتية والفيديو القصيرالحمل المعتاد لبوت مجتمع.9 GB439 GB4.3 TB
المستندات والفيديو الطويلالحد الأقصى للتنزيل الذي يفرضه Telegram نفسه على البوت العادي.59 GB2.9 TB28.6 TB

الأمر الوحيد الذي يغيّر الجهاز

يمكن للبوت على Bot API العام تنزيل ملفات حتى 20 MB ورفع ملفات حتى 50 MB (وهي حدود Telegram لا حدودنا)، ولا تمر الملفات بقرصك أبداً. شغّل خادم Bot API خاصاً بك يصبح السقف 2 GB ويصل كل ملف إلى خادمك. عند هذه النقطة لا يعود القرص ونقل البيانات أمراً ثانوياً: يمنحك BD-8 مساحة 100 GB من SSD و32 TB مقابل $12.90، وهي المواصفات المناسبة. وإن لم تكن تفعل ذلك، فلا تدفع مقابله.

بصراحة

ما كنا سنشتريه فعلاً

نحن نشغّل بوت Telegram بأنفسنا. هذا هو الجهاز الذي كنا سنضعه عليه.

لبوت واحد

U1-1 · $6.90/شهر

1 نواة، و1 GB، و15 GB SSD، ولا عدّاد للترافيك، فالبوت الذي يبدأ فجأة بنقل الوسائط لا يمكن أن يُنتج فاتورة لم تتوقعها. ضع البوت تحت systemd مع Restart=always، والطريقة الوحيدة المتبقية لتوقفه هي شيفرتك أنت. وإن تجاوزت سعته، فنقل البوت يعني نسخ مجلد ورمز مميز.

أسئلة

ما يسأل عنه الناس قبل الشراء.

كم تحتاج بوتات Telegram من RAM؟
أقل بكثير مما يُباع عادةً. البوت عملية طويلة الأمد تقضي معظم وقتها في الانتظار: بوت الأوامر عديم الحالة يشغل نحو 60 MB، والبوت الذي يحمل ORM ومجدولًا وذاكرة تخزين مؤقت أقرب إلى 150 MB. وبعد أن يأخذ نظام التشغيل نحو 300 MB، يبقى في جهاز بسعة 1 GB متسع لـ4 بوتات ثقيلة أو 12 بوتات خفيفة. أما عدد المستخدمين فبالكاد يدخل في الحساب، لأن Telegram يسلّم التحديثات إلى عمليتك واحدًا تلو الآخر، لا اتصالًا لكل مستخدم. ما يغيّر الإجابة فعلًا هو الحالة التي تحتفظ بها في الذاكرة بنفسك: ذاكرة تخزين مؤقت كبيرة، أو قاعدة بيانات داخل العملية، أو نموذج.
Webhook أم long polling؟
ابدأ بـ long polling، وانتقل إلى webhooks حين يصبح ذلك مهمًا. مع long polling يفتح البوت اتصالًا صادرًا إلى Telegram وينتظر، فلا يحتاج إلى نطاق ولا شهادة ولا منفذ مفتوح، ما يعني أنه يعمل خلف NAT وهو أسرع طريقة لتشغيل شيء ما. أما webhook فيجعل Telegram يتصل بك أنت، لذا يحتاج إلى عنوان عام وشهادة TLS صالحة ومنفذ مفتوح على الإنترنت، وفي المقابل يلغي حلقة الاستطلاع تمامًا ويتوسع بشكل أفضل حين يكون البوت مشغولًا فعلًا. كلاهما يعمل جيدًا على أصغر جهاز هنا. السبب الصادق للانتقال هو الحمل أو زمن الاستجابة، لا الموضة.
ما حدود حجم الملفات؟
هذه قيود Telegram نفسه، لا قيودنا: يستطيع البوت الذي يستخدم Bot API العام تنزيل ملفات حتى 20 MB ورفع ملفات حتى 50 MB. تشغيل خادم Bot API الخاص بك يرفع ذلك إلى 2 GB، والأهم أنه يجعل الملفات تصل إلى قرص خادمك بدلًا من المرور عبر خوادم Telegram. هذا هو التغيير الوحيد الذي يغيّر فعلًا الجهاز الذي تحتاجه: فجأة يصبح القرص ونقل البيانات مهمين، ولهذا يضع الجدول أعلاه BD-8 مقابل ذلك الصف دون غيره.
هل سينفد عرض النطاق الترددي لدي؟
بوت نصي، أبدًا. بوت وسائط، ربما، ويستحق الأمر ثلاثين ثانية من الحساب: متوسط حجم الملف × الرسائل يوميًا × 30. خمسون ألف رسالة صوتية يوميًا بحجم 3 MB تعادل نحو 4.3 TB شهريًا، وهذا يتجاوز الحصة في معظم الخطط الرخيصة وبعيد جدًا عن 32 TB في BD-8، أو عن الخط غير المقيس حيث لا يُطرح السؤال أصلًا. الاتجاهان يُحتسبان: الملف الذي يستقبله البوت والملف الذي يرسله كلاهما ترافيك.
كيف أُبقي البوت يعمل بعد إغلاق الطرفية؟
وحدة systemd، لا جلسة screen. اكتب ملف خدمة صغيرًا يتضمن Restart=always، وفعّله، وسيعود البوت بعد أي تعطل وبعد إعادة التشغيل دون أن تحتاج إلى أن تكون مستيقظًا لذلك. هذا هو السبب الأكثر شيوعًا على الإطلاق لـ"توقف" البوت على VPS، وهو ليس مشكلة استضافة: العملية التي تُشغَّل يدويًا تموت مع جلسة SSH التي شغّلتها. ويؤدي Docker مع سياسة إعادة تشغيل المهمة نفسها إن كنت تفضّل تغليفه بهذه الطريقة.
هل يمكنني تشغيل عدة بوتات على خادم واحد؟
نعم، وينبغي لمعظم الناس فعل ذلك. كل بوت عملية مستقلة لها وحدة systemd ورمز مميز خاصان بها؛ تتشارك البوتات الجهاز، وقاعدة البيانات إن أردت، ولا شيء غير ذلك. الحساب في الجدول هو هذا السؤال بالضبط: جهاز بسعة 4 GB يستوعب 25 بوتات ثقيلة قبل أن تصبح الذاكرة هي القيد. أبقِها على منافذ منفصلة ومستخدمين منفصلين إن كانت لأشخاص مختلفين.
في أي منطقة ينبغي تشغيل البوت؟
أي مكان يستطيع مستخدموك الوصول إليه ويكون زمن الاستجابة منه إلى Telegram معقولًا. فالبوت يتحدث إلى بنية Telegram التحتية، لا إلى مستخدميك مباشرة، لذا فإن قاعدة "القرب من جمهورك" المعتادة أقل أهمية هنا مما هي لموقع ويب. وإن كان البوت يقدّم أيضًا لوحة تحكم ويب أو API لهؤلاء المستخدمين أنفسهم، فاختر المنطقة بناءً على ذلك. وإن لم تكن متأكدًا، فانشر بالساعة في منطقتين، وقِس، واحذف الخاسرة: $0.0113 في الساعة يجعل هذه تجربة رخيصة.