Linear من 250 إلى 10 أعضاء: لماذا الترحيل الآن
في فبراير 2026، عدّلت Linear شروط خطتها المجانية: انخفضت حدّ الأعضاء من 250 إلى 10. الفرق التي تجاوزت هذا الحدّ تلقّت إشعاراً وفترة انتقالية قبل تفعيل التغيير. الانتقال إلى خطة Linear المدفوعة يبدأ من وفق التسعيرة المعتمدة على linear.app.
القيد لا يطال عدد الأعضاء فحسب: الدورات (السبرنت)، وبعض التكاملات المتقدمة، والتقارير التحليلية مقيّدة بالاشتراك المدفوع. لفريق متوسط الحجم يستخدم Linear أساساً لتتبع المهام والسبرنت، لا تضيف الميزات المدفوعة دائماً قيمة تفوق ما تتيحه أداة مستضافة ذاتياً بشكل مجاني.
ما يغيّره الاستضافة الذاتية عملياً
- لا حدود للأعضاء — أضف أي عدد من المتعاونين دون تأثير على الفاتورة.
- البيانات تحت سيطرتك — التذاكر والتعليقات وسجل الحالات والمرفقات تبقى في قاعدة بياناتك الخاصة على قرصك الخاص.
- التحديثات بحسب جدولك — أنت من يقرر متى تطبّق إصداراً جديداً؛ لا يعدّل أي مزوّد بيئة الإنتاج لديك دون موافقتك.
- تكاملات مفتوحة — اربط أدواتك الخاصة (CI، webhooks، سكريبتات) دون المرور بسوق تطبيقات مدفوعة.
- تكلفة متوقعة — خادم VPS مُقاس بشكل صحيح يغطي الفريق بأكمله؛ التكلفة لا تتغير مع النمو.
- امتثال داخلي أيسر — استضافة البيانات في بنيتك التحتية تبسّط عمليات التدقيق وسياسات الأمان الداخلية.
Plane أم Vikunja؟ الاختيار بحسب احتياجاتك
Plane وVikunja كلتاهما تغطيان تتبع المهام والسبرنت، لكن ملفّيهما مختلفان. Plane هي الخلف الطبيعي لـLinear للفرق التي تريد العثور على نفس المفاهيم — دورات، وحدات، inbox، صفحات wiki — في واجهة مألوفة. Vikunja أخف وزناً، وتتمحور حول المهام والقوائم، بأثر نظامي منخفض جداً مما يجعلها مناسبة لخوادم VPS ذات الموارد المحدودة أو للفرق التي لا تحتاج إلى إدارة سبرنت رسمية.
Plane مقابل Vikunja: جدول مقارن
| المعيار | Plane | Vikunja |
|---|---|---|
| الحدّ الأدنى من RAM | 4 GB (AIO community) | أقل من 512 MB |
| الرخصة | AGPL-3.0 | GPL-3.0 |
| إدارة الـ Backlog | مهام، حالات مخصصة، أولويات، تصنيفات | مهام، قوائم، buckets، أولويات |
| السبرنت / الدورات | دورات أصيلة (تاريخ بداية ونهاية وتقدم) | لا سبرنت أصيل — يُحاكى بالقوائم |
| التكاملات | GitHub، GitLab، Slack، Jira (استيراد)، REST API | REST API، webhooks، استيراد CSV/JSON |
| منحنى التعلم | متوسط — واجهة غنية، عدة مفاهيم للإتقان | منخفض — جاهزة للعمل في دقائق |
| الاستيراد من Linear | CSV يستورَد يدوياً عبر المهام | CSV أو JSON عبر واجهة الاستيراد |
| الحالة الموصى بها | فرق تقنية 5–50 شخصاً، إدارة سبرنت رسمية | فرق صغيرة، استخدام شخصي أو مشاريع خفيفة |
التصدير من Linear: الإجراء الدقيق
تتيح Linear تصدير مهامك بصيغة CSV من إعدادات مساحة العمل. يشمل التصدير المهام النشطة والمؤرشفة، وحالاتها وأولوياتها وتصنيفاتها والمعيّنين إليها والتعليقات بنص عادي. المرفقات (الملفات المرفوعة مباشرة في Linear) غير مشمولة في تصدير CSV — حمّلها يدوياً إن كانت حيوية.
الترحيل من Linear إلى Plane أو Vikunja في سبع خطوات
تصدير مهامك من Linear
في Linear، افتح Settings (أيقونة الترس أسفل اليسار) ← Workspace ← Export. اختر صيغة CSV وابدأ التصدير. تُرسل Linear بريداً إلكترونياً بالرابط خلال دقائق. يحتوي الملف على: title، description، status، priority، assignee، labels، created_at، updated_at، completed_at، cycle، project، والتعليقات في عمود مخصص. احتفظ بهذا الملف — هو مصدر الترحيل.
نشر Plane أو Vikunja على خادم VPS
لـPlane: الحدّ الأدنى وفق الوثائق الرسمية للصورة AIO هو 2 vCPU و4 GB RAM. شغّل الحاوية بـ: docker run -d --name plane --restart unless-stopped --env-file /opt/plane/.env -v plane-data:/app/plane-data -p 127.0.0.1:8080:8080 makeplane/plane-aio-community:stable. راجع دليل نشر Plane على VPS للحصول على تفاصيل HTTPS reverse proxy.
لـVikunja: يكفي خادم بـ 1 vCPU و512 MB RAM. أنشئ ملف docker-compose.yml مع خدمة vikunja (الصورة vikunja/vikunja:latest) وقاعدة بيانات (MariaDB أو PostgreSQL). اعرض المنفذ 3456 خلف reverse proxy. تبدأ Vikunja في أقل من ثلاثين ثانية على مضيف بموارد محدودة.
تحضير ملف CSV للاستيراد
قبل الاستيراد، افتح CSV في جدول بيانات وتحقق من عمود الحالات: تستخدم Linear أسماءها الخاصة (Backlog، Todo، In Progress، Done، Cancelled). لـPlane ولـVikunja حالات افتراضية مختلفة. إما تغيّر الأسماء في CSV لتتطابق مع الحالات المستهدفة، أو تنشئ الحالات المقابلة في الأداة الجديدة قبل الاستيراد. الحالة غير المعروفة تُهمَل عادةً أو تُعيَّن للحالة الافتراضية — تحقق بعد الاستيراد.
استيراد المهام إلى Plane أو Vikunja
في Plane: افتح مشروعك ← Settings ← Imports ← CSV. ارفع الملف وعيّن الأعمدة: title ← اسم، description ← وصف، status ← حالة، priority ← أولوية، assignee ← معيّن، labels ← تصنيفات. يُنشئ Plane المهام دفعةً واحدة ويحتفظ بتواريخ الإنشاء إن كان عمود created_at معيَّناً.
في Vikunja: افتح قائمتك ← أيقونة الاستيراد ← CSV. تتوقع Vikunja الأعمدة Title، Description، Done (قيمة منطقية)، Due Date، Priority. إن كانت أعمدة CSV من Linear بأسماء مختلفة، أعد تسمية رؤوس الأعمدة قبل الاستيراد. تتيح Vikunja أيضاً استيراد JSON لترحيل أدق عبر API.
التحقق من سلامة البيانات بعد الاستيراد
بعد الاستيراد، قارن عدد المهام المستوردة بعدد الصفوف في ملف CSV. إن كانت هناك مهام ناقصة، فالأرجح أن حالتها أو أولويتها غير معروفة. صفّ المهام حسب الحالة في أداتك الجديدة لرصد الشذوذات. تحقق أيضاً من أن المهام المعيّنة لأعضاء تحمل معيّناً فعلياً — يجب أن يكون الأعضاء موجودين في الأداة المستهدفة قبل الاستيراد، وإلا يُترك الحقل فارغاً في صمت.
دعوة أعضاء الفريق
في Plane: افتح Settings ← Members في مساحة العمل ← Invite Members. أرسل الدعوات بالبريد الإلكتروني. يقبل الأعضاء الدعوة وينشئون حساباتهم على نسختك. عيّن لهم الأدوار المناسبة (Admin، Member، Viewer) على مستوى المشروع.
في Vikunja: افتح Settings ← Users (من واجهة الإدارة) ← New User، أو دع الأعضاء يسجّلون مباشرةً إن فعّلت التسجيل المفتوح. شارك بعد ذلك القوائم أو المشاريع مع كل عضو من إعدادات المشاركة.
ضبط التكاملات والاختبار
إن كان فريقك يستخدم تكامل GitHub في Linear، اربط ما يعادله في أداتك الجديدة: يوفر Plane تكامل GitHub في Settings ← Integrations ← GitHub. يعرض Vikunja REST API وwebhooks — اربط مسار CI الخاص بك عبر webhooks الواردة. أجرِ اختباراً شاملاً: أنشئ مهمة من مسار CI، تحقق من ظهورها في الأداة، غيّر حالتها، وتحقق من وصول الإشعار (بريد إلكتروني أو webhook) بشكل صحيح.
ابدأ بمشروع تجريبي
لا تنقل الفريق بأكمله دفعةً واحدة. اختر مشروعاً ثانوياً أو فريقاً متطوعاً لاختبار الاستيراد والتحقق من تعيين الحالات وتدريب مجموعة أولى من المستخدمين. حين يستقر المشروع التجريبي — أسبوع أو أسبوعان — انقل المشاريع المتبقية. يتيح هذا النهج التدريجي اكتشاف مشكلات التعيين أو التكامل دون تعطيل الإنتاج.
استكشاف الأخطاء: مشكلات الترحيل الشائعة
Plane لا تعمل بأقل من 4 GB RAM. تجمع الصورة AIO بين Django وCelery وPostgreSQL وRedis في حاوية واحدة. بأقل من 4 GB، يتنافس Celery worker مع PostgreSQL على الذاكرة وتعيد الحاوية التشغيل في حلقة. تحقق بـ docker stats plane: إن تجاوز RSS الذاكرة 90% مما هو متاح عند بدء التشغيل، زد موارد VPS قبل أي تحقيق آخر.
استيراد CSV في Plane ينتهي دون خطأ لكن المهام لا تظهر. يتحقق Plane من CSV في صمت: إن كان عمود إلزامي (title) فارغاً في صف ما، يُهمَل الصف بأكمله. افتح CSV في جدول بيانات وصفّ الصفوف ذات العنوان الفارغ — غالباً هي صفوف المهام الفرعية في Linear التي لا تمتلك عنواناً خاصاً في التصدير.
Vikunja تعيد الأولويات إلى الصفر بعد الاستيراد. تتوقع Vikunja قيماً رقمية للأولوية (0 = بلا، 1 = منخفضة، 2 = متوسطة، 3 = عالية، 4 = عاجلة). يستخدم تصدير Linear تسميات نصية (Low، Medium، High، Urgent، No priority). استبدل هذه التسميات بالقيم الرقمية المقابلة في CSV قبل الاستيراد — البحث والاستبدال في جدول بيانات كافٍ.
الأعضاء المدعوون لا يتلقون البريد الإلكتروني. تحقق من أن متغيرات البريد الصادر مضبوطة بشكل صحيح في ملف .env (EMAIL_HOST، EMAIL_PORT، EMAIL_HOST_USER، EMAIL_HOST_PASSWORD). على Plane اختبر بـ docker exec plane python manage.py sendtestemail [email protected]. على Vikunja يوجد إعداد SMTP في config.yml تحت مفتاح mailer.
إدارة مشاريعك على بنيتك التحتية الخاصة
يُجسّد تقليص الخطة المجانية لـLinear خطراً هيكلياً في أدوات SaaS: الشروط تتغير، والحدود تنخفض، والفرق التي بنت سيرها على أداة جهة خارجية تجد نفسها مُجبَرة على الدفع أو الترحيل في ضيق. يوفر Plane وVikunja بديلاً مستقراً بنموذج بيانات مشابه لـLinear ورخص مفتوحة المصدر تضمن ديمومة البيانات. الاختيار بينهما يعتمد أساساً على RAM المتاح في VPS والحاجة إلى إدارة سبرنت رسمية — Plane لمسارات العمل القريبة من Linear، وVikunja لإعداد أخف. لمزيد من التوسع في توحيد أدوات الإدارة، راجع دليل Huly (مهام وتوثيق ودردشة في أداة واحدة) ودليل الترحيل من SaaS إلى الاستضافة الذاتية.