النشر على Digital Ocean

دليل خطوة بخطوة لنشر OpenReplay على Digital Ocean.

النشر على Digital Ocean

يمكن تثبيت حزمة OpenReplay على جهاز واحد (droplet)، وتُعد Digital Ocean مرشحًا مثاليًا لذلك. إليك كيفية القيام بذلك.

  1. أنشئ مشروعًا جديدًا (إذا لم تكن قد فعلت ذلك بعد)، ثم انتقل إليه وانقر على ‘Create’ droplet
  2. اختر صورة Ubuntu Server 22.04 LTS
  3. اختر ‘Shared CPU’ وحدد خطة Regular Intel | 4 CPUs | 8GB (معمارية x86). هذه هي الحد الأدنى من المواصفات، وإلا فإن خدمات الواجهة الخلفية لـ OpenReplay لن تبدأ ببساطة. وهي كافية لحجم متوسط، ولكن إذا كنت تتوقع حركة مرور عالية، فيجب عليك التوسّع انطلاقًا من هذا الحد.
  4. انقر على ‘New SSH key’ في قسم ‘Authentication’ واتبع التعليمات لإنشاء مفتاح
  5. امنح جهازك اسمًا ثم اضغط على ‘Create droplet’
  1. تأكد من أن droplet الخاص بك في حالة active، ثم اتصل به:
## From your terminal
SSH_KEY=~/Downloads/openreplay-key.pem ## wherever you've saved the SSH key
INSTANCE_IP=REPLACE_WITH_DROPLET_PUBLIC_IP
chmod 400 $SSH_KEY
ssh -i $SSH_KEY root@$INSTANCE_IP
  1. ثبّت OpenReplay عن طريق توفير النطاق الذي سيعمل عليه (على سبيل المثال DOMAIN_NAME=openreplay.mycompany.com):
sudo wget https://raw.githubusercontent.com/openreplay/openreplay/main/scripts/helmcharts/openreplay-cli -O /bin/openreplay 
sudo chmod +x /bin/openreplay
openreplay -i DOMAIN_NAME

يتعامل OpenReplay مع بيانات حساسة للمستخدمين، ولذلك يتطلب HTTPS للعمل. هذا أمر إلزامي، وإلا فإن المتعقّب (tracker) ببساطة لن يبدأ التسجيل. وينطبق الأمر نفسه على لوحة التحكم (dashboard)؛ فبدون HTTPS لن تتمكن من إعادة تشغيل جلسات المستخدمين.

لذلك يجب عليك إنشاء (أو إحضار) شهادة SSL الخاصة بك.

  1. أولاً، انتقل إلى ‘Manage’ > ‘Networking’ > ‘Domains’ (أو مزوّد خدمة DNS الآخر الخاص بك) وأنشئ A Record. استخدم النطاق الذي قدّمته سابقًا أثناء خطوة التثبيت ووجّهه إلى droplet باستخدام عنوان IP العام الخاص به (يمكن العثور عليه في علامة التبويب Droplets).

  2. إذا كنت تُحضر شهادتك الخاصة، فأنشئ سرّ SSL باستخدام الأمر التالي: kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".

ملاحظة: إذا لم يكن لديك شهادة، فأنشئ واحدة تتجدد تلقائيًا للنطاق الفرعي الخاص بك (النطاق الذي قدّمته أثناء التثبيت) باستخدام Let’s Encrypt. ما عليك سوى الاتصال بـ droplet الخاص بـ OpenReplay، وتشغيل cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh واتباع الخطوات.

  1. إذا كنت ترغب في تمكين إعادة التوجيه من http إلى https (موصى به)، فقم بإلغاء التعليق عن الكتلة أدناه، ضمن قسم ingress-nginx، في /var/lib/openreplay/vars.yaml:
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

من الجدير بالذكر أن ingress-nginx لدينا يعمل افتراضيًا على المنفذين 80|443، ولكن يمكن تغيير ذلك بسهولة، عند الحاجة، في vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. أخيرًا، أعد تثبيت NGINX الخاص بـ OpenReplay:
openreplay -R

أصبح كل شيء جاهزًا الآن، ومن المفترض أن يكون OpenReplay متاحًا على النطاق الفرعي الخاص بك. يمكنك إنشاء حساب بزيارة صفحة /signup (أي openreplay.mycompany.com/signup).

ملاحظة: يمكنك أيضًا تشغيل OpenReplay خلف موازِن تحميل (load balancer) موجود مسبقًا. إذا كان الأمر كذلك، فقم بتكوين SSL على مستوى موازِن التحميل (LB):

  • في قواعد إعادة التوجيه (Load Balancer): حدد HTTPS (443) في قسم Load Balancer ثم انقر على ‘Certificate’ > ‘Add a new certificate’. إذا كان نطاقك مُدارًا بواسطة Digital Ocean، فيمكنك اتباع التعليمات في خيار Let’s Encrypt. وإلا فيجب عليك استيراد شهادتك الخاصة.
  • في قواعد إعادة التوجيه (Droplet): حدد HTTP (80) في قسم Droplet.

إذا واجهت أي مشكلات، فانضم إلى Slack الخاص بنا أو تفقّد المنتدى الخاص بنا واحصل على المساعدة من مجتمعنا.