
راهاندازی CI/CD با Coolify و Docker Compose
- توسعه نرمافزار و آیتی
- زمان باقیمانده برای ارسال پیشنهاد
هدف پروژه
پیادهسازی یک فرآیند CI/CD استاندارد، امن و قابل کنترل برای استقرار سرویسهای Backend و Frontend در سه محیط dev / stage / prod بهطوری که:
Stage فقط پذیرای کد تمیز و تایید شده باشد.
Prod تنها با مرج کنترلشده توسط تیم ما و با حداقل ریسک Deploy شود.
تکنولوژیها
Backend: FastAPI
Frontend: Next.js
Containerization: Docker
Orchestration: Docker Compose
Deployment Platform: Coolify
محیطها و سیاست انتشار Dev
Deploy خودکار پس از commit/merge
مناسب توسعه و تست سریع
لاگ و مانیتورینگ پایه فعال
Stage
فقط کدی که تست، lint و build را پاس کرده وارد شود
Deploy فقط بعد از تایید CI و حداقل یک Reviewer
تنظیمات نزدیک به Prod (بهجز secrets و منابع)
بدون کد آزمایشی یا ناپایدار
Prod
شاخه اصلی (main) کاملاً Protected
Push مستقیم ممنوع
مرج فقط توسط اعضای مشخص تیم ما
CI باید کامل پاس شود
Deploy فقط با:
مرج تاییدشده یا
Tag نسخه (Release-based)
امکان Rollback به نسخه قبلی
CI (برای Backend و Frontend)
نصب وابستگیها
اجرای تستها
اجرای lint و format check
build موفق (Docker image)
شکست هر مرحله = جلوگیری از merge/deploy
Backend (FastAPI)
اجرای pytest
lint و format
build Docker با healthcheck
Migration:
Stage: کنترلشده
Prod: فقط با تایید دستی
Frontend (Next.js)
lint و type-check
build production
build Docker بهینه (multi-stage)
CD و استقرار
استفاده از Docker Compose برای هر محیط
تفکیک فایل یا override برای dev / stage / prod
Deploy از طریق Coolify
Restart policy و healthcheck فعال
مدیریت Secrets و Config
تمام Secrets فقط در Coolify
تفکیک کامل env ها بین محیطها
عدم ذخیره اطلاعات حساس در repository
استفاده از .env.example صرفاً برای راهنما
Branching و کنترل کد
develop → dev
stage / release → stage
main → prod
PR اجباری بین شاخهها
تایید CI و Reviewer برای merge
محدودسازی مرج به Prod فقط برای تیم ما
خروجی مورد انتظار
CI/CD پایدار و قابل اطمینان
حذف Deploy ناخواسته
افزایش کیفیت کد قبل از Prod
کنترل کامل تیم روی Stage و Prod
مستندسازی کامل Pipeline و فرآیند Deploy
مهارتهای مورد نیاز
Linux
امنیت وب
راه اندازی سرور لینوکس
Redis
دوآپس
سرویسهای مرتبط
فریلنسرهایی که در این پروژه پیشنهاد ارسال کردهاند
Mah19205(1) امتیاززمان تحویل: 5 روزارسال پیشنهاد در:- زمان تحویل: 5 روزارسال پیشنهاد در:
- زمان تحویل: 5 روزارسال پیشنهاد در:
- زمان تحویل: 10 روزارسال پیشنهاد در:
catalon4.94(22) امتیاززمان تحویل: 10 روزارسال پیشنهاد در:- زمان تحویل: 20 روزارسال پیشنهاد در:
- SIsinamohammadi994.9(4) امتیاززمان تحویل: 15 روزارسال پیشنهاد در:
amirshahamiri4.76(5) امتیاززمان تحویل: 10 روزارسال پیشنهاد در:- زمان تحویل: 20 روزارسال پیشنهاد در:
- زمان تحویل: 20 روزارسال پیشنهاد در:
mohamadsajedi4.93(14) امتیاززمان تحویل: 7 روزارسال پیشنهاد در:
arvinbst5(1) امتیاززمان تحویل: 10 روزارسال پیشنهاد در:


