كيفية تثبيت تحليلات Plausible على Ubuntu 22.04

مقدمة

Plausible Analytics هو تطبيق تحليلات الويب مفتوح المصدر والمستضاف ذاتيًا مكتوب بلغة Elixir والذي يركز على البساطة والخصوصية. يقوم بتخزين البيانات حول زوار موقع الويب الخاص بك في قواعد بيانات PostgreSQL و ClickHouse.

في هذا البرنامج التعليمي، ستقوم بتثبيت Plausible باستخدام Docker Compose، ثم تثبيت Nginx للعمل كبروكسي عكسي لتطبيق Plausible. وأخيرًا، ستقوم بتمكين اتصالات HTTPS الآمنة باستخدام Certbot لتحميل وتكوين شهادات SSL من مصلحة توثيق Let’s Encrypt.

المتطلبات المسبقة

لإكمال هذا البرنامج التعليمي، ستحتاج أولاً إلى ما يلي:

ملاحظة: يمكن تخطي هذه الخطوات الأساسية إذا كنت تستخدم صورة Docker One-Click من DigitalOcean. ستحتوي هذه الصورة على Docker و Docker Compose و UFW مثبتة ومكونة بالفعل.

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

أخيرًا، لتمكين SSL، ستحتاج إلى اسم نطاق موجه إلى عنوان IP العام لخادمك. يجب أن يكون هذا شيئًا مثل example.com أو plausible.example.com، على سبيل المثال. إذا كنت تستخدم DigitalOcean، يرجى رؤية البداية السريعة لـ DNS للحصول على معلومات حول إنشاء موارد النطاق في لوحة التحكم الخاصة بنا.

عندما تكون قد استوفيت جميع المتطلبات الأساسية، قم بالانتقال إلى الخطوة 1، حيث ستقوم بتنزيل وتشغيل برنامج Plausible.

الخطوة 1 – تثبيت تحليلات Plausible باستخدام Docker Compose

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

قم بتسجيل الدخول إلى خادمك الآن.

أولاً، استخدم الأمر cd للانتقال إلى دليل /opt:

  1. cd /opt

ثم استخدم الأمر git لاستنساخ المستودع من GitHub إلى دليل جديد داخل /opt بالاسم plausible:

  1. sudo git clone https://github.com/plausible/hosting plausible

سيتم بذلك سحب جميع ملفات التكوين اللازمة إلى /opt/plausible. انتقل إلى الدليل الجديد الذي تم إنشاؤه:

  1. cd plausible

أول ملف نحتاج إلى تعديله هو plausible-conf.env، وهو ملف يحتوي على بعض المتغيرات التكوينية التي نحتاج إلى تعيينها.

قبل فتح الملف لتحريره، قم بتوليد تجزئة عشوائية جديدة:

  1. openssl rand 64 | base64 -w 0 ; echo

سيتم ذلك باستخدام الأمر openssl لتوليد 64 حرفًا عشوائيًا، والأمر base64 لترميزها إلى base64. قم بنسخ الإخراج إلى الحافظة الخاصة بك، ثم افتح ملف التكوين:

  1. sudo nano plausible-conf.env

الملف يحتوي على خمس متغيرات يجب عليك ملؤها:

plausible-conf.env
ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here

املأ البريد الإلكتروني واسم المستخدم وكلمة المرور وعنوان URL الأساسي، ثم قم بلصق الحروف العشوائية التي أنشأتها باستخدام openssl.

ملاحظة: يجب أن تكون كلمة المرور التي تحددها هنا مكونة من ستة أحرف على الأقل. إذا كنت تستخدم عنوان IP الفارغ وليس اسم نطاق، تأكد من تسبقه بـ http://.

احفظ الملف (CTRL+O ثم ENTER في nano) وأغلق المحرر (CTRL+X).

هناك مزيد من الخيارات التكوينية التي يمكنك إضافتها إلى هذا الملف، ولكن هذه المجموعة الأدنى ستمكنك من البدء. يمكن العثور على مزيد من المعلومات حول تكوين Plausible من خلال plausible-conf.env في وثائق الاستضافة الذاتية الرسمية لتحليلات Plausible.

الآن تحتاج إلى تحديث ملف docker-compose.yml. هذا الملف هو ما يستخدمه الأمر docker-compose لتكوين وتشغيل عدة حاويات Docker. نحتاج إلى تغيير خيار واحد في هذا الملف: عنوان IP الذي يقوم Plausible بالربط إليه.

  1. sudo nano docker-compose.yml

ابحث عن القسم الذي يعرف حاوية Plausible. سيبدأ هذا القسم بـ plausible:. في هذا القسم، ابحث عن تعريف ports: وقم بتحديثه إلى ما يلي:

docker-compose.yml
    ports:
      - 127.0.0.1:8000:8000

يضمن هذا أن Plausible يستمع فقط على واجهة localhost، ولا يكون متاحًا على الإنترنت. على الرغم من أن لديك جدار حماية UFW مُعد، إلا أنه نظرًا لبعض الأخطاء في كيفية عمل شبكة Docker، إذا لم تتخذ هذه الخطوة، فسيكون حاوية Plausible الخاصة بك قابلة للوصول من الجمهور على المنفذ 8000، ونريد فقط أن يكون متاحًا من خلال وكيل Nginx الذي ستقوم بإعداده في الخطوة التالية.

احفظ وأغلق ملف docker-compose.yml، ثم استخدم docker-compose لتنزيل وتكوين وتشغيل الحاويات:

  1. sudo docker compose up --detach

تقول علامة العلامة --detach لـ docker-compose بإنشاء الحاويات في الخلفية، منفصلة عن جلسة الطرفية الخاصة بنا:

Output
. . . Starting plausible_plausible_events_db_1 ... done Starting plausible_plausible_db_1 ... done Starting plausible_mail_1 ... done Starting plausible_plausible_1 ... done

يجب أن تكون حاوية التطبيق وجميع حاويات البريد وقاعدة البيانات الداعمة الخاصة بها الآن قيد التشغيل. يمكنك التحقق من ذلك باستخدام أمر curl لاسترداد الصفحة الرئيسية لحاوية Plausible الجديدة الخاصة بك التي تعمل على localhost:

  1. curl http://localhost:8000
Output
<html><body>You are being <a href="/login">redirected</a>.</body></html>

إذا تم إخراج بعض الأكواد HTML إلى الطرفية الخاصة بك، فستعرف أن الخادم قيد التشغيل ويعمل.

بعد ذلك، سنقوم بإعداد Nginx لـ التوجيه العكسي لـ Plausible من localhost:8000 إلى الجمهور.

الخطوة 2 — تثبيت وتكوين Nginx

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

أولاً، قم بتحديث قائمة الحزم الخاصة بك، ثم قم بتثبيت Nginx باستخدام apt:

  1. sudo apt update
  2. sudo apt install nginx

اسمح بحركة المرور العامة إلى المنافذ 80 و 443 (HTTP و HTTPS) باستخدام ملف تعريف التطبيق “Nginx Full” في جدار الحماية UFW:

  1. sudo ufw allow "Nginx Full"
Output
Rule added Rule added (v6)

بعد ذلك، قم بفتح ملف تكوين Nginx جديد في دليل /etc/nginx/sites-available. سنطلق عليه اسم plausible.conf لكن يمكنك استخدام اسم مختلف:

  1. sudo nano /etc/nginx/sites-available/plausible.conf

قم بلصق ما يلي في ملف التكوين الجديد، متأكدًا من استبدال your_domain_here بالنطاق الذي قمت بتكوينه ليشير إلى خادم Plausible الخاص بك. يجب أن يكون شيئًا مثل plausible.example.com، على سبيل المثال:

/etc/nginx/sites-available/plausible.conf
server {
    listen       80;
    listen       [::]:80;
    server_name  your_domain_here;

    access_log  /var/log/nginx/plausible.access.log;
    error_log   /var/log/nginx/plausible.error.log;

    location / {
      proxy_pass http://localhost:8000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

هذا التكوين هو HTTP فقط في الوقت الحالي، حيث سنسمح لـ Certbot بالتعامل مع تكوين SSL في الخطوة التالية. بقية التكوين تقوم بإعداد أماكن التسجيل ثم تمرر كل حركة مرور إلى http://localhost:8000، وهو النموذج الذي بدأناه في الخطوة السابقة.

قم بحفظ وإغلاق الملف، ثم قم بتمكين التكوين عن طريق ربطه في /etc/nginx/sites-enabled/:

  1. sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/

استخدم nginx -t للتحقق من صحة بناء ملف التكوين:

  1. sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

وأخيرًا، أعد تحميل خدمة nginx لالتقاط التكوين الجديد:

  1. sudo systemctl reload nginx

يجب أن يكون موقع Plausible الخاص بك متاحًا الآن على HTTP العادي. قم بتحميل http://your_domain_here وسيبدو مثل هذا:

الآن بعد أن قمت بتشغيل موقعك وتشغيله عبر HTTP ، حان الوقت لتأمين الاتصال باستخدام شهادات Certbot و Let’s Encrypt.

الخطوة 3 — تثبيت Certbot وإعداد شهادات SSL

بفضل Certbot وسلطة الشهادات المجانية Let’s Encrypt ، سيستغرق إضافة تشفير SSL إلى تطبيق Plausible لدينا فقط أمرين.

أولاً ، قم بتثبيت Certbot ومكون إضافي Nginx الخاص به:

  1. sudo apt install certbot python3-certbot-nginx

بعد ذلك ، قم بتشغيل certbot في وضع --nginx ، وحدد نفس النطاق الذي استخدمته في تكوين Nginx server_name:

  1. sudo certbot --nginx -d your_domain_here

سيُطلب منك الموافقة على شروط خدمة Let’s Encrypt ، وإدخال عنوان بريد إلكتروني.

بعد ذلك ، سيتم طلب منك ما إذا كنت ترغب في إعادة توجيه جميع حركة المرور HTTP إلى HTTPS. من حيث الأمان ، يُنصح عمومًا بذلك.

بعد ذلك ، ستقوم Let’s Encrypt بتأكيد طلبك وستقوم Certbot بتنزيل الشهادة الخاصة بك:

Output
Congratulations! You have successfully enabled https://plausible.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/plausible.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/plausible.example.com/privkey.pem Your cert will expire on 2022-12-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

سيقوم Certbot تلقائيًا بإعادة تحميل Nginx لالتقاط التكوينات والشهادات الجديدة. أعد تحميل موقعك ويجب أن يُحولك تلقائيًا إلى HTTPS إذا اخترت الخيار لإعادة التوجيه.

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

بشكل افتراضي، يتم إرسال هذا البريد الإلكتروني مباشرةً من الخادم الخاص بك، مما قد يؤدي إلى مشكلات بسبب تدابير منع البريد المزعج المختلفة. إذا لم تستلم البريد الإلكتروني، تحقق من مجلد البريد المزعج. إذا لم يكن هناك، قد تحتاج إلى تعيين تفاصيل SMTP المناسبة أكثر في ملف plausible-conf.env. انظر إلى وثائق الإعداد الرسمية لـ Plausible على الخادم الذاتي للحصول على تفاصيل حول تكوين البريد.

عند تسجيل الدخول بنجاح، سترى إشعارًا لإعداد موقع الويب الأول الخاص بك باستخدام Plausible:

لقد قمت بتثبيت برنامج التحليلات Plausible الخاص بك بنجاح وتأمينه.

الاستنتاج

في هذا البرنامج التعليمي، قمت بتشغيل تطبيق Plausible Analytics وحاويات المساعدة المرتبطة به باستخدام Docker Compose، ثم قمت بإعداد بروكسي عكسي Nginx وتأمينه باستخدام شهادات Let’s Encrypt SSL.

أنت الآن جاهز لإعداد موقعك على الويب وإضافة سكريبت تتبع Plausible Analytics. يرجى الرجوع إلى وثائق Plausible Analytics الرسمية لمزيد من المعلومات حول استخدام البرنامج وإعداد موقعك.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-plausible-analytics-on-ubuntu-22-04