إعداد بيئة DevOps كاملة لمشروع Laravel + Next.js مع Dev / Staging / Production باستخدام Docker

تفاصيل المشروع

السلام عليكم ورحمة الله وبركاتة

لدي مشروع ويب يتكون من:

Backend:

* Laravel (PHP)

* MySQL Database

Frontend Dashboard:

* Next.js

المشكلة الحالية:

لدينا ثلاث بيئات تشغيل:

1- Development

2- Staging

3- Production

حالياً الباك إند يعمل على cPanel وجميع البيئات الثلاثة مربوطة بنفس السيرفر ونفس الخدمات تقريباً، مما يسبب مشاكل عند تعديل الإعدادات أو تشغيل خدمات مثل Redis أو WebSockets حيث يؤثر ذلك على Production.

كما أن Frontend موزع حالياً كالتالي:

* Dev و Staging على AWS

* Production على Hostinger

نريد إعادة تنظيم البنية التحتية بحيث تصبح البيئات معزولة ويمكن تشغيل الخدمات مثل Redis و WebSockets بدون التأثير على Production.

المطلوب من المستقل:

1- تصميم وتنفيذ بنية DevOps بسيطة واحترافية للمشروع.

2- استخدام Docker و Docker Compose لإنشاء ثلاث بيئات منفصلة:

Environment 1:

Development

Environment 2:

Staging

Environment 3:

Production

كل بيئة يجب أن تحتوي على:

* Laravel application container

* MySQL container

* Redis container

* Queue worker

* WebSocket server (Laravel Reverb)

3- إنشاء ملفات Docker المطلوبة مثل:

* Dockerfile للـ Laravel

* docker-compose.yml لكل بيئة

* تنظيم المشروع بحيث يمكن تشغيل كل بيئة بشكل مستقل.

4- إعداد Redis و Queue workers بشكل منفصل لكل بيئة حتى لا يحدث تعارض بين Dev و Staging و Production.

5- إعداد WebSockets باستخدام Laravel Reverb لتشغيل ميزات Real-time في النظام.

6- تنظيم المشروع بحيث يمكن تشغيل كل بيئة باستخدام أمر بسيط مثل:

docker compose up -d

7- إعداد Environment variables لكل بيئة (.env files).

8- إعداد Reverse Proxy باستخدام Nginx (اختياري ولكن مفضل).

9- توضيح طريقة تشغيل المشروع بالكامل على السيرفر.

10- توثيق الخطوات في ملف README يشرح:

* كيفية تشغيل كل بيئة

* كيفية تشغيل Redis

* كيفية تشغيل Queue workers

* كيفية تشغيل WebSocket server

* كيفية نشر التحديثات (deployment).

المخرجات المطلوبة:

* Dockerfile

* docker-compose configuration

* إعداد كامل للبيئات الثلاثة

* توثيق واضح لكيفية تشغيل النظام.

ملاحظات مهمة:

* الهدف هو عزل البيئات الثلاثة (Dev / Staging / Production).

* يجب أن تعمل WebSockets و Redis بدون التأثير على Production.

* الحل المطلوب بسيط وعملي وليس معقداً (لا حاجة لـ Kubernetes).

التقنيات المستخدمة في المشروع:

Backend:

Laravel (PHP)

Frontend:

Next.js

Database:

MySQL

Real-time:

Laravel Reverb + Redis

DevOps Tools:

Docker

Docker Compose

يفضل أن يكون المستقل لديه خبرة في:

* Laravel

* Docker

* Redis

* WebSockets

* Linux server management

يرجى توضيح طريقة التنفيذ المقترحة عند التقديم على المشروع.

حالة المشروع
مفتوح
تاريخ النشر
الميزانية
$100.00 - $250.00
مدة التنفيذ
5 أيام
المهارات

صاحب المشروع
Mohamed M.
تاريخ التسجيل
معدل التوظيف
المشاريع المفتوحة 1
مشاريع قيد التنفيذ 0
التواصلات الجارية 3

تقدم للمشروع

العروض المقدمة

السلام عليكم ورحمة الله وبركاته، اطلعت على تفاصيل المشروع، والمشكلة الأساسية واضحة وهي عدم عزل بيئات Dev / Staging / Production مما يسبب تعارض في الخدمات مثل Re...

السلام عليكم يا محمد، أنا Backend Developer وعندي خبرة في Docker و Linux servers، وفاهم المشكلة اللي عندك بخصوص إن بيئات Dev و Staging و Production شغالين على ن...

مرحبا بك، اطلعت على تفاصيل المشكلة التي تواجهونها، والمشكلة كلاسيكية جدا عند استضافة تطبيقات حديثة (Laravel Nextjs WebSockets) على بيئة مشتركة مثل cPanel. تداخل...

وعليكم السلام ورحمة الله وبركاته، اطلعت على تفاصيل مشروعكم وفهمت المشكلة المتعلقة بعدم عزل البيئات (Development / Staging / Production) وتأثير بعض الخدمات مثل R...

السلام عليكم ورحمة الله وبركاته أستاذ محمد، اطلعت على تفاصيل المشروع وفهمت المشكلة الحالية وهي أن بيئات Development و Staging و Production تعمل على نفس الخدمات ...

السلام عليكم ورحمه الله وبركاته ان شاء الله يمكنني تنفيذ طلبك بكل احترافيه,تخصصي هو DevOps/Cloud سبق أن نفذت مشاريع مشابهة، ويمكنك الاطلاع على تقييمي وأعمالي ال...

السلام عليكم هأشتغل على المشروع باستخدام Docker Compose مع عزل كامل للبيئات الثلاثة كالتالي: الحل التقني: كل بيئة شغالة على Docker network منفصل (dev / staging ...

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

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

المستقل غير متاح لاستلام مشاريع، يمكنك ارسال تنبيه له لقبول العرض وإعادة المحاولة بعد بضعة ساعات، أو اختيار عرضاً من مستقل آخر.