
مهاجرت پلتفرم آموزشی به سرور ایران و Sync امن
- توسعه نرمافزار و آیتی
- زمان باقیمانده برای ارسال پیشنهاد
عنوان پروژه
مهاجرت کامل پلتفرم آموزشی به سرور ایران + راهاندازی Supabase Self-Hosted و سیستم Sync
یک پلتفرم آموزشی آنلاین فعال و نسبتاً بزرگ داریم که در حال حاضر شامل وباپلیکیشن و بکاند مبتنی بر Supabase است. قصد داریم یک نسخه کامل و عملیاتی از این پلتفرم روی سرور ایران (ArvanCloud) داشته باشیم تا در صورت اختلال یا قطع اینترنت بینالمللی، کاربران داخل ایران همچنان بتوانند از سرویس استفاده کنند.
هدف صرفاً انتقال سایت یا گرفتن Backup نیست. نسخه ایران باید تا حد ممکن یک نسخه عملیاتی از کل سیستم باشد و اطلاعات آن بهصورت منظم با سیستم اصلی همگام شود.
بخشهای پروژه
پروژه شامل مهاجرت و راهاندازی کامل موارد زیر است:
- سورس و Web Application
- PostgreSQL Database
- تمام Tableها، Schemaها، Relationها، Foreign Keyها، Constraintها و Sequenceها
- Supabase Self-Hosted روی سرور ایران
- Supabase Auth شامل کاربران و Identityها
- Supabase Storage شامل Bucketها، فایلها و Metadata
- Supabase Edge Functions (پروژه بیش از 100 Function دارد)
- Supabase Realtime
- Environment Variables و Secrets موردنیاز
- سرویسها و APIهای Backend
- دامنه، SSL، Reverse Proxy و اتصال CDN
- Integrationهای موردنیاز سیستم
دیتابیس پروژه نسبتاً بزرگ است و در حال حاضر حدود 170+ جدول Public دارد.
Storage نیز شامل چندین Bucket و صدها فایل است.
نیاز اصلی: سیستم Synchronization
بعد از راهاندازی نسخه ایران، باید یک سیستم Sync قابل اطمینان بین نسخه اصلی و نسخه ایران وجود داشته باشد.
نسخه اصلی همچنان سیستم اصلی و Source of Truth خواهد بود.
اطلاعات جدید و تغییرات نسخه اصلی باید به نسخه ایران منتقل شوند، اما Sync نباید به شکلی باشد که اطلاعات جدید ایجادشده روی نسخه ایران را از بین ببرد.
برای مثال در زمان اختلال اینترنت ممکن است کاربران وارد نسخه ایران شوند و اطلاعات جدیدی ایجاد شود، از جمله:
- ثبتنام کاربر
- خرید و سفارش
- ثبتنام در دوره
- پیشرفت دوره
- تمرین و Assignment
- Lead
- اطلاعات CRM
- Upload فایل
- سایر اطلاعات کاربران
اجرای Sync بعدی نباید این اطلاعات را حذف یا به شکل اشتباه overwrite کند.
Conflictهای بین دو نسخه باید شناسایی و مدیریت شوند و اولویت اصلی، جلوگیری از Data Loss است.
هیچ عملیات Sync نیز نباید باعث حذف یا خراب شدن اطلاعات Production اصلی شود.
Sync بخشهای مختلف
سیستم Sync باید بتواند بخشهای مختلف را مدیریت کند، از جمله:
- Database
- Schema
- Auth
- Storage
- Edge Functions
- Configurationهای لازم
Sync باید امکان اجرای خودکار در زمانبندی مشخص و اجرای دستی را داشته باشد.
پنل مدیریت Sync
یک پنل مدیریتی ساده و کاربردی میخواهیم تا بدون نیاز به SSH یا اجرای Command بتوانیم وضعیت نسخه ایران و Synchronization را مدیریت کنیم.
از طریق پنل باید بتوانیم مواردی مانند اینها را مشاهده یا مدیریت کنیم:
- وضعیت سرور و سرویسها
- وضعیت اتصال نسخه اصلی و ایران
- آخرین Sync
- اجرای Manual Sync
- Automatic Sync
- Database Sync
- Auth Sync
- Storage Sync
- Functions Sync
- تعداد اطلاعات Insert/Update/Conflict/Failed
- خطاهای Sync
- تاریخچه اجراها
- وضعیت Health سرویسهای اصلی
همچنین در عملیات حساس ترجیحاً امکان Dry Run وجود داشته باشد تا قبل از Sync مشخص شود چه تغییراتی قرار است انجام شود.
الزامات نسخه ایران
نسخه ایران باید در حد امکان مستقل و قابل استفاده باشد.
موارد اصلی سیستم باید تست شوند، از جمله:
- Login / Signup
- کاربران
- پروفایل
- دورهها و درسها
- دسترسی کاربران به دورهها
- Enrollment
- سفارشها و پرداختها
- Progress دوره
- تمرینها و Assignmentها
- Upload و Download فایل
- Storage
- Auth
- Realtime
- Edge Functions
- APIها
- سرویسها و Integrationهای ضروری پلتفرم
امنیت و Data Integrity
این قسمت برای ما بسیار مهم است.
سیستم اصلی Production فعال است و اطلاعات واقعی کاربران داخل آن قرار دارد.
بنابراین:
- نباید اطلاعات Production اصلی در فرآیند مهاجرت یا Sync آسیب ببیند.
- نباید Sync باعث Data Loss شود.
- اطلاعات ایجادشده در نسخه ایران نباید در Sync بعدی بدون بررسی حذف شوند.
- Conflictها باید مدیریت شوند.
- عملیات مهم باید Log داشته باشند.
- اطلاعات حساس و Secretها نباید در Log یا پنل نمایش داده شوند.
- قبل از عملیات حساس امکان Backup/Recovery مناسب باید وجود داشته باشد.
مانیتورینگ و لاگ
برای هر Sync باید بتوانیم حداقل موارد زیر را ببینیم:
- زمان شروع و پایان
- وضعیت موفق/ناموفق
- تعداد رکوردهای جدید
- تعداد رکوردهای تغییرکرده
- Conflictها
- موارد Skip شده
- Errorها
- نتیجه Sync دیتابیس
- نتیجه Auth
- نتیجه Storage
- نتیجه Functions
همچنین Health سرویسهای اصلی باید قابل بررسی باشد.
نکته مهم درباره حجم پروژه
این یک سایت ساده یا WordPress نیست.
پروژه یک Web Application فعال با Supabase نسبتاً بزرگ، 170+ جدول، بیش از 100 Edge Function، Auth، Storage، Realtime و تعداد زیادی ارتباط بین بخشهای مختلف سیستم است.
به همین دلیل دنبال فردی هستیم که تجربه واقعی در حداقل چند مورد از زمینههای زیر داشته باشد:
Linux Server / DevOps، Docker، PostgreSQL، Supabase و Supabase Self-Hosted، Database Migration، Backup & Recovery، Data Synchronization، Auth، Object Storage، Reverse Proxy/CDN/SSL و مانیتورینگ.
خروجی نهایی مورد انتظار
در پایان پروژه باید یک نسخه کامل و قابل استفاده از پلتفرم روی سرور ایران داشته باشیم که در زمان اختلال اینترنت بینالمللی بتواند سرویس اصلی را برای کاربران ایرانی تا حد امکان حفظ کند.
همچنین باید سیستم همگامسازی خودکار و دستی، پنل مدیریت تحویل داده شود
مهارتهای مورد نیاز
Cisco
رایانش ابری (Cloud Computing)
امنیت وب
ویندوز سرور
طراحی شبکه
سرویسهای مرتبط
فریلنسرهایی که در این پروژه پیشنهاد ارسال کردهاند
admidpk4.96(63) امتیاززمان تحویل: 60 روزارسال پیشنهاد در:
viros5(5) امتیاززمان تحویل: 30 روزارسال پیشنهاد در:
mahankh804.97(6) امتیاززمان تحویل: 20 روزارسال پیشنهاد در:
sadraka4.78(9) امتیاززمان تحویل: 15 روزارسال پیشنهاد در:- ARزمان تحویل: 45 روزارسال پیشنهاد در:
alirjb5(4) امتیاززمان تحویل: 14 روزارسال پیشنهاد در:
mohammadghp4.97(32) امتیاززمان تحویل: 25 روزارسال پیشنهاد در:
l3est4.94(48) امتیاززمان تحویل: 30 روزارسال پیشنهاد در:
pioneers4.66(16) امتیاززمان تحویل: 40 روزارسال پیشنهاد در:- MAmahyarsoftware4.83(7) امتیاززمان تحویل: 5 روزارسال پیشنهاد در:
prismalearn5(5) امتیاززمان تحویل: 7 روزارسال پیشنهاد در:
