ربات تلگرام

هاست رایگان ربات تلگرام: چه چیزی واقعا کار می کند و محدودیت ها

هاست رایگان ربات تلگرام برای آزمایش و ربات های کوچک شخصی جواب می دهد، اما برای ربات با کاربر واقعی معمولا به سقف خودش می رسد. مهم ترین محدودیت ها خواب رفتن برنامه، نبود پروسس دائمی و ناپایداری اتصال به تلگرام است و با یک چک لیست کوتاه می توانید قبل از رفتن به هاست پولی بفهمید رایگان برای ربات شما کافی است یا نه.

نوشته تیم فنی پیکوهاستبه روزرسانی: ۲۲ مهر ۱۴۰۵۸ دقیقه مطالعه

پاسخ کوتاه

هاست رایگان ربات تلگرام فقط برای آزمایش و ربات های کم بار شخصی مناسب است. سرویس های رایگان معمولا برنامه را در بیکاری می خوابانند، پروسس دائمی نمی دهند و سقف CPU و RAM دارند. اگر ربات وبهوک و دامنه با HTTPS پایدار لازم دارد یا کاربر واقعی دارد، یک هاست اشتراکی cPanel ارزان تر از دردسر رایگان تمام می شود.

اگر دنبال هاست رایگان ربات تلگرام هستید، جواب کوتاه این است که گزینه هایی وجود دارد، ولی هر کدام یک یا چند محدودیت دارند که در روز اول دیده نمی شود. برای ربات آزمایشی یا ربات شخصی که روزی چند پیام می گیرد، رایگان می تواند کافی باشد. برای ربات فروشگاهی، کانال مدیریت یا هر چیزی که کاربر واقعی دارد، بهتر است قبل از شروع همین محدودیت ها را بشناسید. اگر هنوز نمی دانید ربات شما چه نوع هاستی لازم دارد، راهنمای انتخاب هاست ربات تلگرام را هم ببینید.

چه گزینه های رایگانی برای میزبانی ربات وجود دارد

به صورت کلی سه دسته گزینه رایگان دارید و هر کدام با نوع دیگری از محدودیت همراه است.

  • سرویس های ابری که یک سطح رایگان (free tier) دارند: برنامه شما را اجرا می کنند، ولی منابع کم است و معمولا در صورت بیکاری برنامه را متوقف می کنند.
  • هاست اشتراکی رایگان: معمولا PHP و MySQL دارد و برای وبهوک ساده کافی است، اما سرعت، پایداری و پشتیبانی تضمینی ندارد و شرایط استفاده سخت گیرانه است.
  • کامپیوتر یا رایانه تک برد شخصی مثل Raspberry Pi: هزینه هاست ندارد، ولی برق، اینترنت و آی پی ثابت با خود شماست.

نام بردن از یک سرویس خاص در اینجا فایده ندارد، چون شرایط این سرویس ها مدام عوض می شود. بهتر است هر سرویسی را با همان محدودیت هایی که پایین تر آمده بسنجید.

محدودیت های واقعی هاست رایگان برای ربات

این موارد را به ترتیب شیوع می نویسم، چون اغلب اولین چیزی که ربات را از کار می اندازد خواب رفتن برنامه است.

خواب رفتن برنامه در بیکاری

بسیاری از پلن های رایگان اگر مدتی درخواستی نرسد، برنامه را متوقف می کنند. برای ربات با وبهوک این یعنی اولین پیام بعد از بیکاری دیر جواب داده می شود، و تلگرام ممکن است درخواست را دوباره بفرستد یا خطای timeout ثبت کند. برای ربات با long polling بدتر است، چون پروسس که بخوابد کلا آپدیت نمی گیرد.

نبود پروسس دائمی

ربات polling باید همیشه روشن بماند. هاست اشتراکی معمولا اجازه نمی دهد پروسس بلندمدت اجرا شود و پروسس های طولانی را می کشد. اگر ربات شما با polling نوشته شده، باید یا آن را به وبهوک ببرید یا جای دیگری میزبانی کنید. تفاوت این دو حالت در راهنمای تنظیم وبهوک توضیح داده شده است.

اتصال به تلگرام و آی پی

ربات باید بتواند به api.telegram.org وصل شود. در بعضی مناطق و بعضی شبکه ها این دسترسی بسته است یا آی پی سرویس های رایگان که بین کاربران زیادی مشترک است، محدود یا کند می شود. این را باید با یک تست واقعی از روی خود هاست بسنجید، نه با حدس.

HTTPS و دامنه ثابت برای وبهوک

تلگرام وبهوک را فقط به آدرس HTTPS با گواهی معتبر می فرستد. اگر دامنه یا ساب دامین شما با هر استقرار عوض می شود، یا گواهی شما معتبر نیست، وبهوک ثبت نمی شود. در سرویس های رایگان گاهی دامنه موقت می دهند که با هر راه اندازی دوباره تغییر می کند و باید setWebhook را دوباره بزنید.

سقف CPU، RAM و زمان اجرا

پلن رایگان معمولا سقف کم تری برای CPU، حافظه و زمان اجرای هر درخواست دارد. ربات ساده با چند ده پیام در روز مشکلی ندارد، ولی ارسال گروهی، پردازش فایل یا تصویر و درخواست های هم زمان خیلی زود به سقف می خورد.

نبود cron و کارهای زمان بندی شده

بسیاری از سرویس های رایگان cron ندارند یا فقط فاصله های طولانی می دهند. اگر ربات شما یادآوری، گزارش روزانه یا پاکسازی دوره ای دارد، این محدودیت مستقیم به شما می رسد.

از دست رفتن داده

بعضی سرویس ها دیسک موقت دارند و فایل هایی که برنامه روی دیسک می نویسد با راه اندازی دوباره پاک می شود. اگر کاربران، وضعیت گفتگو یا سفارش ها در یک فایل SQLite محلی است، باید از قبل مطمئن شوید دیسک پایدار است و از دیتابیس پشتیبان بگیرید.

سرویس رایگان معمولا هیچ تعهدی درباره پایداری یا پشتیبان گیری ندارد و می تواند بدون اطلاع قبلی حساب شما را محدود یا تعلیق کند. داده ای که از دست رفتنش برایتان گران است را فقط روی هاست رایگان نگه ندارید و شرایط استفاده (ToS) را هم بخوانید، چون بعضی سرویس ها اجرای ربات را اصلا مجاز نمی دانند.

جدول تصمیم: کدام گزینه برای ربات شما مناسب است

وضعیت رباترایگان جواب می دهد؟چرا
آزمایش و یادگیری، چند کاربربلهخواب رفتن و قطعی اهمیتی ندارد
ربات شخصی با وبهوک و چند پیام در روزمعمولا بلهاگر HTTPS و دامنه ثابت دارید
ربات با polling و اجرای دائمیخیرپروسس دائمی در رایگان تضمین نیست
ربات با کاربر واقعی یا فروشخیرقطعی، داده و تعلیق حساب ریسک جدی است
ربات با زمان بندی، ارسال گروهی یا فایلخیرcron و سقف منابع کافی نیست
ربات با MadelineProto یا اجرای طولانیخیربه منابع و پروسس پایدار نیاز دارد

چک لیست: بسنجید رایگان برای ربات شما کافی است یا نه

قبل از آنکه وقت صرف کنید، این پرسش ها را جواب دهید.

  1. ربات با وبهوک کار می کند یا polling؟ اگر polling است، اول بررسی کنید سرویس پروسس دائمی اجازه می دهد.
  2. در روز چند کاربر فعال و چند پیام انتظار دارید؟ اگر عدد در حد ده ها است، رایگان شاید کافی باشد.
  3. داده کجا ذخیره می شود؟ اگر روی دیسک محلی است، پایدار بودن دیسک را بررسی کنید.
  4. به cron یا کار زمان بندی شده نیاز دارید؟
  5. اگر یک ساعت قطع شود، چه اتفاقی برای کاربران می افتد؟ اگر جواب «ضرر می کنم» است، رایگان مناسب نیست.

برای تست عملی، ربات را روی همان سرویس بگذارید و چند چیز را ببینید. اتصال به تلگرام را از روی هاست امتحان کنید:

curl -sS https://api.telegram.org/bot<TOKEN>/getMe
curl -sS https://api.telegram.org/bot<TOKEN>/getWebhookInfo

اگر getMe جواب نداد، مشکل از اتصال هاست به تلگرام است. در خروجی getWebhookInfo به فیلدهای last_error_message و pending_update_count نگاه کنید. بعد ربات را یک روز کامل بدون پیام رها کنید و صبح روز بعد پیام بفرستید. اگر پاسخ دیر آمد، سرویس برنامه را می خواباند.

نشانه های اینکه وقت رفتن به هاست پولی است

  • پیام ها دیر جواب داده می شوند یا بعضی اصلا نمی رسند.
  • getWebhookInfo خطای timeout یا connection نشان می دهد و pending_update_count بالا می رود.
  • مجبور شده اید چند بار به خاطر محدودیت منابع یا تعلیق حساب، ربات را جابه جا کنید.
  • کاربران پولی یا سفارش واقعی دارید و قطعی برایتان هزینه دارد.
  • به cron، دیتابیس پایدار یا پشتیبان گیری منظم نیاز پیدا کرده اید.
  • می خواهید ربات را روی دامنه خودتان با گواهی SSL ثابت اجرا کنید.

ارزان ترین راه اندازی درست

برای بیشتر ربات های وبهوک، یک هاست اشتراکی cPanel کافی است: یک ساب دامین با SSL، یک فایل PHP یا برنامه Python که وبهوک را دریافت می کند، و یک دیتابیس MySQL با پشتیبان گیری. روی این ساختار پروسس دائمی لازم نیست، چون تلگرام خودش آپدیت را به آدرس شما می فرستد. اگر ربات شما با Python و Django یا Flask نوشته شده، راهنمای میزبانی ربات Django و Python نشان می دهد چه چیزهایی روی cPanel اجرا می شود. وقتی ربات سنگین تر شد یا به پروسس دائمی نیاز پیدا کرد، آن موقع به VPS فکر کنید، نه از اول.

پیکوهاست پلن مخصوص ربات تلگرام روی cPanel دارد که با همین ساختار وبهوک می سازد و صفحه پلن های هاست ربات تلگرام شرایط را توضیح می دهد.

چرا رایگان گاهی گران تر تمام می شود

هزینه واقعی یک هاست رایگان معمولا پول نیست، وقت است. هر بار که ربات بدون خطای مشخص جواب نمی دهد، باید لاگ را بخوانید، سرویس را دوباره راه بیندازید و گاهی کاربران را با عذرخواهی برگردانید. اگر ربات منبع درآمد دارد، چند ساعت قطعی از هزینه ماهانه یک هاست اشتراکی بیشتر ضرر می زند. برای ربات آزمایشی این حساب صدق نمی کند و رایگان انتخاب درستی است. معیار ساده این است: اگر قطع شدن ربات فقط شما را اذیت می کند، رایگان کافی است، و اگر دیگران را هم اذیت می کند، سراغ هاست پایدار بروید.

پیش از انتقال یک نسخه پشتیبان از دیتابیس و فایل های ربات بگیرید و توکن را فقط در یک فایل تنظیمات خارج از پوشه عمومی نگه دارید تا جابه جایی بعدی ساده بماند.

سوال های رایج

آیا ربات polling روی هاست اشتراکی کار می کند؟

معمولا نه به شکل پایدار، چون هاست اشتراکی پروسس طولانی را می کشد. بهتر است ربات را به وبهوک ببرید یا روی VPS اجرا کنید.

برای وبهوک دامنه شخصی لازم است؟

یک دامنه یا ساب دامین با گواهی SSL معتبر لازم است. جزئیات گواهی و خطاهای رایج در آموزش تنظیم وبهوک آمده است.

می توانم ابتدا رایگان شروع کنم و بعدا جابه جا شوم؟

بله، و این معمولا راه درست است. فقط توکن ربات و ساختار دیتابیس را طوری نگه دارید که جابه جایی ساده باشد و بعد از انتقال یک بار setWebhook را روی آدرس جدید بزنید.