رجوع
مركز المعرفة

انقل بوتك من استضافة أخرى

من Replit و Discloud و Railway و Heroku واستضافات Pterodactyl و VPS، ما تحضره معك وما يتغيّر هنا.

آخر تحديث 2026-10-13
ابدأ من هنا
النشر

ما الذي تحضره معك

  • كود بوتك: ريبو على GitHub، أو مجلده، أو ملف zip.
  • ملف المكتبات، مثل requirements.txt أو pyproject.toml.
  • أسماء المتغيرات وقيمها، ومنها التوكن.
  • ملفات البيانات التي كتبها بوتك، مثل bot.sqlite أو data.json.

وقّف النسخة القديمة أولًا

في تيليقرام، التوكن الواحد يشغّل بوتًا واحدًا فقط في الوقت نفسه، فتتلقى النسخة الثانية الخطأ 409 Conflict. وفي ديسكورد تتصل النسختان معًا وترد كل منهما، فيتكرر كل رد مرتين. لذلك وقّف بوتك في الاستضافة القديمة قبل أول نشر هنا، أو أنشئ له توكنًا جديدًا.

ما لا تحتاجه هنا

  • الـ keep-alive: سيرفر ويب صغير مثل keep_alive.py مع Flask، تزوره خدمة مثل UptimeRobot. نبقي بوتك شغّالًا طوال الوقت دونه، ولا يصل إليه أحد من الخارج إلا إذا فعّلت عنوان الويب أو أحد المنفذين.
  • pm2 و nohup و screen: شغّل بوتك مباشرة، مثل python main.py. ننفّذ له ريستارت بأنفسنا إذا تعطّل، ولا نرى التعطّل إلا عندما يتوقف بوتك نفسه.
  • الـ webhook في تيليقرام: يكفي الـ polling، مثل app.run_polling() في python-telegram-bot كما في قالبنا. ولاستخدام الـ webhook، فعّل عنوان الويب كما في شرح «عنوان الويب والمنافذ لبوتك».

انقل المتغيرات

ضع كل قيمة من ملف .env أو من Secrets في Replit أو من متغيرات استضافتك القديمة في متغيرات بوتك بالاسم نفسه، وفعّل حساس على القيم السرية. والصق ملف .env كاملًا في خانة المتغيرات مرة واحدة إذا كان لديك. ويقرؤها كودك بـ os.environ أو os.getenv كما هي.

ما نقرؤه من كودك

نقرأ ملفات المكتبات و Procfile وملف إصدار بايثون، ولا نقرأ إعدادات استضافتك القديمة:

  • Heroku و Railway: نشغّل سطر worker: أو bot: من Procfile، ولا نقرأ سطر web:. ونقرأ إصدار بايثون من runtime.txt.
  • Replit: لا نقرأ ملف .replit.
  • Discloud: لا نقرأ discloud.config، فإذا لم نجد ملف MAIN الذي حدّدته فيه، فاكتبه في أمر التشغيل.
  • استضافة Pterodactyl: لا نقرأ أمر التشغيل من لوحتها، ولا حاجة إلى git pull عند التشغيل، بل اربط GitHub وفعّل انشر مع كل push.
  • VPS: لا حاجة إلى systemd أو screen، فنحن نشغّل بوتك وننفّذ له ريستارت.

وإذا لم نجد طريقة لتشغيل بوتك، فاضبط أمر التشغيل من إعدادات بوتك، أو أضف ملف serverk.json في أعلى الكود:

{
  "start": "python src/run.py"
}

ويوضح شرح «كيف نثبّت مشروع بايثون ونشغّله» الملفات التي نبحث عنها بالترتيب.

انقل بياناتك

بعد أول نشر، ارفع ملفات بياناتك من تبويب الملفات إلى المسار الذي يقرؤه كودك. وأبقِها خارج الريبو وخارج كل رفع، لتبقى كما هي في النشرات التالية.

هل ساعدك هذا الشرح؟

ساهم في تحسين هذا الشرح

الشروحات مفتوحة المصدر، فإذا كان لديك تصحيح أو إضافة، افتح Pull Request على github.com/serverkgg/bot-python