Mastodon هي منصة تدوين مصغرة مفتوحة المصدر ولا مركزية.تشبه في جوانب منها Twitter،تختص بالتدوين القصير وتتيح للمستخدمين متابعة المستخدمين الآخرين ونشر النصوص والصور ومحتوى الفيديو. تتيح Mastodon إنشاء شبكة اجتماعية غير ربحية بناءً على معايير ومبادئ الويب المفتوحة. على عكس Twitter ، كون Mastodon لا مركزية،بعني أن محتواها لا يخضع لسلطة مركزية.
خادم/ مثيل Mastodon
ما يميز منصة Mastodon هو أنها جزء من بروتوكول يضم عديد أنواع شبكات التواصل الاجتماعي الملتزمة به والمتكاملة فيما بينها . تتكون Mastodon نفسها من عدد غير محدد من ما يسمونه خادم/ مثيل Mastodon . يعمل كل خادم/ مثيل Mastodon بشكل مستقل – يمكن لأي شخص إنشاء مثيل وبناء مجتمعه. لكن لا يزال بإمكان المستخدمين من الحالات المختلفة متابعة بعضهم البعض ومشاركة المحتوى والتواصل.
مع بعض الوقت كل مستخدم تقريبا يحدد متابعيه وما يرغب بمتابعته والتفاعل معه(يخصص مجتمعه) على المثيل وعلى الخوادم الأخرى المتعلقة بمن رغب بمتابعتهم . تشارك Mastodon في Fediverse ، وهي مجموعة من الشبكات الاجتماعية ومواقع الويب الأخرى التي تتواصل باستخدام بروتوكول ActivityPub. يسمح ذلك لمثيلات Mastodon المختلفة بالتواصل ، كما تتراوح خوادم Mastodon في الحجم من مثيلات خاصة صغيرة إلى مثيلات عامة ضخمة, وتركز عادةً على اهتمامات محددة أو مبادئ مشتركة. أكبر خادم Mastodon هو Mastodon.social، وهو خادم عام أنشأه مطورو منصة Mastodon. لديها أكثر من 587،000 مستخدم وتفتخر بمدونة قواعد سلوك واستخدام شاملة .
سنشرح في السطور التالية تثبيت مثيل Mastodon على استضافه سحابية مقدمة من linode.
ما تحتاجه:
اسم نطاق”Domain” :
اذا لم يكن لديك اسم نطاق Domain “مجال”,احصل على اسم المجال خاصتك. هذه هي الطريقة التي ستصل بها أنت والآخرون إلى الخادم الخاص بك وسيجدك المستخدمين على الشبكة عبر شبكة الانترنت .تتوفر مئات شركات حجز و تسجيل اسم مجال منها Enome.com , name.com Namecheap على سبيل المثال . يأتي بتكلفة سنوية تختلف حسب اختيار اسم المجال.
خادم VPS:
شيء من شأنه تشغيل كود Mastodon الذي سيكون دائمًا متصلاً بالإنترنت.
كيفية الحصول علىه: DigitalOcean, linode ، Namecheap ،وغيرهم من مقدمي الاستضافة. يأتي بتكلفة شهرية أو سنوية تختلف حسب مواصفات كل مزود خدمة منهم والخطة التي تطلبها.
خادم البريد الإلكتروني
تحتاج Mastodon إلى إرسال روابط تأكيد وإشعارات متنوعة عبر البريد الإلكتروني ، واستضافة خادم SMTP الخاص بك ، على الرغم من إمكانية ذلك ، تتوفر العديد من الخيارات Mailgun و SparkPost و Postmark و Sendgrid وأي عدد لا حصر له من موفري استضافة البريد الإلكتروني الذين يعرضون واجهة برمجة تطبيقات SMTP. يأتي بتكلفة شهرية بناءً على حجم رسائل البريد الإلكتروني المرسلة.
مزود تخزين:
يمكن لـ Mastodon حفظ الملفات التي تقوم أنت ومستخدميك بمشاركتها وبتضمينها كالصور والفيديو , على محرك القرص الثابت الخاص بخادم VPS الذي يعمل عليه ، ومع ذلك ، فإن محرك الأقراص الثابتة عادة ما يكون محدود ويصعب ترقيته لاحقًا. يمنحك موفر تخزين الكائنات عمليا مساحة تخزين غير محدودة للملفات.
كيفية الحصول علىه : Amazon S3 ، Exoscale ، Wasabi ، Google Cloud ، إما واجهة برمجة تطبيقات متوافقة مع S3 أو متوافقة مع OpenStack Swift. يأتي بتكلفة شهرية بناءً على كمية الملفات المخزنة وكذلك عدد مرات الوصول إليها.
احصل على حساب في linode يمكنك الحصول على واحد من الرابط التالي مع رصيد مجاني ب 100$ يمكنك استخدام الرصيد خلال 60 يوم .
بعد حجز اسم نطاق خاص بك ,أو إذا كنت تملك نطاق سابق تأكد من إعداده بما يناسب الاستضافة في linode عبر استخدام عناوين DNS Records المخصصة من linode .ضمن أعدادات لوحة تحكم النطاق حيث قمت بتسجيله.سنستخدم علي سبيل المثال في باقي الشرح نطاق example.com.استبدله باسم نطاقك الخاص.
الخطوة التالية في linode هي إنشاء مثيل Creating a Compute Instance .
بعد تسجيل الدخول إلى Cloud Manager ، استخدم القائمة المنسدلة Create في الشريط العلوي ، وحدد Linode. هذا يفتح نموذج إنشاء Linode.
حدد Distributions توزيعة نظام التشغيل التي ترغب باعتمادها مع هذا المثيل , سنختار في مثالنا Ubuntu 22.04 LTS.
الخطوة التالية هي تحديد المنطقة الزمنية
من ثم تحديد الخطة التي ستحجزها للمثيل والتي تناسب احتياجاتك , نقصد هنا المعالج الذاكرة المساحة الخ …
بعد إكمال الإدخالات وتسمية مثيل Mastodon , تحتاج إلى تأمنيه و أنشاء كلمة مرور
هكذا يكون المثيل جاهزا للعمل تقريبا ويمكنك الآن تثبيت أي تطبيقات ترغب بها. الخطوة التالية هي تثبيت Docker و Docker Compose , يمكن تثبيت Mastodon باستخدام ملف Docker Compose المضمن الخاص به. يقوم Docker Compose بتثبيت وتشغيل جميع متطلبات بيئة Mastodon في حاويات Docker.
تثبيت Docker
استخدم الاوامر التالية :
sudo apt remove docker docker-engine docker.io sudo apt update sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release curl -fsSL [url]/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] [url] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
تثبيت Docker Compose
قم بتنزيل أحدث إصدار من Docker Compose. تحقق من صفحة الإصدارات واستبدلها إن كانت تختلف عن الرقم في سطر الأوامر التالي:
sudo curl -L https://github.com/docker/compose/releases/download/2.14.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
نحتاج لمنح الصلاحيات المناسبة عبر التالي:
sudo chmod +x /usr/local/bin/docker-compose
تحميل-تنزيل- Mastodon
الخطوة التالية هي الحصول على ملفات Mastodon ووضعها بمكتبة الجذر الخاصة بالمستخدم .
cd ~/ git clone https://github.com/mastodon/mastodon.git cd mastodon
سيتم تشغيل جميع الأوامر في مثالنا المتعلقة بـ Docker Compose في هذا الدليل.
تكوين وإعداد Docker Compose
1- باستخدام محرر النصوص كـ nano ، افتح ملف docker-compose.yml الموجود في دليل mastodon -2- علّق على سطور build (إضافة # أمام كل منها) ، وألحق رقم إصدار في نهاية كل سطر كالتالي:
image: tootsuite/mastodon
tootsuite/mastodon:v4.0.2
في قسم db ، أضف ما يلي أسفل سطر image استبدل كلمة المرور بكلمة مرور ترغب في استخدامها لقاعدة بيانات PostgreSQL التي تعمل في الخلفية لـ Mastodon.
ملف: docker-compose.yml
environment: POSTGRES_PASSWORD:password POSTGRES_DB: mastodon_production POSTGRES_USER: mastodon
ستحصل على ملف شبيه بالمحتوى docker-compose.yml . انسخ ملف .env.production.sample (الموجود في دليل mastodon الحالي) لإنشاء ملف إعداد جديد.
cp .env.production.sample .env.production
استخدم Docker و Mastodon لتولي SECRET_KEY_BASE جديد كالتالي:
SECRET_KEY_BASE=$(docker-compose run --rm web bundle exec rake secret)
سيتم توليد سلسلة من الأرقام والمحارف العشوائية. اضف نتيجة إعداد SECRET_KEY_BASE الى.env.production باستخدام الأمر sed :
sed -i -e "s/SECRET_KEY_BASE=/&${SECRET_KEY_BASE}/" .env.production
ادمج الإجراءين السابقين في خطوة واحدة لتعيين قيمة لإعداد OTP_SECRET في .env.production:
sed -i "s/OTP_SECRET=$/&$(docker-compose run --rm web bundle exec rake secret)/" .env.production
قم باستخراج قيم للإعدادات VAPID_PRIVATE_KEY و VAPID_PUBLIC_KEY:
docker-compose run --rm web bundle exec rake mastodon:webpush:generate_vapid_key
انسخ الإخراج من الأمر السابق ، وافتح .env.production في محرر النصوص ، والصق خرج الأمر في سطرين لـ VAPID_PRIVATE_KEY و VAPID_PUBLIC_KEY. واملأ الحقول المتبقية في ملف env.production:
- LOCAL_DOMAIN: أدخل اسم نطاق خادم Mastodon الخاص بك.
- : أدخل كلمة المرور التي قمت بتعيينها لقاعدة البيانات في ملف docker-compose.yml.
- أدخل mastodon_db_1 لـ DB_HOST و mastodon_redis_1 لـ REDIS_HOST. في كلتا القيمتين ، يتوافق mastodon مع اسم مجلد قاعدة Mastodon.
- املأ حقول SMTP بالمعلومات من مزود SMTP الخاص بك. إذا قمت بإعداد خادم SMTP ، فاستخدم اسم المجال الخاص به لـ SMTP_SERVER وأضف الأسطر التالية في ملف : .env.production
SMTP_AUTH_METHOD=plain SMTP_OPENSSL_VERIFY_MODE=none
قم بالتعليق على الأقسام التي يُشار إليها على أنها “اختيارية” عن طريق إضافة # قبل كل سطر في القسم. سيكون بالنتيجة ملف .env.production الناتج مشابهًا لملف env.production
إكمال إعداد Docker Compose
docker-compose build
امنح ملكية الدليل العام Mastodon للمستخدم 991. هذا هو معرف المستخدم الافتراضي لـ Mastodon ، وهذا الأمر يضمن أن لديه الأذونات/الصلاحيات اللازمة.
sudo chown -R 991:991 public
قم بتشغيل البرنامج النصي لإعداد Docker Compose من Mastodon. يُطلب منك إدخال معلومات حول خدمات Docker Compose ومثيل Mastodon.
docker-compose run --rm web bundle exec rake mastodon:setup
تأكد من إدخال نفس المعلومات هنا كما أدخلتها في الملف. env.production. عندما يُطلب منك إنشاء حساب مستخدم مشرف Mastodon ، اختر القيام بذلك (Y). أدخل اسم المستخدم وكلمة المرور وعنوان البريد الإلكتروني الذي ترغب في استخدامه للوصول إلى الحساب. لأية مطالبات أخرى ، أدخل القيم الافتراضية بالضغط على Enter.
تشغيل Docker Compose Services
لنبدأ خدمات Docker Compose :
docker-compose up -d
بدأ تشغيل خدمات Docker Compose تلقائيًا عند بدء تشغيل النظام. قم بتشغيل الأمر التالي لإيقاف خدمات Docker Compose يدويًا:
docker-compose down
إعداد proxy وكيل HTTP / HTTPS
للسماح باتصال HTTP و HTTPS عبر جدار حماية النظام:
sudo ufw allow http sudo ufw allow https sudo ufw reload
من ثم سنقوم بتثبيت NGINX ، ليقوم بالاتصال مع خادم Mastodon الخاص بك.
sudo apt install nginx
انسخ ملف nginx.conf المضمن مع تثبيت Mastodon إلى مجلد NGINX المتاح في المواقع ؛ استخدم اسم مجال Mastodon الخاص بك بدلاً من example.com في اسم الملف:
sudo cp ~/mastodon/dist/nginx.conf /etc/nginx/sites-available/example.com.conf
افتح ملف example.com.conf باستخدام محرر النصوص المفضل لديك ، واستبدل جميع مثيلات example.com باسم المجال لموقع Mastodon الخاص بك. يجب أن يتطابق اسم المجال هذا مع الاسم الذي استخدمته لإعداد Docker Compose لـ Mastodon.
قم بإنشاء ارتباط رمزي لهذا الملف في مجلد NGINX الرئيسي :
cd /etc/nginx/sites-enabled sudo ln -s ../sites-available/example.com.conf
تثبيت شهادة SSL / TLS
يتم الوصول لـ Mastodon عبر HTTPS ، نحتاج شهادة SSL / TLS.لضمان ذلك يستخدم في هذا الشرح Certbot لطلب شهادة مجانية وتنزيلها من Let’s Encrypt.
لنقم بتحديث مستودع snap ومن ثم تأكد من إزالة أي تثبيت Certbot سابق موجود.ومن ثم إعادة تثبيت جديدة له:
sudo snap install core && sudo snap refresh core sudo apt remove certbot sudo snap install --classic certbot
من ثم قم بتنزيل شهادة لموقعك:
sudo certbot certonly --nginx
في حال لديك اكثر من اسم نطاق سيطالبك Certbot بالاختيار من مواقع NGINX المكونة على جهازك. حدد اسم المجال الذي قمت بإعداده لمثيل Mastodon الخاص بك.
يتضمن Certbot وظيفة chron التي تقوم تلقائيًا بتجديد شهادتك قبل انتهاء صلاحيتها. يمكنك اختبار التجديد التلقائي باستخدام الأمر التالي:
sudo certbot renew --dry-run
افتح الملف /etc/nginx/sites-available/example.com.conf مرة أخرى ، وقم بإلغاء التعليق على سطور ssl_certificate و ssl_certificate_key. ومن ثم أعد تشغيل خادم NGINX.
sudo systemctl restart nginx
البدء باستخدام Mastodon
في متصفح الويب ، انتقل إلى نطاق موقع Mastodon الخاص بك. يجب أن ترى صفحة تسجيل الدخول إلى Mastodon ، حيث يمكنك تسجيل الدخول كمستخدم مسؤول قمت بإنشائه مسبقًا أو إنشاء مستخدم جديد.
يمكنك الانتقال إلى صفحة إدارة المثيل بالانتقال إلى example.com/admin/settings/edit. تتيح لك صفحة الإدارة تغيير شكل ومظهر وسلوك المثيل الخاص بك.
إذا كان المثيل الخاص بك قيد التشغيل ولكن به مشكلات ، فيمكنك تحري الخلل وإصلاحه من لوحة معلومات Sidekiq. إما أن تحدد Sidekiq من قائمة الإدارة أو انتقل إلى example.com/sidekiq لرؤية لوحة القيادة.
عندما تكون مستعدًا لجعل المثيل متاحا للعامه، يمكنك إضافته إلى القائمة في Instances.social عن طريق ملء نموذج المسؤول.