لماذا يُجبر تغيير تسعير Loom الوكالات على التصرف
كان دور Creator Lite يتيح إضافة أعضاء إلى مساحة عمل Loom دون احتسابهم كمنشئين مدفوعين. أزالت Atlassian، التي استحوذت على Loom، هذا الدور لجميع الحسابات المنشأة بعد فبراير 2026، وتنتقل الحسابات الحالية إلى الفوترة عبر Atlassian تدريجياً.
عملياً، لفريق صغير مكوّن من 10 منشئين مدفوعين و20 مستخدماً من فئة Creator Lite: ترتفع الفاتورة الشهرية من 180 دولاراً إلى 540 دولاراً في شهر الترحيل. يُفيد بعض المستخدمين بأن فواتيرهم قفزت من 18 دولاراً إلى 220 دولاراً شهرياً بين عشية وضحاها. تُفوتر خطة Business بـ 18 دولاراً لكل مستخدم شهرياً دون استثناء.
بالنسبة لوكالة تفوتر عملاءها بنطاق ثابت، فإن هذا التفاوت في التكلفة غير مقبول. التقاط الشاشة غير المتزامن أداة تواصل داخلي مع العملاء — يجب أن تكون تكلفته قابلة للتنبؤ، أو يجب استضافته ذاتياً.
لماذا يناسب Cap الوكالات
- تكلفة ثابتة: تدفع مقابل VPS، وليس اشتراكاً لكل مقعد يرتفع مع كل توظيف جديد.
- البيانات مستضافة على بنيتك التحتية: لقطات النماذج والعروض التجريبية لا تغادر خادمك أبداً.
- رخصة AGPL-3.0: الكود قابل للتدقيق، وخارطة الطريق عامة، والمشروع نشط (أكثر من 23000 نجمة على GitHub في 5 أكتوبر 2026).
- المشاركة عبر روابط: يتلقى عملاؤك رابطاً موقّعاً، تماماً كما في Loom، دون إنشاء حساب.
- نطاق مخصص: تعرض Cap على
cap.your-domain.com، وليس تحت نطاق طرف ثالث. - تخزين قابل للتكوين: MinIO المدمج للبداية، أو bucket S3/Cloudflare R2 خارجي للإنتاج.
- واجهة بسيطة بدون طبقة ذكاء اصطناعي مدفوعة مفروضة: الأداة تفعل ما وعدت به فحسب.
- النشر بأمر واحد:
docker compose up -dمن المستودع الرسمي.
متطلبات VPS لنشر Cap
يتكوّن Cap من أربعة خدمات Docker: تطبيق الويب (cap-web)، وقاعدة بيانات MySQL 8.0 (ps-mysql)، وخادم وسائط للتحويل البرمجي (cap-media-server)، وMinIO للتخزين الكائني المتوافق مع S3. تستهلك المجموعة حوالي 1 غيغابايت من الذاكرة العشوائية في وضع الخمول؛ في بيئة الإنتاج مع عدة تسجيلات متزامنة، خطط لـ 2 vCPU و4 غيغابايت RAM كحد أدنى للعمل. خصص 20 غيغابايت من قرص SSD/NVMe للملفات الثنائية ومقاطع الفيديو الأولية، ثم أضف أو اخرّج التخزين حسب الحجم.
متطلبات أخرى:
- Docker Engine 24+ وDocker Compose v2 مثبتان على VPS.
- نطاق فرعي مخصص (مثل cap.your-domain.com) يشير إلى عنوان IP الخاص بـ VPS.
- خادم وكيل عكسي يتولى HTTPS (Caddy أو Nginx مع Certbot).
- المنافذ 3000 (التطبيق) و3456 (خادم الوسائط) و3902/3903 (MinIO) يمكن الوصول إليها من الخادم الوكيل العكسي، لكن لا تُكشف مباشرةً للعموم.
نشر Cap على VPS الخاص بك
استنساخ المستودع الرسمي
على VPS الخاص بك، استنسخ مستودع CapSoftware وانتقل إلى المجلد الجذر:
git clone https://github.com/CapSoftware/Cap.git cd Capيحتوي المستودع على ملف
docker-compose.template.yml. انسخه باسمdocker-compose.ymlلتجنب الكتابة فوق تعديلاتك عند تنفيذgit pullمستقبلاً:cp docker-compose.template.yml docker-compose.ymlضبط متغيرات البيئة
أنشئ ملف
.envفي الجذر من النموذج المرفق، ثم حرّر القيم الحرجة:cp .env.example .envالمتغيرات الواجب تعريفها قبل أي كشف عام:
# عنوان URL العام للتطبيق NEXTAUTH_URL=https://cap.your-domain.com WEB_URL=https://cap.your-domain.com # الأسرار — أعد توليد هذه القيم، لا تترك الافتراضية أبداً NEXTAUTH_SECRET=<سلسلة-عشوائية-32-حرفاً> DATABASE_ENCRYPTION_KEY=<سلسلة-عشوائية-32-حرفاً> # قاعدة بيانات MySQL DATABASE_URL=mysql://root:كلمة-المرور@ps-mysql:3306/planetscale # تخزين MinIO المدمج (استبدله بـ S3 خارجي في الإنتاج) CAP_AWS_ACCESS_KEY=minioadmin CAP_AWS_SECRET_KEY=minioadmin CAP_AWS_BUCKET=cap-media CAP_AWS_REGION=us-east-1 S3_PUBLIC_ENDPOINT=https://cap.your-domain.com/s3 S3_INTERNAL_ENDPOINT=http://minio:9000 # خادم الوسائط MEDIA_SERVER_URL=http://cap-media-server:3456 MEDIA_SERVER_WEBHOOK_SECRET=<سلسلة-عشوائية-32-حرفاً>إن لم تضبط خادم SMTP، تظهر روابط تسجيل الدخول في سجلات حاوية
cap-web:docker compose logs cap-web. يكفي ذلك للاختبارات الأولية.تشغيل المجموعة
شغّل الخدمات الأربع في الخلفية:
docker compose up -dتحقق من أن جميع الحاويات في حالة
running:docker compose psيستمع تطبيق الويب على المنفذ
3000، وخادم الوسائط على3456، وMinIO على3902(API) و3903(وحدة التحكم). راجع السجلات إن بقيت خدمة في حالةrestarting:docker compose logs cap-web --tail 50ضبط الخادم الوكيل العكسي HTTPS مع Caddy
Caddy هو الحل الأكثر مباشرة: يتولى شهادات Let's Encrypt تلقائياً. أنشئ ملف
/etc/caddy/Caddyfileأو أضف كتلة إلى الإعداد الحالي:cap.your-domain.com { reverse_proxy localhost:3000 }أعد تحميل Caddy:
systemctl reload caddyإن كنت تستخدم Nginx، أنشئ vhost مع
proxy_pass http://127.0.0.1:3000;واحصل على شهادة عبرcertbot --nginx -d cap.your-domain.com.أول تسجيل دخول وإنشاء الحساب المسؤول
افتح
https://cap.your-domain.comفي متصفحك. يطلب منك Cap إنشاء حساب بإدخال عنوان بريدك الإلكتروني. إن لم تضبط SMTP، استرجع رابط تسجيل الدخول من السجلات:docker compose logs cap-web 2>&1 | grep -i 'signin\|magic\|link'انسخ عنوان URL المعروض والصقه في متصفحك لتسجيل الدخول. يصبح أول حساب يُنشأ مدير النسخة.
ضبط تخزين S3 خارجي (موصى به في الإنتاج)
MinIO المدمج يصلح للاختبار، أما في الإنتاج فيُفضَّل bucket S3 خارجي (AWS S3 أو Cloudflare R2 أو Backblaze B2). في إعدادات نسخة Cap (قسم التخزين)، أدخل:
- Access Key وSecret Key من مزودك
- Bucket name وRegion
- Public URL للـ bucket (لروابط المشاركة)حدّث متغيرات
CAP_AWS_*في ملف.env، ثم أعد تشغيل الخدمة:docker compose up -d cap-webدعوة الفريق واختبار تسجيل
من لوحة تحكم Cap، ادعُ زملاءك عبر البريد الإلكتروني. يثبّت كل عضو تطبيق Cap لسطح المكتب (macOS أو Windows) أو يستخدم امتداد المتصفح، ويشير إلى عنوان URL لنسختك في الإعدادات (حقل "Custom server"). أجرِ تسجيلاً تجريبياً وتحقق من ظهور الفيديو في لوحة التحكم وإمكانية الوصول إلى رابط المشاركة من متصفح خارجي.
تعزيز الأمان بعد النشر
قبل دعوة العملاء لمشاهدة الفيديوهات، تحقق من هذه النقاط الأربع:
1. استبدال الأسرار الافتراضية — يجب ألا تكون NEXTAUTH_SECRET وDATABASE_ENCRYPTION_KEY وMEDIA_SERVER_WEBHOOK_SECRET تلك الموجودة في المستودع. ينتج openssl rand -hex 32 قيمة قوية.
2. MinIO غير مكشوف للعموم — يجب أن تكون المنفذان 3902 و3903 متاحَين من الخادم الوكيل العكسي فقط. أضف 127.0.0.1:3902:9000 في docker-compose.yml لربط المنفذ بالمضيف المحلي فقط.
3. التحديثات التلقائية معطلة افتراضياً — لا يحدّث Cap نفسه. جدول تنفيذ docker compose pull && docker compose up -d شهرياً، مسبوقاً بلقطة من volume قاعدة بيانات MySQL.
4. نسخ احتياطية لقاعدة MySQL — mysqldump يومي يكفي للبيانات الوصفية (الفيديوهات نفسها في MinIO أو S3). مثال باستخدام cron: 0 2 * * * docker exec ps-mysql mysqldump -u root -pكلمة-المرور planetscale > /backups/cap-$(date +%F).sql.
الإعداد بعد النشر: النطاق والتخزين والفريق
بمجرد تشغيل Cap، ثلاثة تعديلات تجعل النسخة جاهزة لاستخدام الوكالة:
النطاق المخصص: إن استخدمت نطاقاً فرعياً مؤقتاً أثناء النشر، حدّث NEXTAUTH_URL وWEB_URL في .env، وأعد تشغيل cap-web وحدّث إدخال DNS. تظل روابط المشاركة الموجودة صالحة طالما أنك تعيد توجيه النطاق الفرعي القديم.
مساحة العمل: ينظّم Cap التسجيلات في Spaces. أنشئ مساحة لكل عميل أو مشروع لإبقاء الفيديوهات منفصلة. يمكن للضيوف المشاهدة دون حساب إذا كان الرابط عاماً.
حصة التخزين: إن كنت تخزّن الفيديوهات على MinIO المحلي، راقب مساحة قرص VPS بالأمر df -h. يزن تسجيل Cap بين 10 و50 ميغابايت حسب المدة والدقة. فكّر في وحدة تخزين إضافية أو الانتقال إلى S3 خارجي حين يتجاوز الحجم بضعة عشرات من الغيغابايتات.
استكشاف الأخطاء: أخطاء شائعة
Error: connect ECONNREFUSED 127.0.0.1:3306 — حاوية MySQL لم تبدأ بعد، أو كلمة مرورها في DATABASE_URL لا تطابق تلك المحددة في خدمة ps-mysql. تحقق باستخدام docker compose logs ps-mysql وتأكد من تطابق متغيري MYSQL_ROOT_PASSWORD في docker-compose.yml وDATABASE_URL في .env.
عنوان URL لتسجيل الدخول لا يصل عبر البريد الإلكتروني — بدون SMTP مضبوط، يظهر الرابط فقط في سجلات حاوية cap-web. نفّذ docker compose logs cap-web 2>&1 | grep http لإيجاده.
الفيديو يتحمّل إلى ما لا نهاية بعد التسجيل — خادم الوسائط (cap-media-server) غير قابل للوصول من cap-web. تحقق من ضبط MEDIA_SERVER_URL=http://cap-media-server:3456 ومن أن الخدمتين على نفس شبكة Docker (docker compose ps يجب أن يُظهر كلتيهما بحالة running).
رابط المشاركة يُعيد خطأ 404 — قد يشير S3_PUBLIC_ENDPOINT إلى عنوان URL غير صحيح أو MinIO غير قابل للوصول خارجياً. إن كنت تستخدم MinIO محلياً، اكشفه خلف الخادم الوكيل العكسي تحت مسار مخصص (مثلاً /s3/) أو انتقل إلى bucket S3 خارجي.
العميل لا يستطيع توجيه التطبيق المكتبي إلى نسختك — تحقق من أن حقل "Custom server" في إعدادات تطبيق Cap Desktop يقبل عنوان URL العام بالضبط بدون شرطة مائلة أخيرة: https://cap.your-domain.com.
Cap في حزمة وكالتك المستضافة ذاتياً
يندمج Cap بشكل طبيعي في حزمة حيث يحل التقاط غير المتزامن محل اجتماعات مراجعة العملاء. إلى جانب Penpot للتصميم التعاوني وChatwoot لدعم العملاء، يغطي ثلاث قنوات تواصل غير متزامن لوكالة دون اشتراك SaaS متغير.
إن كانت بنيتك التحتية تعتمد بالفعل على أدوات Atlassian المنتقلة إلى بدائل مستضافة ذاتياً — Jira مستبدَل بـ Plane، وConfluence بـ Outline — فإن الانتقال من Loom إلى Cap يتبع المنطق ذاته: تكلفة ثابتة، وبيانات مضبوطة، وتحديثات بسرعتك.
Cap لا يزال مشروعاً ناشئاً بمجتمع ينمو بسرعة. للاستخدام في بيئة الإنتاج اليوم، مجموعة Docker Compose مع MinIO أو S3 الخارجي مستقرة. تطبيق سطح المكتب لنظام macOS هو الأكثر نضجاً؛ وإصدار Windows يعمل بشكل صحيح.