انشر كود Collabora على Kubernetes باستخدام Helm

اعتبارًا من 10 أكتوبر 2026، يُدرج سجل الحزم الأصلي الإصدار 1.3.0 من المخطط كأحدث إصدار. يُعد تثبيت المخطط جزءًا فقط من عملية النشر الناجحة. ستحتاج أيضًا إلى اسم مضيف Collabora عام، وإدخال صالح في قائمة السماح WOPI لمضيف تخزين المستندات، وإعداد دخول يُبقي طلبات كل مستند على نفس وحدة pod. يُدرج سجل الحزم الأصلي الإصدار 1.3.0 من المخطط وقت كتابة هذا النص؛ تحقق من المستودع قبل التثبيت لأن إصدار مخطط Helm وإصدار صورة حاوية CODE قيمتان منفصلتان.

تستخدم هذه العملية المخطط الرسمي collabora/collabora-onlineووحدة تحكم NGINX Ingress. يتضمن ملف README الخاص بالمخطط أيضًا أمثلة HAProxy؛ وتختلف تعليقات Ingress باختلاف وحدة التحكم، لذا استخدم المثال الخاص بوحدة التحكم المثبتة لديك بدلاً من استخدام تعليقات مختلفة.

ما الذي يجب تحضيره أولاً؟

  • مجموعة Kubernetes مع إذن لإنشاء مساحة اسم، ونشر، وخدمة، ودخول.
  • Helm 3 ووحدة تحكم دخول مثبتة يمكنها توفير HTTPS لاسم مضيف مثل office.example.com.
  • اسم المضيف العام لعميل WOPI، مثل Nextcloud أو Seafile. هذا هو المضيف الذي يجب أن يسمح به Collabora؛ وهو ليس اسم مضيف Collabora.
  • سرّ Kubernetes لبيانات اعتماد لوحة تحكم Collabora الإدارية. لا تحتفظ بكلمة المرور التجريبية للمخطط ولا تُدخل كلمة مرور حقيقية في ملف القيم.

1. أضف مستودع المخططات الرسمي وافحص الإصدار

ينشر Collabora مخططاته من مستودع المشروع على الإنترنت. أضف المخطط، وقم بتحديث الفهرس المحلي، وافحص بيانات المخطط الوصفية والقيم الافتراضية قبل التثبيت.

helm repo add collabora https://collaboraonline.github.io/online/
helm repo update
helm show chart collabora/collabora-online
helm show values collabora/collabora-online

يُحدد إصدار المخطط الحزمة، وليس بالضرورة علامة صورة الكود. تحقق من مستودع الصور والعلامة في قيم الإصدار، ثم ثبّت إصدار المخطط الذي راجعته لإجراء ترقيات متكررة.

أنشئ سرًا ضمن نطاق مساحة الاسم باستخدام آلية إدارة الأسرار المعتمدة لديك. تدعم قيم المخطط وجود سر وأسماء مفاتيح قابلة للتكوين؛ أسماء المفاتيح الافتراضية هي usernameو password. تحقق من وجود السر في collaboraمساحة الاسم قبل التثبيت.

2. اضبط خيارات مضيف WOPI، وخيارات الدخول، وخيارات الوكيل.

أنشئ ملفًا my_values.yaml. استبدل اسمي المضيفين المذكورين كمثال بنطاقاتك العامة الفعلية. aliasgroupsتُحدد القيمة عميل WOPI (على سبيل المثال، خادم Seafile أو Nextcloud). server_nameيُحدد مضيف Ingress خدمة Collabora التي تصل إليها متصفحات المستخدمين.

replicaCount: 1

ingress:
  enabled: true
  className: nginx
  annotations:
    nginx.ingress.kubernetes.io/upstream-hash-by: "$arg_WOPISrc"
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
  hosts:
    - host: office.example.com
      paths:
        - path: /
          pathType: ImplementationSpecific

autoscaling:
  enabled: false

collabora:
  aliasgroups:
    - host: "https://files.example.com:443"
  extra_params: --o:ssl.enable=false --o:ssl.termination=true
  server_name: office.example.com:443
  existingSecret:
    enabled: true
    secretName: collabora-admin
    usernameKey: username
    passwordKey: password

يتبع هذا المثال نمط دخول NGINX الموثق من Collabora: يتم تجزئة الطلبات باستخدام المعامل WOPISrc، ويتم تمديد مهلة قراءة وإرسال الوكيل لجلسات المستندات. تأكد من أسماء التعليقات التوضيحية مع إصدار وحدة تحكم الدخول لديك. إذا كنت تستخدم HAProxy، فاستخدم تعليقات HAProxy التوضيحية وتكوين الموازنة في ملف README الخاص بالمخطط بدلاً من ذلك.

تُستخدم الخيارات ssl.enable=false`and` ssl.termination=trueلتصميمٍ ينتهي فيه بروتوكول TLS عند نقطة الدخول، ويكون تدفق البيانات من نقطة الدخول إلى الحاوية داخليًا. لا يعني ذلك أن نقطة النهاية العامة يجب أن تستخدم HTTP. احتفظ باسم مضيف نقطة الدخول على HTTPS، ولا تعرض خدمة HTTP العادية للحاوية مباشرةً على الإنترنت. يُفعّل هذا الخيار server_nameعندما يكون Collabora خلف خادم وكيل عكسي أو عندما يتعذر عليه استنتاج اسم مضيفه الخارجي مباشرةً.

بالنسبة للنسخ المتماثلة الثابتة المتعددة، اضبطها replicaCountبعناية وحافظ على ترابط الجلسات. يشير ملف README الخاص بالمصدر حاليًا إلى تعطيل HPA لأن التوسع قد يعيق التحرير التعاوني والنسخ/اللصق. لا يضمن زيادة عدد النسخ المتماثلة وحدها التوجيه الصحيح؛ تأكد من أن مدخلك يرسل الطلبات لنفس المستند إلى نفس الحاوية.

3. تثبيت برنامج Collabora CODE

قم بتثبيت الإصدار من المستودع الرسمي وانتظر حتى يصبح النشر جاهزًا:

helm install --create-namespace \
  --namespace collabora \
  collabora-online collabora/collabora-online \
  --values my_values.yaml

kubectl get pods -n collabora
kubectl get ingress -n collabora

إذا كنت تُحدّث إصدارًا موجودًا، فاستخدم helm upgradeنفس اسم الإصدار ومساحة الاسم وملف القيم بدلًا من إنشاء إصدار ثانٍ. راجع ملاحظات الإصدار والتغييرات المعروضة في المخطط قبل ترقية بيئة الإنتاج.

تأكد من جاهزية الحاوية وأنّ نظام الدخول يُبلغ عن المضيف والعنوان المتوقعين. إذا بقيت العملية معلقة، فافحص الأحداث والسجلات قبل تغيير إعدادات الموارد.

kubectl describe pods -n collabora
kubectl logs -n collabora deployment/<deployment-name>

حدد حجم وحدة المعالجة المركزية والذاكرة بما يتناسب مع حجم العمل وسعة المجموعة. يوفر ملف README الخاص بالجدول أمثلة على الطلبات والحدود، ولكنه لا يضمن النتائج في جميع عمليات النشر. انتبه لانخفاض الأداء، وعمليات إيقاف التشغيل بسبب نفاد الذاكرة، وإعادة التشغيل.

4. التحقق من عملية الاكتشاف وتحرير المستندات

بعد تفعيل نظام أسماء النطاقات (DNS) وبروتوكول أمان طبقة النقل (TLS)، اطلب نقطة نهاية اكتشاف Collabora من خلال اسم المضيف العام:

curl -fsS https://office.example.com/hosting/discovery

يجب أن تتضمن الاستجابة الناجحة ملف XML لاكتشاف WOPI بدلاً من صفحة خطأ الدخول أو تحذير الشهادة. بعد ذلك، قم بتهيئة عميل WOPI الخاص بك باستخدام نفس عنوان URL العام لـ Collabora، وتأكد من أن عنوان Collabora aliasgroupsيتضمن اسم مضيف HTTPS ومنفذ العميل. تختلف إعدادات العميل الدقيقة باختلاف منتج التخزين.

افتح مستندًا تجريبيًا من خلال عميل WOPI وأجرِ عليه تغييرًا بسيطًا. تأكد من تحميل المحرر، وإمكانية انضمام جلسة متصفح ثانية في حال الحاجة إلى التعاون، وحفظ التغيير في خدمة التخزين. يختبر هذا الفحص الشامل نظام أسماء النطاقات (DNS)، وبروتوكول TLS الوارد، وتوجيه الجلسات، وتفويض مضيف WOPI، ونقل الملفات.

الافتراضات الشائعة التي يجب التحقق منها

  • تم تثبيت Helm، لذا فإن Collabora جاهزة للاستخدام في بيئة الإنتاج. يُنشئ المخطط موارد Kubernetes، ولكن لا تزال خدمات DNS وTLS وتفويض مضيف WOPI وتوجيه الدخول وتحديد حجم الموارد تعتمد على مجموعتك. تحقق من كل عنصر أعلاه.
  • "مضيف الدخول ومضيف WOPI هما نفس الإعداد." غالبًا ما يختلفان: مضيف الدخول هو العنوان العام لـ Collabora؛ ومضيف WOPI هو خادم التخزين. ضع كلًا منهما في حقل المخطط الصحيح.
  • "زيادة عدد النسخ المتماثلة تُحسّن التعاون تلقائيًا." يوضح المخطط الرئيسي تقارب الجلسات، ويُعطّل حاليًا خاصية HPA لأن التوسع قد يُعيق التحرير التعاوني. ابدأ بنسخة متماثلة واحدة أو بعدد ثابت مُتعمّد، وحافظ على تقارب التوجيه.
  • يمكن توفير جزء صغير من ملف XML كإعداد مخصص. تحل قيمة المخطط coolwsd_xml_contentمحل ملف الإعدادات الافتراضي، وتتطلب محتوى الملف كاملاً. يُفضل استخدام القيم المخصصة للمخطط لمجموعات الأسماء المستعارة والمعلمات، إلا إذا كان لديك ملف XML كامل ومتوافق مع الإصدار.

المراجع الرسمية

اترك تعليقاً

انشر كود Collabora على Kubernetes باستخدام Helm

انشر كود Collabora على Kubernetes باستخدام Helm

قم بتثبيت مخطط Collabora Helm الرسمي، وقم بتكوين الوصول إلى WOPI وتقارب الدخول، وتحقق من النشر دون أخطاء الإعداد الشائعة.

تتبع مستند Collabora فارغ إلى الطبقة المعيبة

تتبع مستند Collabora فارغ إلى الطبقة المعيبة

استخدم طلبات المتصفح وسجلات WOPI وفحوصات البروكسي المستهدفة لمعرفة سبب فتح Collabora لمستند فارغ - واختر حلاً يتناسب مع الأدلة.

تفعيل التدقيق الإملائي متعدد اللغات في Collabora Online (رمز)

تفعيل التدقيق الإملائي متعدد اللغات في Collabora Online (رمز)

قم بتكوين قواميس CODE Docker ووضع علامات على مقاطع المستندات بشكل صحيح حتى تتلقى اللغات الإنجليزية والفرنسية واللغات الأخرى المدعومة التدقيق الإملائي الصحيح.

اضبط مؤقت الخمول في Collabora لعرض المستندات النشطة

اضبط مؤقت الخمول في Collabora لعرض المستندات النشطة

قم بضبط عتبة عدم النشاط لكل عرض في coolwsd وميزها عن تعتيم علامات التبويب الخلفية، وإلغاء تحميل المستندات، والحفظ التلقائي، وانتهاء صلاحية تسجيل الدخول.

تعطيل عمليات التحقق من تحديثات كود Collabora والاتصالات غير المرغوب فيها

تعطيل عمليات التحقق من تحديثات كود Collabora والاتصالات غير المرغوب فيها

أوقف عمليات التحقق المجدولة لتحديثات التعليمات البرمجية، وراجع الخدمات البعيدة الاختيارية، واستخدم عناصر التحكم في الشبكة الصادرة دون تعطيل تحرير المستندات.

قم بربط Seafile و Collabora باستخدام عنوان URL الصحيح لـ WOPI

قم بربط Seafile و Collabora باستخدام عنوان URL الصحيح لـ WOPI

قم بتمكين تحرير المستندات بشكل آمن في Seafile عن طريق تكوين عنوان URL لاكتشاف Collabora و HTTPS والوصول إلى WOPI لنشرك.

استعادة النسخ واللصق بين تطبيقات Collabora وتطبيقات سطح المكتب

استعادة النسخ واللصق بين تطبيقات Collabora وتطبيقات سطح المكتب

اختبر حافظة النظام، واضبط أذونات المتصفح، وحدد متى يحتاج تكامل Collabora المضمن إلى تغيير سياسة iframe.

توفير خطوط مخصصة في Collabora CODE Docker

توفير خطوط مخصصة في Collabora CODE Docker

قم بتثبيت ملفات الخطوط في Docker ولوحة نظام Collabora بحيث تظهر الخطوط المخصصة في المحرر ويتم عرضها بشكل صحيح في المستندات.

استعادة إعدادات Collabora CODE دون فقدان تغييرات النشر

استعادة إعدادات Collabora CODE دون فقدان تغييرات النشر

قم بعمل نسخة احتياطية من ملف coolwsd.xml ومصادر النشر الخاصة به، واستعدها بأمان، وتحقق من الكود قبل أن يعود المستخدمون إلى التحرير.

قم بإصلاح فحص مضيف WOPI الخاص بـ CODE عن طريق مطابقة أصل المضيف

قم بإصلاح فحص مضيف WOPI الخاص بـ CODE عن طريق مطابقة أصل المضيف

قم بالسماح بمصدر Nextcloud المحدد أو مصدر WOPI آخر في CODE، ثم تحقق من قائمة السماح للمضيف النشط وقم بتمييزها عن تقييد عنوان IP المصدر الخاص بـ Nextcloud.