[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-fastapi-vps-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":26,"intro":28,"sections":29,"ctaTitle":72,"ctaBody":73,"ctaButton":74,"ctaUrl":75,"relatedPosts":76},45,"deployer-fastapi-vps","نشر تطبيق FastAPI على VPS","انشر FastAPI على VPS باستخدام Uvicorn وGunicorn وNginx وSSL. دليل لمطوّري Python الراغبين في واجهة API غير متزامنة (async) ذاتية الاستضافة.",7,665,false,"2026-05-06T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},4,"التطوير","developpement","bg-warning\u002F10 text-warning","dev",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-fastapi-vps-poster.svg",{"categorySlug":18,"appSlug":27},"fastapi","فرض FastAPI نفسه كإطار عمل Python المفضّل لواجهات API السريعة والمُنمَّطة (typed)، بفضل دعمه الأصيل للعمل غير المتزامن ولوثائق OpenAPI. ونشره على VPS الخاص بك يمنحك التحكم في عدد الـworkers وفي WebSocket وزمن الاستجابة، دون سقف تفرضه خدمة مُدارة.",[30,34,44,47,69],{"type":31,"title":32,"body":33},"h2","لماذا تستضيف FastAPI ذاتيًا على VPS؟","يستمد FastAPI كل أدائه من نموذج ASGI غير المتزامن: اتصالات WebSocket دائمة، وبث للاستجابات، واستدعاءات متزامنة لخدمات أخرى. وغالبًا ما تقطع منصات serverless الاتصالات الطويلة وتفوتر كل طلب، ما يضرّ بواجهة API عالية الإنتاجية أو تعمل في الوقت الفعلي. على VPS، تشغّل Uvicorn بإدارة Gunicorn بعدد workers يساوي عدد الأنوية، وتُبقي الاتصالات مفتوحة طالما لزم الأمر، وتضع Nginx في الواجهة لأجل TLS والتخزين المؤقت (buffering). كما تتحكم في مجمّع الاتصالات نحو PostgreSQL وفي ذاكرة Redis المؤقتة، وهما رافعتان أساسيتان لتحمّل آلاف الطلبات في الثانية.",{"type":35,"title":36,"items":37},"ul","فوائد ملموسة لاستضافة FastAPI ذاتيًا",[38,39,40,41,42,43],"WebSockets وServer-Sent Events دون قطع الاتصال أو timeout مفروض.","ضبط دقيق لـworkers الخاصة بـUvicorn\u002FGunicorn وفق عدد أنوية VPS.","زمن استجابة منخفض وقابل للتوقّع، دون بدء بارد (cold start) الخاص بـserverless.","وثائق Swagger وReDoc تُقدَّم داخليًا، متاحة أو محمية حسب رغبتك.","تكامل مباشر مع مجمّع PostgreSQL غير متزامن (asyncpg) ومع Redis.","تكلفة ثابتة بغض النظر عن عدد استدعاءات API، مثالية لخلفية (backend) إنتاجية.",{"type":31,"title":45,"body":46},"المتطلبات المسبقة للعتاد والبرمجيات","واجهة FastAPI خفيفة: يكفي 1 vCPU و1 غيغابايت من ذاكرة RAM للبدء، لكن استهدف 2 vCPU و2 غيغابايت بمجرد إضافة قاعدة بيانات وذاكرة تخزين مؤقت على نفس VPS. ثبّت Python 3.11+ أو استخدم Docker مع صورة `python:3.11-slim`. جهّز Uvicorn مع الـworker `uvicorn.workers.UvicornWorker`، وGunicorn كمدير عمليات، وNginx للبروكسي العكسي. يلزم نطاق مُوجَّه نحو VPS للحصول على شهادة TLS. ونظام Ubuntu 22.04\u002F24.04 LTS هو الأساس المُوصى به.",{"type":48,"title":49,"steps":50},"steps","نشر FastAPI خطوة بخطوة",[51,54,57,60,63,66],{"title":52,"body":53},"تهيئة VPS والتطبيق","اتصل عبر SSH، وثبّت Docker، واستنسخ مستودعك، وأنشئ ملف `.env` يضم متغيرات البيئة (رابط قاعدة البيانات، مفاتيح API، أصل CORS). تأكّد من أن نقطة الدخول تكشف فعلًا `app = FastAPI()`.",{"title":55,"body":56},"التعبئة في حاوية باستخدام Uvicorn وGunicorn","في ملف Dockerfile، ثبّت الاعتماديات ثم شغّل `gunicorn main:app -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 --workers 4`. والعدد المثالي للـworkers هو عادةً `(2 × cœurs) + 1`.",{"title":58,"body":59},"تنسيق الخدمات","في `docker-compose.yml`، عرّف خدمة `api` وخدمة `db` بـPostgreSQL وخدمة `redis`. استخدم `depends_on` وفحص سلامة (healthcheck) كي تنتظر الـAPI جاهزية قاعدة البيانات قبل أن تبدأ.",{"title":61,"body":62},"وضع Nginx كبروكسي عكسي","اضبط كتلة خادم بـ`proxy_pass http:\u002F\u002Fapi:8000`، ولأجل WebSockets أضف `proxy_set_header Upgrade $http_upgrade` و`proxy_set_header Connection \"upgrade\"`. عطّل التخزين المؤقت (buffering) للبث عند الحاجة.",{"title":64,"body":65},"التأمين بشهادة TLS","احصل على شهادة Let's Encrypt عبر Certbot أو حاوية companion، وافرض HTTPS وأعد توجيه HTTP. وتذكّر تقييد الوصول إلى `\u002Fdocs` و`\u002Fopenapi.json` في الإنتاج إذا لم تكن الـAPI عامة.",{"title":67,"body":68},"التشغيل والاختبار","ابدأ باستخدام `docker compose up -d`، وتحقّق من السلامة عبر نقطة النهاية `\u002Fhealth` التي أضفتها، واختبر الوثائق التفاعلية. راقب سجلات Uvicorn لضبط عدد الـworkers تحت الحِمل الفعلي.",{"type":70,"body":71},"tip","بالنسبة إلى المهام الطويلة (إرسال رسائل البريد الإلكتروني، معالجة الصور، الاستدعاءات الخارجية البطيئة)، لا تحجب حلقة الأحداث (event loop): انقلها إلى worker يعمل في الخلفية باستخدام `BackgroundTasks` للحالات البسيطة، أو إلى Celery\u002FARQ مع Redis للمعالجات الثقيلة. فواجهة API تستجيب بسرعة وتفوّض العمل غير المتزامن تبقى سريعة الاستجابة حتى تحت التزامن العالي.","ضع واجهة FastAPI الخاصة بك في الإنتاج","يوفّر VPS السحابي من ServOrbit قالب Docker جاهزًا للاستخدام مع Nginx وشهادات SSL تلقائية وكل ما يلزم لاستضافة واجهة FastAPI عالية الأداء وغير متزامنة.","انشر VPS الخاص بـFastAPI","\u002Fvps-cloud",[77,90,104],{"id":78,"slug":79,"title":80,"excerpt":81,"readTime":11,"views":82,"isPinned":13,"publishedAt":83,"category":84,"categories":85,"featuredImage":23,"bgImage":24,"posterImage":87,"relatedSolution":88},5,"deployer-laravel-vps","نشر Laravel على خادم VPS: دليل الإنتاج","انقل Laravel إلى بيئة الإنتاج على خادم VPS: PHP وworkers والذاكرة المؤقتة وقاعدة البيانات وreverse proxy وHTTPS مُهيّأة بشكل نظيف.",2840,"2026-02-09T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[86],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-poster.svg",{"categorySlug":20,"appSlug":89},"laravel-stack",{"id":91,"slug":92,"title":93,"excerpt":94,"readTime":95,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":23,"bgImage":24,"posterImage":101,"relatedSolution":102},43,"deployer-nodejs-vps","نشر تطبيق Node.js على VPS","انشر تطبيق Node.js في بيئة الإنتاج على VPS: PM2 وبروكسي عكسي Nginx وشهادة SSL من Let's Encrypt وبدء تشغيل تلقائي عند الإقلاع.",8,591,"2026-05-08T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[100],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":18,"appSlug":103},"nodejs",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":95,"views":109,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":23,"bgImage":24,"posterImage":114,"relatedSolution":115},44,"deployer-django-vps","نشر تطبيق Django على VPS","انشر Django على VPS: Gunicorn وNginx وPostgreSQL وDocker وSSL. دليل كامل لمطوّري Python الراغبين في الاستضافة الذاتية.",628,"2026-05-07T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[113],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":18,"appSlug":116},"django",1785097281450]