بازار حرفه‌ای ترمیتجزئیات پروژه

پیش از ارسال پیشنهاد، نیاز پروژه را دقیق بخوان

پرداخت امن و همکاری شفاف
بازگشت به بازار پروژه‌ها
طراحی و توسعه وب منتخب ترمیت

ساخت سیستم Deploy و CI/CD اختصاصی شرکت

ربات ترمیت

بودجه پروژه۷٬۰۰۰٬۰۰۰ تا ۲۵٬۰۰۰٬۰۰۰تومان
مهلت انجامتوافقی
پیشنهادهای ثبت‌شده۰ پیشنهاد
مدل پرداختامن و مرحله‌ای
شرح کامل پروژه

دقیقاً چه کاری باید انجام شود؟

استخدام فریلنسر DevOps / Backend برای ساخت سیستم Deploy اختصاصی

ما برای شرکت به دنبال یک فریلنسر مسلط به DevOps و Backend هستیم تا روی سرورهای شخصی شرکت، یک سیستم اختصاصی برای CI/CD و Deploy خودکار پروژه‌ها پیاده‌سازی کند.

هدف، ساخت یک سیستم داخلی مشابه Render، Liara یا Railway است؛ البته در مقیاس موردنیاز شرکت و روی سرورهای خودمان.

کاری که سیستم باید انجام دهد

پروژه‌های تیم ما روی GitLab قرار دارند.

می‌خواهیم پس از Push یا Merge شدن تغییرات روی Branch مشخص، سیستم به‌صورت خودکار:

  • تغییر جدید را از GitLab دریافت و تشخیص دهد.
  • سورس پروژه را دریافت کند.
  • Pipeline تعریف‌شده برای پروژه را اجرا کند.
  • مراحل نصب Dependencies، Build و Migration را انجام دهد.
  • Environment Variables و Secretهای هر پروژه را مدیریت کند.
  • نسخه جدید را Deploy کند.
  • Health Check انجام دهد.
  • در صورت موفق بودن Deploy، نسخه جدید را روی Domain یا Subdomain مربوطه در دسترس قرار دهد.
  • در صورت خطا، نسخه قبلی از دسترس خارج نشود.
  • امکان Redeploy و ترجیحاً Rollback به نسخه قبلی وجود داشته باشد.

در حالت نهایی، Developer فقط کد را روی GitLab Push یا Merge می‌کند و باقی مراحل بدون نیاز به ورود دستی به سرور انجام می‌شود.

قابلیت‌های موردنیاز

سیستم باید قابلیت مدیریت چند پروژه را داشته باشد و بتوان برای هر پروژه موارد زیر را جداگانه تنظیم کرد:

  • GitLab Repository
  • Branch
  • Environment Variables
  • Build Command
  • Start Command
  • Port
  • Domain / Subdomain
  • Docker Configuration
  • Health Check
  • Deployment History
  • Logs

پروژه‌های ما ممکن است با تکنولوژی‌هایی مانند Next.js، Node.js، NestJS، React، Python/FastAPI، Go و Docker توسعه داده شده باشند.

پنل مدیریت

نیاز داریم یک پنل مدیریتی ساده نیز وجود داشته باشد تا بتوانیم:

  • پروژه‌ها را اضافه و مدیریت کنیم.
  • وضعیت Deploy را مشاهده کنیم.
  • Build و Application Logs را ببینیم.
  • Environment Variables را مدیریت کنیم.
  • Domain و تنظیمات پروژه را تغییر دهیم.
  • پروژه را Start، Stop یا Restart کنیم.
  • Deploy مجدد انجام دهیم.
  • تاریخچه Deployها را مشاهده کنیم.
  • در صورت امکان Rollback انجام دهیم.

زیرساخت

ترجیح ما استفاده از Docker / Docker Compose برای اجرای پروژه‌ها است.

برای مدیریت Domainها و SSL نیز می‌توان از ابزارهایی مانند Nginx، Traefik یا Caddy و Let's Encrypt استفاده کرد.

سیستم باید به GitLab از طریق Webhook / API / Deploy Key متصل شود تا Deployها به‌صورت خودکار اجرا شوند.

امنیت

موارد زیر باید در طراحی در نظر گرفته شوند:

  • نگهداری امن Secretها و Environment Variables
  • اعتبارسنجی GitLab Webhook
  • مدیریت سطح دسترسی
  • ایزوله بودن پروژه‌ها و Containerها
  • جلوگیری از اجرای دستورات غیرمجاز
  • Backup و امکان بازیابی تنظیمات

مهارت‌های موردنیاز

فریلنسر باید تجربه عملی مناسبی در موارد زیر داشته باشد:

  • Linux Server Administration
  • DevOps و CI/CD
  • GitLab
  • Docker و Docker Compose
  • Nginx / Traefik / Caddy
  • Backend Development
  • Networking و DNS
  • SSL
  • Deployment Automation
  • Environment و Secret Management
  • Logging
  • Security

آشنایی با GitLab Runner، Redis، PostgreSQL، Zero-Downtime Deployment، Rollback، Monitoring و Container Registry مزیت محسوب می‌شود.

خروجی مورد انتظار

در پایان پروژه باید فرآیند کلی به این صورت باشد:

Developer → GitLab Push/Merge → اجرای Pipeline → Build → Deploy → Health Check → فعال شدن نسخه جدید

بدون اینکه برای هر آپدیت نیاز باشد شخصی وارد سرور شود و پروژه را به‌صورت دستی Deploy کند.

تمام سورس‌کد، تنظیمات، مستندات و راهنمای نصب سیستم نیز باید در اختیار شرکت قرار بگیرد.

نکته: هدف ما صرفاً نصب GitLab Runner یا نوشتن چند Bash Script نیست؛ ما یک سیستم Deploy داخلی، قابل مدیریت و قابل توسعه برای پروژه‌های شرکت می‌خواهیم.

پی نوشت: نیاز است که برای گفتگو با ما گوگل میت یا سرویس های مشابه داشته باشید

مهارت‌های موردنیاز

FastAPIPythonSQL ServerNext.jsNode.jsReact