ما الذي تغيّر في Cal.com في أبريل 2026
نشرت Cal.com في 14 أبريل 2026 مقالاً رسمياً يشرح القرار: صعود أدوات الذكاء الاصطناعي القادرة على فحص الكود العام للكشف عن ثغرات أمنية دفع الفريق إلى إغلاق قاعدة الكود التجاري. الإصدار v6.4 يمثّل نقطة التحوّل.
تمّت إعادة تسمية المستودع العام calcom/cal.com إلى calcom/cal.diy وتغيير رخصته من AGPL-3.0 إلى MIT. قد يبدو هذا التغيير متساهلاً للوهلة الأولى، لكن جوهر المشكلة هو ما تمت إزالته من الكود العام، وليس الرخصة ذاتها. يوصي موقع cal.diy رسمياً بـCal.com (النسخة المغلقة) لأي استخدام تجاري أو إنتاجي.
الميزات المحذوفة من cal.diy مقارنةً بالنسخة AGPL
- Teams وOrganizations: إدارة متعددة الأعضاء وفضاءات الفِرَق، محجوزة الآن للعرض المؤسسي المغلق.
- Workflows: أتمتة التذكيرات والإشعارات والإجراءات المُشغَّلة، غائبة من الكود العام.
- SSO وSAML: تسجيل دخول موحّد عبر موفّر هويتك، محذوف من cal.diy.
- Routing Forms: نماذج التصفية لتوجيه الحجوزات للعضو المناسب، محذوفة.
- Instant Booking: حجز فوري دون تأكيد يدوي، محجوز للعرض التجاري.
- Insights: لوحة تحليلات الحجوزات، غائبة من الكود المفتوح.
- API v1: واجهة برمجة REST الموثّقة القديمة، مستبدَلة بـAPI v2 في الجانب التجاري فقط.
- وكيل الهاتف الذكي: جدولة مدعومة بالذكاء الاصطناعي عبر مكالمة هاتفية، مغلق المصدر.
متطلبات مقارنة: RAM والمعالج والبنية التقنية لكل بديل
قبل الاختيار، تأكد من أن خادم VPS يتوافق مع متطلبات الأداة. البدائل الثلاثة لها بنى تقنية مختلفة جداً — Node.js/PostgreSQL وPHP/MySQL وElixir/PostgreSQL — مما يُترجَم إلى متطلبات موارد ومتطلبات إدارة مختلفة.
ملفات الموارد لكل أداة
- Rallly (AGPL-3.0): Next.js + PostgreSQL عبر Docker Compose. خصّص 2 جيجابايت RAM على الأقل، vCPU واحد كافٍ للحمل الخفيف. نطاق ومُرسِل SMTP وDocker Compose v2 مطلوبة. يتضمن الحزمة الرسمية PostgreSQL وتخزين كائنات S3 وبروكسي HTTPS — أمر واحد يكفي.
- Easy!Appointments (GPL-3.0): PHP 8.2+ + MySQL/MariaDB. يعمل على أي خادم LAMP عادي أو Docker. 512 ميجابايت RAM كافية للاستخدام الفردي أو الفريق الصغير — الأخف من بين الثلاثة. متوافق مع استضافة مشتركة cPanel، وليس VPS فقط.
- Tymeslot (AGPL-3.0): Elixir/Phoenix LiveView + PostgreSQL مدمج في حاوية Docker. بنية مُجمَّعة، بصمة ذاكرة منخفضة جداً أثناء التشغيل. حاوية Docker واحدة مع PostgreSQL مدمج — مصمم لتثبيت VPS نظيف.
نشر Rallly على VPS باستخدام Docker Compose
إعداد الخادم
سجّل الدخول بصلاحية root على خادم VPS. ثبّت Docker وDocker Compose v2 إذا لم يكونا مثبّتَين:
curl -fsSL https://get.docker.com | sh docker compose versionافتح المنفذَين 80 و443 في الجدار الناري. أشر نطاقاً فرعياً (
cal.your-domain.com) إلى IPv4 خادمك عبر سجل DNS من نوع A.جلب الإعداد الرسمي
استنسخ مستودع أمثلة self-hosted الرسمي لـRallly وأنشئ ملف البيئة:
git clone https://github.com/lukevella/rallly-selfhosted.git cd rallly-selfhosted cp .env.example .envضبط متغيرات البيئة
افتح
.envوأدخل المتغيرات الأساسية:SECRET_PASSWORD=<سلسلة-عشوائية-32-حرف> NEXT_PUBLIC_BASE_URL=https://cal.your-domain.com SMTP_HOST=smtp.مزودك.com SMTP_PORT=587 SMTP_USER=بريدك@domain.com SMTP_PWD=<كلمة-مرور-smtp> SUPPORT_EMAIL=بريدك@domain.comأنشئ السلسلة العشوائية بـ
openssl rand -hex 16. لا تتركSECRET_PASSWORDفارغاً — سيرفض Rallly الإقلاع بدون قيمة.تشغيل الحاويات
شغّل كامل البنية التقنية في الخلفية. تتضمن حزمة Rallly التطبيق وPostgreSQL وتخزين الكائنات وبروكسي عكسي مع TLS تلقائي:
docker compose up -dتحقق أن جميع الخدمات
healthy:docker compose psيحصل البروكسي العكسي تلقائياً على شهادة Let's Encrypt عند الإقلاع الأول — انتظر دقيقة قبل الوصول للنطاق.
التحقق من التثبيت وإنشاء أول استطلاع
افتح
https://cal.your-domain.comفي المتصفح. لا يتطلب Rallly من المشاركين إنشاء حساب — فقط المنظّم. أنشئ أول استطلاع توافر للتحقق من صحة إرسال البريد الإلكتروني عبر SMTP.إذا لم تصل الرسائل، تحقق من سجلات الخدمة:
docker compose logs app --tail=50تفعيل التحديثات التلقائية (اختياري)
للبقاء محدَّثاً دون تدخل يدوي، ثبّت Watchtower الذي يراقب الصور الجديدة ويعيد تشغيل الحاويات المتأثرة:
docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower --cleanup --interval 86400يتحقق Watchtower من الصور الجديدة مرة يومياً. ينشر Rallly تصحيحات أمنية بانتظام — لا تترك نسختك دون مراقبة.
Rallly مقابل Easy!Appointments مقابل Tymeslot مقابل cal.diy
مرّر الجدول أفقيًا
| المعيار | Rallly | Easy!Appointments | Tymeslot | cal.diy |
|---|---|---|---|---|
| الرخصة | AGPL-3.0 | GPL-3.0 | AGPL-3.0 | MIT (كود مُجرَّد) |
| البنية التقنية | Next.js + PostgreSQL | PHP 8.2 + MySQL | Elixir/Phoenix + PostgreSQL | Next.js + PostgreSQL |
| الحد الأدنى من RAM | 2 جيجابايت | 512 ميجابايت | غير موثّق | 2 جيجابايت |
| Docker Compose | نعم، حزمة رسمية | نعم، صورة متاحة | نعم، حاوية واحدة | نعم |
| حالة الاستخدام الأساسية | استطلاعات التوافر، التصويت الجماعي | مواعيد منظّمة (خدمات/مزودون) | جدولة فردية وجماعية | جدولة فردية (غير إنتاجي) |
| مزامنة التقويم | Google وOutlook (iCal) | Google Calendar | Google وOutlook وiCloud وCalDAV وNextcloud | Google وOutlook |
| SSO / SAML | لا | لا | لا | محذوف (العرض التجاري) |
| فِرَق متعددة الأعضاء | لا | متعدد المزودين (خدمات) | نعم (مجموعات) | محذوف (العرض التجاري) |
| Workflows / تذكيرات تلقائية | نعم (بريد إلكتروني) | نعم (بريد إلكتروني) | نعم (بريد، Slack، Telegram) | محذوف (العرض التجاري) |
| REST API | نعم | نعم (REST كاملة) | نعم + webhooks | API v2 فقط |
| موصى به للإنتاج | نعم | نعم | نعم | لا (تصريح رسمي) |
| النضج (2026) | نشط، v4.15.2 (سبتمبر 2026) | نشط، v1.6.0 (مايو 2026) | نشط، أُطلق رداً على Cal.com | مُصان، نطاق محدود بقصد |
الهجرة من Cal.com AGPL: تصدير بياناتك
إذا كنت تستضيف Cal.com ذاتياً تحت رخصة AGPL وتريد الهجرة لأحد البدائل، إليك كيفية استخراج بياناتك قبل إيقاف النسخة القديمة.
التصدير من نسخة Cal.com AGPL الحالية. تخزّن Cal.com بياناتها في PostgreSQL. يمكنك تصدير جداول الحجوزات والتوافر وأنواع الأحداث عبر pg_dump:
pg_dump -U calcom -d calcom -t bookings -t event_types -t schedules > calcom_export.sqlالبيانات ذات الأولوية: الحجوزات الحالية (لسجل إدارة علاقات العملاء)، عناوين البريد الإلكتروني للمشاركين (إن كنت ترسل تذكيرات)، وقواعد التوافر (ساعات العمل، الفترات المحجوبة).
ما لا يمكنك استيراده مباشرة. لا يوفر أيٌّ من البدائل الثلاثة استيراداً بتنسيق Cal.com — الهجرة إعادة ضبط يدوية، وليست استعادة. ركّز على تصدير قائمة جهات الاتصال وقواعد التوافر، ثم أعد ضبط أنواع الأحداث في الأداة المستهدفة. لـRallly (استطلاعات جماعية) أو Tymeslot (روابط حجز فردية)، تستغرق إعادة الضبط عادةً أقل من ساعة.
التصليب بعد التثبيت
بعض الخطوات قبل تعريض نسختك للزيارات الحقيقية.
احمِ الوصول الإداري بمصادقة HTTP أساسية أمام البروكسي العكسي إن لم توفّر الأداة 2FA أصلياً — مهم بشكل خاص لـEasy!Appointments على وصول عام. اضبط نسخاً احتياطية تلقائية لمجلد بيانات PostgreSQL أو MySQL: docker exec مجدوَل مع pg_dump أو mysqldump إلى تخزين خارجي كافٍ. تحقق أن خادم VPS لا يعرض إلا المنافذ الضرورية (80/443 للويب، 22 لـSSH) وأن الوصول المباشر لمنفذ قاعدة البيانات (5432 أو 3306) غير مفتوح على الواجهة العامة.
استكشاف الأخطاء الشائعة
Rallly: التطبيق يعمل لكن الرسائل لا تصل. تحقق من SMTP_HOST وSMTP_PORT وSMTP_USER في ملف .env. بعض مزودي الاستضافة يحجبون المنفذ 25 للخارج — استخدم المنفذ 587 (STARTTLS) أو 465 (SSL). افحص السجلات بـdocker compose logs app --tail=100 | grep -i smtp.
Easy!Appointments: خطأ 500 أو صفحة بيضاء بعد التثبيت. تحقق من أن مجلد storage/ قابل للكتابة من قِبَل عملية الويب (chmod -R 775 storage/). في Docker، تأكد أن حاوية MySQL بدأت وأصبحت في متناول الحاوية التطبيقية قبلها — استخدام depends_on مع condition: service_healthy في Compose يحل مشاكل التسابق في الإقلاع.
Tymeslot: الحاوية تعمل لكن مزامنة التقويم تفشل. تتطلب مزامنة Google/Outlook بيانات اعتماد OAuth2 (معرّف العميل والسر) في متغيرات البيئة. أنشئ مشروعاً في Google Cloud Console، فعّل Google Calendar API، وأدخل GOOGLE_CLIENT_ID وGOOGLE_CLIENT_SECRET. يجب أن تطابق عنوان URL للاستجابة OAuth نطاق الإنتاج تماماً.
أيّ بديل تختار؟
Rallly هو الخيار الأنسب إذا احتجت لاستطلاعات التوافر لإيجاد موعد يناسب عدة مشاركين — اجتماعات الفريق وورش العمل والمكالمات الجماعية. لا تدفق حجز فوري، لكن تصويت تعاوني خفيف الوزن وبلا احتكاك. نضجه (v4.15.2 في سبتمبر 2026، حزمة Docker رسمية متكاملة) يجعله الخيار الأسهل نشراً.
Easy!Appointments هو الاختيار الصحيح إذا كانت حالة استخدامك تشبه أجندة مهنية منظّمة: خدمات (استشارة، درس، مقابلة)، مزودون، فترات ثابتة وتأكيد بالبريد الإلكتروني. يعمل على استضافة مشتركة cPanel كما على VPS، مما يجعله متاحاً دون Docker. إصداره v1.6.0 (مايو 2026) هو الأحدث.
Tymeslot يضع نفسه رداً مباشراً على مغادرة Cal.com AGPL: جدولة فردية مع روابط حجز، مزامنة متعددة التقاويم (Google وOutlook وiCloud وCalDAV وNextcloud)، وتكاملات webhooks للربط مع n8n أو Make. وُلد في أعقاب إغلاق Cal.com، ويستهدف مباشرةً المطورين الذين يبحثون عن بديل بنطاق مماثل، مع رخصة AGPL تضمن الاستدامة.