كيفية تثبيت مثيل Mastodon على خادم Ubuntu 22.04


|
استمع إلى المقال
|
Mastodon هي شبكة اجتماعية لامركزية مفتوحة المصدر. توفر ميزات التدوين المصغر تشبه إلى حد ما شبكة Twitter تتيح لك متابعة المستخدمين الآخرين ونشر الرسائل والصور. تمت كتابة Mastodon بلغة Ruby و JavaScript ، وتضمن طبيعته مفتوحة المصدر أنه يظل مفتوحًا لأي شخص لاستخدامه بشكل خاص وآمن. كما يمكن لأي شخص إنشاء خادم/مثيل Mastodon وبناء مجتمعاته الخاصة مع الأصدقاء. بالإضافة إلى ذلك ، فإن Mastodon مدعوم ومتاح من خلال تطبيقات متعددة لأنظمة iOS و Android ومنصات أخرى.
يكمن الاختلاف الجوهري بين Mastodon و Twitter بكونها برنامج حُر ومفتوح المصدر لتشغيل خدمات الشبكات الاجتماعية ذاتية الاستضافة. وعكس Twitter تتميز Mastodon بكونها شبكة لامركزية, تشكل وتدار كمجتمع اتحاد فدرالي Fediverse ,تم إنشاء هذا البرنامج بدوره حول معيار ActivityPub، وهو بروتوكول مفتوح غير مركزي يمكن للعديد من التطبيقات الأخرى والشبكات الاجتماعية التفاعل معه ,يوفر واجهة برمجة تطبيقات عميل/خادم لإنشاء وتحديث وحذف المحتوى ، بالإضافة إلى واجهة برمجة تطبيقات من خادم إلى خادم لتقديم الإشعارات والمحتوى. يمكن تكوين مجتمعات بشكل حر تسمي مثيل أو خادم ,يمكنك إعداد مثيل Mastodon على الخادم الخاص بك والاتصال بمثيلات Mastodon الأخرى.
سنشرح هذا المقال كيفية تثبيت Mastodon على خادم Ubuntu 22.04 / 20.04
تمت كتابة Mastodon باستخدام React.js و Ruby on Rails ، باستخدام PostgreSQL كنظام إدارة قاعدة البيانات .
قد يهمك: إعداد وتنصيب توزيعة أبونتو سيرفرUbuntu Server 21.10 .
لنقم بتسجيل الدخول إلى الخادم عبر SSH أو من Terminal , يتوفر PostgreSQL عادة في مستودع أوبونتو الافتراضي ,مع هذا يفضل تثبيت أحدث إصدار من PostgreSQL عبر سطر الأوامر التالي:
echo "deb [signed-by=/etc/apt/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
نحتاج لاستيراد المفتاح العام PostgreSQL:
sudo mkdir -p /etc/apt/keyrings/
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/keyrings/postgresql.asc

من ثم سنقوم بتحديث فهرس المستودع وتثبيت PostgreSQL:
sudo apt update
sudo mkdir -p /etc/apt/keyrings/
سيبدأ خادم قاعدة بيانات PostgreSQL تلقائيًا ويستمع إلى 127.0.0.1:5432 ، كما يتضح من الأمر التالي:
sudo ss -lnpt | grep postgres

إذا لم تحصل على خرج مشابه ، فمن المحتمل أن يكون ذلك بسبب عدم تشغيل خادم PostgreSQL. يمكنك تأكيد بدء خادم PostgreSQL عن طريق إصدار الأمر التالي:
sudo systemctl start postgresql
يتم إنشاء مستخدم postgres في نظام التشغيل أثناء التثبيت كمستخدم افتراضي لخادم قاعدة بيانات PostgreSQL. يمكننا استخدام sudo للتبديل إلى مستخدم postgres وتسجيل الدخول إلى وحدة تحكم ومحرر تعليمات PostgreSQL:
sudo -u postgres -i psql
لنبدأ بإنشاء قاعدة بيانات لـ Mastodon.
CREATE DATABASE mastodon;
ومن ثم بإنشاء مستخدم قاعدة بيانات.
CREATE USER mastodon;
لنقم بتعيين كلمة مرور لهذا المستخدم:
ALTER USER mastodon WITH ENCRYPTED PASSWORD 'your_preferred_password';
امنح هذا المستخدم الصلاحيات لإنشاء قاعدة بيانات:
ALTER USER mastodon createdb;
من ثم بتعيين هذا المستخدم كمالك لقاعدة بيانات Mastodon:
ALTER DATABASE mastodon OWNER TO mastodon;
تم اعداد قاعدة البيانات يمكننا تسجيل الخروج من مجرر أوامر PostgreSQL:
\q

يتطلب Mastodon إصدار روبي 2.5+. يتضمن مستودع Ubuntu 22.04 / 20.04 حزمة روبي ، لذا سنمرر الأمر التالي لتثبيته:
sudo apt install ruby ruby-dev
للتحقق من رقم إصدار Ruby ، قم بتشغيل:
ruby -v

لنبدأ إنشاء مستخدم Mastodon:
sudo adduser mastodon --system --group --disabled-login
من ثم تثبيت أداة git في حال عدم تثبيتها سابقا:
sudo apt install git
قم بتشغيل الأمر التالي لاستنساخ مستودع كود Mastodon من Github:
git clone https://github.com/tootsuite/mastodon.git

أنشئ الدليل / var / www / ، إذا لم يكن موجود وانقل دليل mastodon إلى / var / www /:
sudo mkdir -p /var/www/
sudo mv mastodon/ /var/www/

نحتاج تغيير المالك إلى mastodon:
sudo chown mastodon:mastodon /var/www/mastodon/ -R
قم بتغيير الدليل وتحقق من أحدث إصدار مستقر من Mastodon. يمكنك الانتقال إلى صفحة إصدارات Github لمشاهدة أحدث إصدار ثابت. الإصدار الأحدث وقت كتابة هذه السطور هو الإصدار 4.0.2.
cd /var/www/mastodon/
sudo -u mastodon git checkout v4.0.2

sudo gem install bundler
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
sudo apt-get install -y nodejs
sudo apt-get install gcc g++ make
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn

قد يهمك:تثبيت Node.js في أبونتو لينكس
قم بتثبيت Yarn ، وهو مدير حزم Node.js.
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo apt update
sudo apt -y install yarn
تثبيت الحزم المطلوبة لتجميع التعليمات البرمجية المصدرية.
sudo apt install redis-server optipng pngquant jhead jpegoptim gifsicle nodejs imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev libidn11-dev libicu-dev libjemalloc-dev
ثم قم بتثبيت حزم ملحقات لـ Mastodon.
sudo -u mastodon bundle config deployment 'true'
sudo -u mastodon bundle config without 'development test'
sudo -u mastodon bundle install -j$(getconf _NPROCESSORS_ONLN)

الخطوة التالية هي تشغيل معالج الإعداد وبدء تثبيت mastodon .
sudo -u mastodon RAILS_ENV=production bundle exec rake mastodon:setup
أولاً ، سوف يطرح عليك سلسلة من الأسئلة.

إذا واجهت مشكلة بالاتصال وخطا أثناء إكمال الأمر السابق يمكن البدء بالأمر التالي :
yarn install --network-timeout 10000000

Do you want to create an admin user straight away? Yes
Username: admin
E-mail: [email protected]
You can login with the password: f8dcf98b3530e28815516ad5e7a64f07
You can change your password once you login.
bakdash@bakdash-Satellite-C850-B908:/var/www/mastodon$

بعد الانتهاء يمكنك الآن تشغيل خادم Mastodon لأول مرة.
يوفر Mastodon قوالب خدمة systemd محددة . يمكننا نسخها إلى الدليل / etc / sysetmd / system /.
sudo cp /var/www/mastodon/dist/mastodon*.service /etc/systemd/system/
نحتاج إلى إجراء بعض التغييرات على ملفات الخدمة. لنقم بتغيير دليل العمل من / home / mastodon / live / إلى / var / www / mastodon /.
sudo sed -i 's/home\/mastodon\/live/var\/www\/mastodon/g' /etc/systemd/system/mastodon-*.service
قم بتغيير /home/mastodon/.rbenv/shims/bundle إلى / usr / local / bin / bundle.
sudo sed -i 's/home\/mastodon\/.rbenv\/shims/usr\/local\/bin/g' /etc/systemd/system/mastodon-*.service
أعد تحميل systemd لتصبح التغييرات سارية المفعول.
sudo systemctl daemon-reload
ابدأ خدمات النظام الثلاثة:
sudo systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
تأكد من أنهم جميعًا في حالة نشطة (قيد التشغيل):
sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming
انتظر بضع ثوانٍ ، ثم قم بتشغيل الأمر التالي للتحقق مما إذا كان Mastodon يُدرج في المنفذ 3000.
sudo ss -lnpt | grep 3000
إذا كان Mastodon يعمل بشكل صحيح ، فيجب أن يبدو كالتالي:

في حال كان المنفذ 3000 محجوز لخدمة اخرى، فأنت بحاجة إلى تحرير الملف /etc/systemd/system/mastodon-web.service.
sudo gedit etc/systemd/system/mastodon-web.service
ابحث عن السطر التالي Environment=”PORT=3000″ قم بتغيير رقم المنفذ مثل 3001 ، لذلك سوف يستمع Mastodon على المنفذ 3001. أعد تحميل systemd وأعد تشغيل Mastodon.
sudo systemctl daemon-reload
sudo systemctl restart mastodon-web
قد بهمك:تثبيت Nginx على Ubuntu 22.04 LTS
لتثبيت خادم الويب Nginx من مستودع برامج Ubuntu 22.04 / 20.04 الافتراضي.عبر الامر التالي:
sudo apt install nginx
انسخ ملف تكوين قالب Nginx:
sudo cp /var/www/mastodon/dist/nginx.conf /etc/nginx/conf.d/mastodon.conf
قم بتحرير الملف الجديد:
sudo gedit /etc/nginx/conf.d/mastodon.conf
ابحث عن السطر التالي المنفذ 80 و المنفذ 443:
server_name example.com; عدل الى اسم النطاق
ابحث عن السطر التالي المنفذ 80 و المنفذ 443:
root /home/mastodon/live/public;
غيره الى :
root /var/www/mastodon/public;
ابحث عن السطرين التاليين:
# ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
قم بتغييرها إلى ما يلي ، بحيث يستخدم Nginx بشكل مؤقت شهادة TLS موقعة ذاتيًا. سنحصل على شهادة Let’s Encrypt الصالحة لاحقًا:
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
sudo mkdir -p /var/nginx/cache/
// لفحص اعدادات Nginx.
sudo nginx -t
sudo systemctl reload nginx
الآن يجب أن تكون قادرًا على رؤية صفحة مثيل Mastodon على السيرفر المحلي او اسم النطاق الذي اعتمدته .
لتشفير حركة مرور HTTP ، يمكننا تمكين HTTPS عن طريق تثبيت شهادة TLS مجانية صادرة من Let’s Encrypt. قم بتشغيل الأمر التالي لتثبيت عميل Let’s Encrypt (certbot) على خادم Ubuntu 22.04 / 20.04.
sudo apt install certbot python3-certbot-nginx
بعد ذلك ، قم بتشغيل الأمر التالي للحصول على شهادة TLS وتثبيتها باستخدام اسم النطاق خاصتك والبريد الالكتروني:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d social.example.com
الصورة التالية لمثال افتراضي للنتيجة :

ويمكنك الوصول إلى صفحة Mastodon عبر HTTPS (https://social.example.com). او https://localhost حسب خيارات التثبيت

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