Etherpad
هو عبارة عن محرر يستند إلى الويب (web-based) يسمح للكتاب بتعديل مستند نصي في نفس الوقت ومراقبة جميع عمليات التحرير في الوقت الفعلي.
إنه مفتوح المصدر (open-source) وقابل للتخصيص ويمكنه عرض نص كل مؤلف باللون الخاص به.
واجهة برمجة تطبيقات HTTP يمكنك دمجها مع تطبيقاتك لإدارة المستخدمين والمجموعات.
يوفر العديد من المكونات الإضافية التي تساعدك على دمج إشعارات البريد الإلكتروني وتحميل الملفات ومكالمات الفيديو في Etherpad.
سنشرح هنا تثبيت محرر Etherpad المستند إلى الويب على خادم Ubuntu 20.04.
المتطلبات الأساسية
خادم يعمل بنظام التشغيل Ubuntu 20.04.
اسم مجال (domain name) صالح يشير إلى عنوان IP الخاص بالخادم.
كلمة مرور الـ root للخادم.
مشاهدة خطوات تثبيت وإعداد Etherpad
الخطوات
قم بتحديث حزم النظام إلى أحدث إصدار.
يمكنك تحديثها عن طريق تشغيل الأمر التالي:
apt-get update -y
ستحتاج إلى تثبيت بعض التبعيات في نظامك.
يمكنك تثبيت كل منهم بالأمر التالي:
apt-get install gnupg2 git unzip libssl-dev pkg-config gcc g++ make build-essential -y
تثبيت وإعداد قاعدة بيانات MariaDB
سوف تحتاج إلى تثبيت خادم MariaDB في نظامك. يمكنك تثبيته بالأمر التالي:
apt-get install mariadb-server -y
قم بتسجيل الدخول إلى MariaDB shell باستخدام الأمر التالي:
mysql
قم بإنشاء قاعدة بيانات ومستخدم لـ Etherpad بالأمر التالي:
MariaDB [(none)]> create database etherpad;
MariaDB [(none)]> grant all privileges on etherpad.* to etherpad@localhost identified by 'password';
امسح الصلاحيات واخرج من MariaDB باستخدام الأمر التالي:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
تثبيت Node.js
يعتمد Etherpad على Node.js.
سوف تحتاج إلى إضافة مستودع Node.js إلى نظامك.
يمكنك إضافته بالأمر التالي:
curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
bash nodesource_setup.sh
قم بتثبيت Node.js باستخدام الأمر التالي:
apt-get install nodejs -y
تحقق من الإصدار المثبت من Node.js باستخدام الأمر التالي:
node -v
ستحصل على النتيجة التالية:
v14.15.0
تثبيت وإعداد Etherpad
adduser --home /opt/etherpad --shell /bin/bash etherpad
سيُطلب منك تعيين كلمة مرو:
Adding user `etherpad' ...
Adding new group `etherpad' (1000) ...
Adding new user `etherpad' (1000) with group `etherpad' ...
Creating home directory `/opt/etherpad' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for etherpad
Enter the new value, or press ENTER for the default
Full Name []: Hitesh
Room Number []: 1
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
قم بتقديم الأذونات المناسبة لدليل Etherpad الرئيسي باستخدام الأمر التالي:
install -d -m 755 -o etherpad -g etherpad /opt/etherpad
قم بتبديل المستخدم إلى Etherpad وقم بتنزيل أحدث إصدار من Etherpad من مستودع Git باستخدام الأمر التالي:
su - etherpad
git clone --branch master https://github.com/ether/etherpad-lite.git
قم بتغيير المجلد إلى المجلد الذي تم تنزيله وقم بتشغيل Etherpad باستخدام الأمر التالي:
cd etherpad-lite
bin/run.sh
سيؤدي هذا إلى تثبيت جميع التبعيات وبدء تشغيل خادم Etherpad.
بمجرد بدء تشغيل الخادم بنجاح ستحصل على النتيجة التالية:
[2020-11-11 06:46:44.783] [INFO] console - Your Etherpad version is 1.8.6 (2c8769a)
[2020-11-11 06:46:44.958] [INFO] console - You can access your Etherpad instance at http://0.0.0.0:9001/
[2020-11-11 06:46:44.958] [WARN] console - Admin username and password not set in settings.json. To access admin please uncomment and edit 'users' in settings.json
[2020-11-11 06:46:44.958] [WARN] console - Etherpad is running in Development mode. This mode is slower for users and less secure than production mode. You should set the NODE_ENV environment variable to production by using: export NODE_ENV=production
اضغط على CTRL + C لإيقاف الخادم.
ستحتاج إلى تعديل ملف settings.json وتحديد قاعدة البيانات وإعدادات المسؤول (admin):
nano settings.json
قم بإزالة الأسطر التالية:
"dbType" : "dirty",
"dbSettings" : {
"filename" : "var/dirty.db"
},
قم بتغيير إعدادات MySQL كما هو موضح أدناه:
"dbType" : "mysql",
"dbSettings" : {
"user": "etherpad",
"host": "localhost",
"port": 3306,
"password": "password",
"database": "etherpad",
"charset": "utf8mb4"
},
غيّر سطر TrustProxy إلى true:
"trustProxy": true,
ادخل كلمة مرور للمستخدم المسؤول (admin):
"users": {
"admin": {
"password": "adminpassword",
"is_admin": true
},
احفظ وأغلق الملف.
ثبّت التبعيات المطلوبة بالأمر التالي:
./bin/installDeps.sh
اخرج من مستخدم Etherpad بالأمر التالي:
exit
ستحتاج إلى إنشاء ملف خدمة systemd لإدارة خدمة Etherpad. يمكنك إنشائه بالأمر التالي:
nano /etc/systemd/system/etherpad.service
أضف الأسطر التالية:
[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target
[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/usr/bin/node /opt/etherpad/etherpad-lite/src/node/server.js
Restart=always
[Install]
WantedBy=multi-user.target
احفظ الملف وأغلقه.
أعد تحميل برنامج systemd daemon عن طريق تشغيل الأمر التالي:
systemctl daemon-reload
ابدأ خدمة Etherpad وقم بتمكينها من البدء عند إعادة تشغيل النظام باستخدام الأمر التالي:
systemctl start etherpad
systemctl enable etherpad
تحقق من حالة خدمة Etherpad باستخدام الأمر التالي:
systemctl status etherpad
سترى النتيجة التالية:
? etherpad.service - Etherpad-lite, the collaborative editor.
Loaded: loaded (/etc/systemd/system/etherpad.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2020-11-11 06:50:49 UTC; 4s ago
Main PID: 12269 (node)
Tasks: 13 (limit: 4691)
Memory: 119.1M
CGroup: /system.slice/etherpad.service
??12269 /usr/bin/node /opt/etherpad/etherpad-lite/src/node/server.js
إعداد Nginx لـ Etherpad
ستحتاج إلى تثبيت Nginx وإعداده كوكيل عكسي (reverse proxy) للوصول إلى Etherpad.
قم بتثبيت Nginx بالأمر التالي:
apt install nginx -y
أنشئ ملف Nginx virtual host جديد باستخدام الأمر التالي:
nano /etc/nginx/sites-available/etherpad.conf
أضف الأسطر التالية:
upstream etherpad {
server localhost:9001;
keepalive 32;
}
server {
listen 80;
server_name etherpad.mydomain.com;
location / {
client_max_body_size 50M;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_pass http://etherpad;
}
}
احفظ وأغلق الملف.
قم بتنشيط ملف Nginx virtual host بالأمر التالي:
ln -s /etc/nginx/sites-available/etherpad.conf /etc/nginx/sites-enabled/
تحقق من Nginx بحثًا عن أي خطأ:
nginx -t
ستحصل على النتيجة التالية:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
أعد تشغيل خدمة Nginx لتطبيق التغييرات:
systemctl restart nginx
يمكنك أيضًا التحقق من حالة Nginx باستخدام الأمر التالي:
systemctl status nginx
ستحصل على النتيجة التالية:
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-11-11 06:53:44 UTC; 6s ago
Docs: man:nginx(8)
Process: 12984 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 12985 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 13001 (nginx)
Tasks: 3 (limit: 4691)
Memory: 3.5M
CGroup: /system.slice/nginx.service
??13001 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
??13002 nginx: worker process
??13003 nginx: worker process
Nov 11 06:53:44 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 11 06:53:44 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.
الوصول إلى Etherpad
ستتم إعادة توجيهك إلى الصفحة التالية:
أدخل اسم صفحتك واضغط OK.
يجب أن ترى Etherpad dashboard الخاصة بك في الصفحة التالية: