چگونه یک بات Discord را 24/7 میزبانی کنیم
در این صفحه
- منظور از «میزبانی یک بات 24/7» واقعاً چیست
- گام 1: بات خود را بسازید و token آن را بگیرید
- مسیر A: خودتان آن را اجرا کنید (رایگان، با هشدارهای واقعی)
- مسیر B: آن را 24/7 روی میزبانی همیشهروشن میزبانی کنید
- آن را آنلاین نگه دارید: راهاندازی دوبارهٔ خودکار و tokenهای امن
- RAM، پایگاههای داده و مقیاسپذیری
- پرسشهای متداول
نوشتن یک بات Discord بخش آسان کار است. نگهداشتن آن بهصورت آنلاین 24/7 — پاسخدادن در ساعت 3 بامداد، جانسالمبهدربردن از یک کرش، و اتصال دوباره پس از یک قطعی شبکه — جایی است که بیشتر باتها بیسروصدا از بین میروند. یک بات فقط تا زمانی کار میکند که برنامهٔ اجراکنندهٔ آن روشن بماند، و لپتاپ شما اینطور نمیماند.
این راهنما شما را از یک Developer Portal خالی تا باتی که هرگز نمیخوابد پیش میبرد. ابتدا بات و token آن را میسازید، سپس انتخاب میکنید کجا آن را اجرا کنید: رایگان روی دستگاه خودتان (با هشدارهای صادقانه)، یا روی میزبانی ارزانِ همیشهروشن که آن را بهجای شما بالا نگه میدارد. این موضوع فرقی نمیکند که بات خود را با Discord.js ساخته باشید یا با discord.py.
منظور از «میزبانی یک بات 24/7» واقعاً چیست
یک بات Discord برنامهٔ کوچکی است که به Discord وارد میشود و متصل میماند و به رویدادها گوش میدهد. «میزبانی 24/7 آن» بهسادگی یعنی آن برنامه بدون توقف اجرا میشود — در طول شب، در میان راهاندازیهای دوباره، و در میان کرشها (با راهاندازی دوبارهٔ خودش). سه چیز این را ممکن میکنند:
- یک اپلیکیشن بات و token. یکبار در Discord Developer Portal ساخته میشوند — token همان رمز عبور بات است.
- کد بات شما. معمولاً Discord.js (Node.js) یا discord.py (Python). این راهنما مستقل از framework است؛ مراحل میزبانی یکساناند.
- جایی که همیشه روشن است. تنها الزامی که مردم دستکم میگیرند — و کل دلیل وجود میزبانی پولی.
اگر هر یک از اینها متوقف شود، بات آفلاین میشود و در فهرست اعضای شما خاکستری نمایش داده میشود. هرچه در ادامه میآید دربارهٔ اطمینان از این است که مورد سوم هرگز متوقف نشود.
گام 1: بات خود را بسازید و token آن را بگیرید
هر باتی در Discord Developer Portal آغاز میشود. این بخش رایگان است و چند دقیقه طول میکشد.
- یک اپلیکیشن بسازید. به discord.com/developers/applications بروید، روی New Application کلیک کنید و نامی برای آن بگذارید.
- بات را اضافه کنید و token را کپی کنید. زبانهٔ Bot را باز کنید، سپس Reset Token و آن را کپی کنید. این token رمز عبور بات است — با آن همانطور رفتار کنید؛ هر کسی آن را داشته باشد بات شما را کنترل میکند.
هرگز token را در کد خود یا در یک مخزن عمومی قرار ندهید. tokenهای لو رفته ظرف چند دقیقه پیدا و سوءاستفاده میشوند. آن را در یک متغیر محیطی یا در بخش اسرار میزبان خود نگه دارید و هنگام اجرا بارگذاری کنید.
- intents مورد نیاز خود را فعال کنید. همچنان در زبانهٔ Bot، Privileged Gateway Intents هایی را که بات شما استفاده میکند روشن کنید (برای مثال Message Content، اگر متن پیامها را میخواند).
- بات را به سرور خود دعوت کنید. در بخش OAuth2 → URL Generator، اسکوپهای
bot(وapplications.commands) را علامت بزنید، دسترسیهایی را که بات شما نیاز دارد انتخاب کنید و لینک تولیدشده را باز کنید تا آن را به سروری که مدیریت میکنید اضافه کنید.
بات شما اکنون در فهرست اعضا ظاهر میشود — آفلاین، چون هنوز چیزی کد آن را اجرا نمیکند. این انتخاب بعدی است.
مسیر A: خودتان آن را اجرا کنید (رایگان، با هشدارهای واقعی)
میتوانید یک بات را بدون هیچ صورتحساب میزبانی اجرا کنید. برای آزمایش و یادگیری انتخاب درستی است — فقط دقیقاً بدانید به چه چیزی تن میدهید.
- روی رایانهٔ خودتان اجرا کنید. Node.js یا Python را نصب کنید، token را در یک فایل
.envبگذارید، وابستگیها را نصب کنید و آن را اجرا کنید:npm install node index.js # Discord.js pip install -r requirements.txt python bot.py # discord.py
بات آنلاین است — دقیقاً تا زمانی که آن ترمینال باز بماند و رایانهٔ شما بیدار بماند. - یا از یک پلن ابری رایگان استفاده کنید. سرویسهای دارای پلن رایگان میتوانند یک بات کوچک را اجرا کنند، اما تقریباً همهٔ آنها اپلیکیشنهای بیکار را به خواب میبرند، ساعتهای CPU ماهانه را محدود میکنند، یا برای بیدارماندن به یک ترفند keep-alive نیاز دارند — که اغلب خراب میشود و شرایط استفادهٔ آنها را نقض میکند.
مناسب برای
- توسعه و آزمایش — بدون هزینه
- یادگیری اینکه بات شما در عمل چطور رفتار میکند
- باتهایی که راهاندازی دستی دوبارهٔ آنها برایتان مشکلی ندارد
چرا بهعنوان «24/7» شکست میخورد
- رایانهٔ شما به خواب میرود، برای بهروزرسانیها دوباره راهاندازی میشود، یا شما بهسادگی لپتاپ را میبندید — بات آفلاین میشود
- پلنهای رایگان به خواب میروند، سرعت را محدود میکنند، یا پس از پایان سهمیه شما را قطع میکنند
- هنگام کرش بات، راهاندازی دوبارهٔ خودکاری وجود ندارد
- آدرس IP خانگی و قبض برق شما دارند کار را انجام میدهند
ترفندهای keep-alive را کنار بگذارید — میزبانی بات HytHost بات Discord شما را 24/7 از €1.50 در ماه، با راهاندازیهای دوبارهٔ خودکار آنلاین نگه میدارد.
میزبانی بات را ببینیدمسیر B: آن را 24/7 روی میزبانی همیشهروشن میزبانی کنید
میزبانی اختصاصی بات، برشی کوچک از یک سرور همیشهروشن است که برای یک کار وجود دارد: بات شما را در حال اجرا نگه دارد. در میزبانی بات Discord از HytHost از چند یورو در ماه شروع میشود، و چیزی نیست که لازم باشد بیدار نگهش دارید. کل راهاندازی این است:
- یک پلن و زبان انتخاب کنید. مقدار RAM موردنیاز بات خود را انتخاب کنید (500 MB برای بیشتر باتها بیش از کافی است) و محیط اجرای خود را — Node.js، Python یا Java. پلنها از €1.50 در ماه شروع میشوند و شامل یک پایگاه داده و پشتیبانگیری هستند.
- خرید را نهایی کنید. کانتینر بلافاصله پس از پرداخت آماده میشود؛ اطلاعات ورود به پنل شما از طریق ایمیل میرسد.
- کد خود را بارگذاری کنید. پروژهٔ خود را در فایلمنیجر وب بکشید و رها کنید یا آن را از طریق SFTP آپلود کنید. token را بهعنوان یک متغیر راهاندازی یا در یک فایل
.envاضافه کنید — نه در کد. - دستور راهاندازی را تنظیم کنید. پنل را به فایل ورودی خود اشاره دهید (
index.jsیاbot.py)؛ وابستگیها را ازpackage.jsonیاrequirements.txtنصب میکند و بات را اجرا میکند. - بگذارید در حال اجرا بماند. بات شبانهروز آنلاین میماند و اگر کرش کند خودش را دوباره راهاندازی میکند. کنسول زنده را تماشا کنید، فایلها را ویرایش کنید و پشتیبانها را از پنل مدیریت کنید.
چیزی که بابت آن پول میدهید: بات با هدف در دسترسبودن 99.9% آنلاین میماند، چه دستگاههای خودتان روشن باشند چه نباشند، هنگام کرش بهطور خودکار دوباره راهاندازی میشود، فایلها روی NVMe SSD پشت حفاظت Voxility در برابر DDoS قرار دارند، و اگر گیر کردید، پشتیبانی گفتگوی زنده از 8 صبح تا 11 شب (به وقت کیشیناو) در دسترس است.
آن را آنلاین نگه دارید: راهاندازی دوبارهٔ خودکار و tokenهای امن
«24/7» فقط «یکبار اجرا شد» نیست — بلکه «خودش برمیگردد» است. چند عادت، یک بات قابلاعتماد را از باتی که اولین بار که به مشکل میخورد ناپدید میشود جدا میکند:
- از یک مدیر پردازش استفاده کنید (در میزبانی شخصی). روی دستگاه Linux خودتان، بات را زیر
pm2(Node.js) یا بهعنوان یک سرویسsystemdاجرا کنید تا هنگام کرش و هنگام راهاندازی دوباره، دوباره اجرا شود. میزبانی مدیریتشده این کار را برای شما انجام میدهد. - token را از محیط بارگذاری کنید. آن را در یک متغیر محیطی یا در بخش اسرار میزبان خود نگه دارید و هنگام اجرا بخوانید — هرگز آن را commit نکنید. اگر روزی لو رفت، فوراً آن را در Developer Portal بازنشانی کنید.
- اتصالهای دوباره را مدیریت کنید. Discord.js و discord.py بهطور خودکار دوباره به gateway متصل میشوند؛ منطقی نسازید که هنگام قطع اتصال بهاجبار خارج شود.
- لاگهای خود را زیر نظر بگیرید. بیشتر معماهای «بات من آفلاین شد» یک خطای مدیریتنشده است که پردازش را کرش میکند — کنسول به شما میگوید کدام خط.
RAM، پایگاههای داده و مقیاسپذیری
بیشتر باتها سبکاند. یک بات دستور یا مدیریت با 500 MB RAM راضی است. وقتی بات کار سنگینتری انجام میدهد، به بیشتر نیاز دارید:
- باتهای موسیقی صدا را استریم میکنند و بهطور محسوسی RAM و CPU بیشتری مصرف میکنند — یک رده بالاتر بروید.
- باتهای بزرگ در سرورهای زیاد وضعیت بیشتری را در حافظه نگه میدارند؛ جامعههای بزرگ سرورها روی هم جمع میشوند.
- دادههای ماندگار — سطحها، اقتصاد، تنظیمات — بهجای یک فایل محلی به یک پایگاه داده نیاز دارند تا راهاندازیهای دوباره را دوام بیاورند. پلنهای میزبانی بات در اینجا یکی را شامل میشوند.
فقط باتهای بسیار بزرگ (حدود 2,500+ سرور) به sharding نیاز دارند، که Discord در آن مقیاس آن را الزامی میکند؛ زیر آن، یک پردازش واحد سادهترین است. وقتی از یک رده فراتر رفتید، ارتقا به بالا یک کلیک در پنل است — کوچک شروع کنید و وقتی اعداد چنین گفتند مقیاس دهید.
پرسشهای متداول
اجرای آن میتواند رایگان باشد — روی رایانهٔ خودتان، یا روی یک پلن ابری رایگان — اما این بهندرت واقعاً 24/7 است. رایانهٔ شما به خواب میرود و دوباره راهاندازی میشود، و پلنهای رایگان معمولاً اپلیکیشنهای غیرفعال را به خواب میبرند یا مصرف شما را محدود میکنند. برای باتی که واقعاً همیشه آنلاین است، میزبانی اختصاصی بات گزینهٔ قابلاعتماد است، و ارزان هم هست: پلنها از €1.50 در ماه شروع میشوند.
بله، و برای توسعه عالی است. نکتهٔ ظریف این است که بات فقط تا زمانی آنلاین است که برنامه در حال اجرا و رایانه بیدار باشد — ترمینال را ببندید، لپتاپ را به خواب ببرید، یا برای بهروزرسانی دوباره راهاندازی کنید، و بات بدون راهاندازی دوبارهٔ خودکار آفلاین میشود. به همین دلیل باتهایی که قرار است قابلاتکا باشند به میزبانی همیشهروشن منتقل میشوند.
یعنی پردازش بات بهطور پیوسته اجرا میشود و خودش برمیگردد — در طول شب، در میان راهاندازیهای دوباره، و در میان کرشها. رسیدن به آن دو چیز میخواهد: میزبانی که هرگز خاموش نمیشود، و سازوکار راهاندازی دوبارهٔ خودکار (یک مدیر پردازش مانند pm2، یا راهاندازی دوبارهٔ خودکاری که یک میزبان مدیریتشده فراهم میکند).
هر دو عالیاند. Discord.js (Node.js) محبوبترین است، با بزرگترین اکوسیستم و نمونهها. discord.py (Python) تمیز و برای مبتدیان دوستانه است. زبانی را که با آن راحتترید انتخاب کنید — میزبانی خوب از Node.js، Python و Java پشتیبانی میکند، پس در هیچ حالتی محدود نمیشوید.
بیشتر باتها روی 500 MB بهراحتی اجرا میشوند. باتهای موسیقی و باتهایی که به سرورهای زیادی خدمت میدهند بیشتر مصرف میکنند، پس برای آنها یک رده بالاتر بروید. چون باتها سبکاند، میزبانی ارزان است — چیزی که بابت آن پول میدهید «همیشه آنلاین بودن» است، نه قدرت خام.
تقریباً همیشه یکی از سه چیز: دستگاهی که آن را اجرا میکند متوقف شده (رایانه به خواب رفته، پلن رایگان آن را بیکار کرده)، پردازش بدون راهاندازی دوبارهٔ خودکار کرش کرده، یا یک خطای مدیریتنشده در یک رویداد خاص آن را از بین میبرد — لاگهای کنسول را بررسی کنید. اجرای آن روی میزبانی همیشهروشن با راهاندازی دوبارهٔ خودکار، دو مورد اول را کاملاً حذف میکند.
بات خود را وقتی خوابید آنلاین نگه دارید
میزبانی بات Discord از HytHost بات Node.js، Python یا Java شما را 24/7 با راهاندازیهای دوبارهٔ خودکار، بههمراه یک پایگاه داده و پشتیبانگیری اجرا میکند — از €1.50 در ماه، بلافاصله آنلاین.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours