استک پروژه:
Frontend / Backend: Next.js 15 + TypeScript (strict)
Database: PostgreSQL 16
ORM: Prisma
Cache / PubSub: Redis 7
Containerization: Docker + Docker Compose
وبسرور: Caddy یا Nginx بهعنوان Reverse Proxy و SSL
CI/CD: GitHub Actions
سرور: Ubuntu 22.04 (ابر / VPS)
کد پروژه آماده است و روی محیط توسعه اجرا میشود. الان نیاز داریم یک DevOps Engineer پارهوقت کنار تیم باشد تا:
استقرار اولیه روی سرور Production را انجام دهد
زیرساخت را با Ansible و Restic اتومات و مستند کند
وظایف و فازهای کار
فاز 1 – استقرار اولیه روی سرور (یکبار، حدود 8–12 ساعت)
راهاندازی سرور Ubuntu (VPS / ابر آروان) و آمادهسازی:
نصب Docker و Docker Compose
تنظیم کاربر deploy، SSH Key، ufw / firewall
طراحی و اجرای docker-compose برای:
app (Next.js)
PostgreSQL
Redis
Caddy/Nginx برای HTTPS و Reverse Proxy
تنظیم متغیرهای محیطی (ENV) بهصورت امن (خارج از ریپو)
اجرای Prisma Migrate روی Production
راهاندازی health-check استاندارد (مثلاً /api/health)
تنظیم لاگها و basic monitoring (مصرف CPU/RAM/Storage و error logs)
فاز 2 – Automation با Ansible (هدف: Reza بتواند خودش Deploy کند)
خروجی مورد انتظار:
یک فولدر / ریپوی زیرساخت مثل:
infra/
hosts.ini
group_vars/prod.yml
setup-server.yml
deploy-karina.yml
README.md
setup-server.yml برای:
نصب Docker / Docker Compose / Caddy یا Nginx
تنظیمات پایه امنیت (کاربر، SSH، ufw و …)
deploy-karina.yml برای:
pull آخرین نسخه (git یا image)
docker compose up -d --build
اجرای npx prisma migrate deploy
چک کردن health و fail کردن play در صورت مشکل
یک README واضح که دقیقاً توضیح بدهد من چطور با یک دستور ansible-playbook ... بتوانم:
سرور را از صفر آماده کنم
نسخه جدید پنل را deploy کنم
فاز 3 – بکآپ و Disaster Recovery با Restic
نصب و تنظیم Restic برای بکآپ:
اسکریپت روزانه برای بکآپ دیتابیس PostgreSQL (با pg_dump → restic backup)
تعریف سیاست نگهداری (مثلاً: 7 روز daily، چند weekly و monthly)
تنظیم cronjob یا systemd timer برای اجرای خودکار بکآپ
مستند کردن سناریوی Restore (مثال عملی روی دیتابیس تست):
انتخاب snapshot
restore و راهاندازی مجدد
فاز 4 – نگهداری هفتگی (2–4 ساعت در هفته)
چک هفتگی:
health-check
لاگهای خطا
مصرف منابع سرور
موفق بودن بکآپها
وضعیت SSL / certificate
کمک به Deployment فیچرهای جدید در صورت نیاز
اعمال آپدیتهای امنیتی ضروری (OS / Docker / …)
مستندسازی تغییرات مهم
مهارتهای لازم
مهارتهای الزامی
تسلط عملی روی Linux Server (Ubuntu)
تجربه واقعی با Docker و Docker Compose در محیط Production
تجربه با PostgreSQL:
بکآپ و ریکاوری (pg_dump / restore)
آشنایی عملی با Redis (نصب، تنظیم اولیه، مانیتورینگ ساده)
تجربه با Caddy یا Nginx و تنظیم SSL (Let’s Encrypt)
کار با Git و GitHub
تجربه طراحی یا کار با CI/CD (ترجیحاً GitHub Actions)
آشنایی عملی با Ansible (نوشتن playbook واقعی، نه صرفاً آشنایی تئوری)
توانایی مستندسازی واضح و خوانا (Runbook، README و …)
مهارتهای امتیازی
تجربه استقرار Next.js / Node.js در محیط Production
آشنایی با Prisma
تجربه با ابزارهای بکآپ مثل Restic / Borg / …
تجربه با سیستمهای Multi-tenant یا پنلهای B2B/ERP
خروجیهای قابل تحویل (Deliverables مهم)
ما از فریلنسر انتظار داریم در پایان فازهای اصلی، این خروجیها مشخص و تحویل شوند:
فولدر/ریپوی infra/ شامل:
hosts.ini, playbookهای setup-server و deploy-karina
group_vars برای تنظیمات محیط
README.md با توضیح کامل نحوه استفاده
تنظیم کامل Restic:
اسکریپت بکآپ
cronjob / timer
دستور نمونه برای restore و تست
تنظیم CI/CD ساده:
حداقل یک GitHub Action که روی push به main:
npm run lint
npm run typecheck
npm run test
npm run build
در صورت امکان، اتصال به Ansible (یا پیشنهاد معماری بهتر)
یک Runbook کوتاه:
چگونه deploy کنم
اگر سرویس down شد، چه کار کنم
چگونه بکآپ را برگردانم
شرایط همکاری
نوع همکاری: پارهوقت / پروژهای (remote)
زمان مورد نیاز:
فاز استقرار اولیه: تقریباً 8–12 ساعت
نگهداری بعد از آن: 2–4 ساعت در هفته
نحوه پرداخت:
توافقی (میتوانیم برای فاز 1 مبلغ ثابت + برای نگهداری، ماهانه/ساعتی توافق کنیم)
ابزار ارتباط:
تلگرام / واتساپ برای هماهنگی سریع
GitHub برای issues و پیگیری فنی
این آگهی از وبسایت کارلنسر پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت کارلنسر برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.