ما المثبّت على خادم Python الخاص بك؟
- Python 3.12 من مستودع Ubuntu 24.04
- بيئة افتراضية في /home/app/uygulama/venv
- Gunicorn 26 بـ 2 workers على 127.0.0.1:8000
- خدمة systemd باسم uygulama تبدأ مع الإقلاع وتعيد تشغيل نفسها عند التعطل
- HTTPS عبر Caddy على عنوان sslip.io مبني على IP الخاص بك، فالنطاق اختياري
- مستخدم app بلا صلاحيات مرتفعة، حتى لا تعمل شيفرتك بصفة root
- جدار حماية لا يفتح سوى المنافذ 22 و80 و443
ما الحجم الذي تحتاجه لـ Python؟
لا تذكر وثائق Python رقمًا لـ RAM، لأن تطبيقك هو الذي يحدد حاجته. يحمّل Gunicorn تطبيقك في عملية مستقلة لكل worker، فتزداد الذاكرة بزيادة عددها. ويقترح Gunicorn البدء بعدد workers قدره (2 x cores) + 1، ويشغّل هذا التثبيت 2. وكقاعدة عامة، يكفي 1 GB لبداية API صغير، ومن 2 إلى 4 GB لعدة workers أو حزم ثقيلة. وإن لم يكفِ فارفع RAM والمعالج والقرص كلًّا على حدة من لوحتك، وتبقى بياناتك وعنوان IP كما هما.
| الاستخدام | الحجم | السعر | اختر |
|---|---|---|---|
| للبداية | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/شهريًا | |
| متوسط | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/شهريًا | |
| قوي | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/شهريًا |
لمن هو؟
- المطورون الذين ينشرون API أو تطبيق ويب بـ Flask أو FastAPI
- المشاريع التي اصطدمت بحدود إصدار Python أو الحزم في الاستضافة المشتركة
- من يشغّلون تطبيق Python بُني بأدوات الذكاء الاصطناعي على خادم يخصهم
- من يشغّلون معالجة بيانات أو أتمتة أو سكربتات مجدولة
ماذا يحدث بعد الطلب؟
- اضبط الحجم وأتمّ الدفع.
- يبدأ خادمك ويُثبَّت Python وGunicorn من تلقاء نفسيهما. استغرق ذلك نحو 3 دقائق في اختباراتنا على خوادم حقيقية.
- افتح عنوان الموقع من تبويب نظرة عامة. تعرض الصفحة التجريبية إصدار Python.
- اتصل عبر SSH واكتب su - app، ثم انتقل إلى المجلد بـ cd ~/uygulama وأحضر شيفرتك، مثلًا بـ git clone.
- ثبّت اعتمادياتك: venv/bin/pip install -r requirements.txt
- اجعل wsgi.py يوفّر كائن تطبيقك باسم app، وعد إلى root بـ exit ثم نفّذ systemctl restart uygulama.
مع كل خادم
- نسخ احتياطي يومي مشمول في السعر
- حركة بيانات غير محدودة
- صلاحية root كاملة
- ارفع RAM والمعالج أو اخفضهما لاحقًا، وكبّر القرص
- الموقع: Istanbul · IST-1.
من المفيد أن تعرف
- يشغّل Gunicorn الوحدة wsgi:app. ولوحدة مختلفة غيّر سطر ExecStart في /etc/systemd/system/uygulama.service ثم نفّذ systemctl daemon-reload.
- لا يضيف رفع الحجم عاملين تلقائيًا. بل تغيّر قيمة --workers في ملف الخدمة نفسه.
- لتجميع إضافات C، نفّذ apt install build-essential python3-dev بصفة root.
- تُثبَّت تحديثات Ubuntu وPython الأمنية من تلقاء نفسها. أما حزم pip في بيئتك الافتراضية فتحدّثها أنت.
- يجب أن يستمع تطبيقك على 127.0.0.1:8000 ويتولى Caddy العنوان العام. وفتح Gunicorn للخارج يتجاوز HTTPS.
- إن تعذّر إصدار شهادة، يُفتح الموقع عبر http على عنوان IP الخاص بك.
أسئلة وأجوبة عن Python
كيف أنشر تطبيق Flask الخاص بي؟
ضع شيفرتك في ~/uygulama وثبّت الاعتماديات بـ venv/bin/pip. اجعل wsgi.py يوفّر تطبيقك باسم app ثم نفّذ systemctl restart uygulama بصفة root. أو استبدل wsgi:app في سطر ExecStart بـ project:app، أو بـ project:create_app() لتطبيق يُنشأ بدالة مصنع، ثم نفّذ systemctl daemon-reload.
هل يعمل FastAPI على هذا الخادم؟
نعم. يستخدم FastAPI ASGI، ويتولاه عامل ASGI المضمّن في Gunicorn. في سطر ExecStart استبدل wsgi:app بـ --worker-class asgi main:app ثم نفّذ systemctl daemon-reload وsystemctl restart uygulama. وأبقِ عنوان الربط على 127.0.0.1:8000.
كم أحتاج من RAM لاستضافة Python؟
لا يوجد رقم رسمي لـ RAM في Python، فتطبيقك وعدد العاملين هما ما يحدد. وكقاعدة عامة، يكفي 1 GB لبداية API صغير، ومن 2 إلى 4 GB لعدة عاملين أو حزم علوم البيانات.
هل يمكنني تغيير إصدار Python؟
يأتي الخادم بـ Python 3.12 من Ubuntu 24.04. ولديك وصول root، فيمكنك تثبيت إصدار آخر أيضًا. أعد إنشاء البيئة الافتراضية بذلك الإصدار، ثم أعد تثبيت حزمك وGunicorn.
هل يتوقف تطبيقي حين أخرج من SSH؟
لا. تعمل شيفرة Python كخدمة systemd باسم uygulama. وتستمر بعد خروجك، وتعود إن تعطلت أو أُعيد تشغيل الخادم. ويمكنك قراءة مخرجاتها بـ journalctl -u uygulama.
هل هذا الخادم مناسب لـ Django؟
نعم. يشغّل Gunicorn تطبيقات Django أيضًا، فتضع project.wsgi:application في سطر ExecStart. وإن أردت أن يُثبَّت لك Django وإعداداته، فانظر في خيار خادم Django.