جانغو

إطار عمل ويب Python يشجع على التطوير السريع والتصميم النظيف والعملي.

1. SSH إلى الخادم الخاص بك

ssh root@<server-ip>

2. ابحث عن بيانات تسجيل الدخول

  • المستخدم الافتراضي: django
  • كلمة المرور مخزنة في: /root/.cloudzy-creds

(اختياري) تغيير كلمة المرور الافتراضية: passwd django

3. التبديل إلى مستخدم التطبيق

su - django

4. PostgreSQL (اختياري)

إذا تم تثبيت PostgreSQL، فقم بإعداد قاعدة البيانات والمستخدم (مثال):

sudo -u postgres psql
CREATE DATABASE <db>;
CREATE USER <user> WITH PASSWORD <password>;
GRANT ALL PRIVILEGES ON DATABASE <db> TO <user>;
q

ثم قم بالتحديث settings.py DATABASES مع المضيف localhost، اسم قاعدة البيانات، المستخدم، وكلمة المرور. قم بتشغيل python manage.py migrate.

5. نشر تطبيقك

تطبيق Flask النموذجي قيد التشغيل بالفعل ويمكن الوصول إليه على: http://<server-ip

لنشر تطبيقك الخاص:

  1. انتقل إلى دليل التطبيق (أو انسخ مشروعًا جديدًا): cd ~/django_app
  2. (اختياري) استبدال التطبيق الافتراضي: git clone <your_repo_url> .
  3. تنشيط البيئة الافتراضية: source venv/bin/activate
  4. تثبيت الحزم المطلوبة: pip install -r requirements.txt
  5. ضبط settings.py: تعيين ALLOWED_HOSTS إلى نطاقك/عنوان IP الخاص بك وتأكد من STATIC_ROOT موجود.
  6. ترحيل قاعدة البيانات: python manage.py migrate
  7. جمع الكهرباء الساكنة في STATIC_ROOT: python manage.py collectstatic --noinput
  8. أعد تشغيل Gunicorn لتطبيق التغييرات: sudo systemctl restart gunicorn
  9. أعد تشغيل Nginx: sudo systemctl restart nginx

6. الوصول إلى تطبيقك

Your Django app is available at: http://<server-ip

يقوم Nginx بتوجيه الطلبات إلى Gunicorn عبر مأخذ توصيل Unix.

7. تغيير المنفذ أو المجال؟

لضبط المجال أو المنفذ أو إضافة SSL:

  1. تحرير تكوين موقع Nginx: sudo nano /etc/nginx/sites-available/gunicorn_django
  2. تكوين الاختبار: sudo nginx -t
  3. إعادة تحميل Nginx: sudo systemctl restart nginx

8. تمكين HTTPS (اختياري)

استخدم Certbot لتمكين HTTPS.

تثبيت certbot:

sudo apt install certbot python3-certbot-nginx -y

احصل على الشهادات وقم بتحديث Nginx تلقائيًا:

sudo certbot --nginx -d example.com

اختبار:

nginx -t && sudo systemctl reload nginx

تفاصيل الطلب