١. الاتصال بالخادم
استخدم SSH للاتصال بخادمك:
ssh root@<server-ip>
٢. الوصول إلى بيانات تسجيل الدخول
تم إنشاء مستخدم مخصص باسم fastapi لإدارة تطبيقك.
يمكنك العثور على بيانات تسجيل الدخول في هذا الملف: /root/.fastapi-creds
لعرضها، نفّذ الأمر التالي:
cat /root/.fastapi-creds
لتغيير كلمة المرور، استخدم:
passwd fastapi
٣. التبديل إلى مستخدم التطبيق
انتقل إلى حساب المستخدم fastapi لإدارة تطبيقك:
su - flask
يحتوي هذا الحساب على مشروع FastAPI الخاص بك والبيئة المرتبطة به.
٤. هيكل المشروع
هذا هو تخطيط المجلدات الافتراضي:
/home/fastapi/fastapi_app/
├── main.py → Your main FastAPI application file
├── venv/ → Virtual environment
└── __pycache__/ → Compiled Python files (auto-generated)
٥. إدارة التطبيق
انتقل إلى مجلد التطبيق:
cd ~/fastapi_app
تفعيل البيئة الافتراضية:
source venv/bin/activate
عدّل ملف التطبيق الرئيسي:
nano main.py
أعد تشغيل خدمة FastAPI لتطبيق التغييرات:
sudo systemctl restart uvicorn-fastapi
٦. عرض السجلات
يمكنك الاطلاع على سجلات Uvicorn وNginx على النحو التالي:
- سجلات Uvicorn:
/var/log/uvicorn/ - سجل أخطاء Nginx:
/var/log/nginx/error.log - سجل وصول Nginx:
/var/log/nginx/access.log
لعرضها:
sudo tail -f /var/log/uvicorn/*
٧. الوصول إلى API الخاص بك
بمجرد تشغيل الخدمة، يمكنك الوصول إلى تطبيق FastAPI من متصفحك على العنوان: http://<server-ip>
يُعيد Nginx توجيه طلبات HTTP تلقائياً إلى مقبس Uvicorn الذي يُشغّل تطبيق FastAPI.
٨. تغيير النطاق أو المنفذ
إذا أردت تغيير اسم الخادم أو المنفذ أو النطاق:
- عدّل ملف إعداد موقع Nginx:
sudo nano /etc/nginx/sites-available/uvicorn-fastapi - اختبر الإعداد:
sudo nginx -t - أعد تحميل Nginx:
sudo systemctl restart nginx
٩. خدمة Uvicorn
تطبيق FastAPI يعمل عبر خدمة systemd تحمل الاسم uvicorn-fastapi.
يستخدم /home/fastapi/fastapi_app/main:app كنقطة دخول للتطبيق، مع إعادة التشغيل التلقائية عند حدوث أي عطل.
لإدارة الخدمة:
systemctl status uvicorn-fastapi
systemctl restart uvicorn-fastapi
لتعديل الخدمة:
sudo vim /etc/systemd/system/uvicorn-fastapi.service
sudo systemctl daemon-reload
sudo systemctl restart uvicorn-fastapi
sudo systemctl status uvicorn-fastapi
١٠. تفعيل HTTPS (اختياري)
استخدم Certbot لتفعيل HTTPS.