عن المشروع

Etherpad هو محرر مستندات تعاوني في الوقت الفعلي مصمم للمستندات التي تهم فيها هوية المؤلف والتاريخ. تتم صيانته منذ 2009 بواسطة فريق صغير من المتطوعين ويُصدر بموجب رخصة Apache v2. القدرات الأساسية الموصوفة في README: - تحرير تعاوني في الوقت الفعلي مع نسب كل ضغطة مفتاح إلى مؤلفها وإظهار ألوان المؤلفين داخل النص. - الحفاظ على سجل مراجعات كامل، مع شريط زمني للتنقل عبر تاريخ المستند حرفًا بحرف. - تصدير بيانات مدمج كامل، بحيث يظل تاريخ المستند متاحًا للمشغّل. - تشغيل ذاتي الاستضافة: يذكر المشروع عدم وجود تتبع أو عروض بيع، وأن وظائف الذكاء الاصطناعي اختيارية عبر إضافات موجهة إلى نموذج يختاره المشغّل. توثق وثيقة PRIVACY.md مكالمتي الشبكة الاختياريتين اللتين يقوم بهما كود Etherpad نفسه. - ادعاء قابلية التوسع: يربط المشروع بصفحة اختبار مقياس تشير إلى دعم آلاف المحررين المتزامنين لكل لوحة. - التدويل: مترجم إلى 105 لغات، معظمها عبر TranslateWiki. - قابلية التوسعة: إطار إضافات مع مئات الإضافات المتاحة عبر موقع إضافات، يمكن تثبيتها من واجهة الإدارة أو سطر الأوامر. - قابلية التضمين: واجهة HTTP API لإدارة اللوحات والمستخدمين والمجموعات، مع تعريفات OpenAPI متاحة في /api/openapi.json، بالإضافة إلى إضافة jQuery لتضمين اللوحات في مواقع الويب. خيارات التثبيت المغطاة في README: - مثبتات سطر واحد لنظامي macOS/Linux/WSL (shell) وWindows (PowerShell)، والتي تستنسخ المستودع وتثبت التبعيات وتبني الواجهة الأمامية. يتطلب Node.js >= 24 و git. يمكن تعيين متغير بيئة للتثبيت والبدء في خطوة واحدة. - مثال Docker Compose باستخدام الصورة الرسمية المنشورة على Docker Hub و GitHub Container Registry، مع خدمة PostgreSQL، ووحدات تخزين دائمة للإضافات والبيانات المتغيرة، ومتغيرات بيئة لكلمة مرور المسؤول واتصال قاعدة البيانات وإعدادات أخرى. - خطوات يدوية: تثبيت pnpm، استنساخ المستودع، تشغيل pnpm i، ثم pnpm run build:etherpad، ثم pnpm run prod، وزيارة localhost:9001. التكوين والإدارة: - توجد الإعدادات في settings.json، مع دعم ملفات إعدادات بديلة، وتجاوز بيانات الاعتماد، وملفات مفتاح API ومفتاح الجلسة، واستبدال متغيرات البيئة باستخدام صيغة ${ENV_VAR} أو ${ENV_VAR:default_value}. - يمكن أيضًا تغيير الإعدادات من خلال واجهة الويب /admin. - ينصح README باستخدام قاعدة بيانات مخصصة مثل MySQL أو PostgreSQL في الإنتاج، مشيرًا إلى أن مشغل dirtyDB مخصص للاختبار أو التطوير فقط. - للمصادقة، يوصي بتخزين التجزئات بدلاً من كلمات المرور النصية، ويشير إلى إضافة ep_hash_auth. - الإضافات المقترحة لمصادقة OpenID Connect تشمل ep_openid_connect و ep_guest و ep_user_displayname و ep_stable_authorid. - مجموعة إضافات مقترحة لميزات تحرير أغنى تشمل ep_align و ep_comments_page و ep_embedded_hyperlinks2 و ep_font_color و ep_headings2 و ep_markdown و ep_webrtc. - يمكن استكشاف متغيرات المظهر عبر رابط skinvariantsbuilder. التطوير وحالة المشروع: - التصحيح عبر bin/debugRun.sh وسكربت بدء سريع bin/fastRun.sh يتخطى تحديثات التبعيات. - مكتبة Easysync التي تدعم السلوك في الوقت الفعلي موثقة في PDF داخل المستودع. - إرشادات المساهمة مقدمة في CONTRIBUTING.md. - يذكر README أن المشروع يبحث بنشاط عن مشرفين لديهم خبرة في Node.js أو الأنظمة في الوقت الفعلي أو أدوات التعاون المؤسسي. - شارات CI تغطي جودة الكود (CodeQL)، واختبارات الواجهة الخلفية، والتحميل المحاكى، وتحديد المعدل، وDocker، واختبارات الواجهة الأمامية/الإدارة. المستخدمون المعلنون يشملون مؤسسة ويكيميديا، ومؤسسات القطاع العام في الاتحاد الأوروبي، والجامعات والمدارس، ومشاريع التكنولوجيا المدنية والديمقراطية التداولية، والغرف الإخبارية، والعديد من الحالات المستضافة ذاتيًا. تتوفر نسخة عامة لتجربة البرنامج. قنوات الدعم هي مشكلات GitHub، وخادم Discord، وجهات اتصال بريد إلكتروني للإفصاح المسؤول عن الثغرات.