تثبيت مثيل Mastodon على استضافه سحابية مقدمة من linode


|
استمع إلى المقال
|
Mastodon هي منصة تدوين مصغرة مفتوحة المصدر ولا مركزية.تشبه في جوانب منها Twitter،تختص بالتدوين القصير وتتيح للمستخدمين متابعة المستخدمين الآخرين ونشر النصوص والصور ومحتوى الفيديو. تتيح لك Mastodon أيضًا إنشاء شبكة اجتماعية غير ربحية بناءً على معايير ومبادئ الويب المفتوحة. على عكس Twitter ، كون Mastodon لا مركزية،بعني أن محتواها لا يخضع لسلطة مركزية.
ما يميز منصة Mastodon هو نهجها الموحد للتواصل الاجتماعي. تتكون من عدد غير محدد من ما يسمونه خادم – مثيل- يعمل كل مثيل Mastodon بشكل مستقل – يمكن لأي شخص إنشاء مثيل وبناء مجتمعه. لكن لا يزال بإمكان المستخدمين من الحالات المختلفة متابعة بعضهم البعض ومشاركة المحتوى والتواصل. مع بعض الوقت كل مستخدم تقريبا يحدد متابعيه وما يرغب بمتابعته والتفاعل معه(يخصص محتمعه) على المثيل وعلى الخوادم الاخرى المتعلقة بمن رغب بمتابعتهم .
تشارك Mastodon في Fediverse ، وهي مجموعة من الشبكات الاجتماعية ومواقع الويب الأخرى التي تتواصل باستخدام بروتوكول ActivityPub. يسمح ذلك لمثيلات Mastodon المختلفة بالتواصل ، كما يسمح للمنصات الأخرى في Fediverse بالتواصل مع Mastodon.
تتراوح خوادم Mastodon في الحجم من مثيلات خاصة صغيرة إلى مثيلات عامة ضخمة وتركز عادةً على اهتمامات محددة أو مبادئ مشتركة. أكبر خادم Mastodon هو Mastodon.social، وهو خادم ذو مصلحة عامة أنشأه مطورو منصة Mastodon. لديها أكثر من 570،000 مستخدم وتفتخر بمدونة قواعد سلوك شاملة.
سنشرح في السطور التالية تثبيت مثيل Mastodon على استضافه سحابية مقدمة من linode.
قد يهمك أيضا: كيف تحصل على اسم نطاق”دومين” مجاني واستضافه سحابية كطالب؟
كيفية الحصول علىه: DigitalOcean, linode ، Namecheap ،وغيرهم من مقدمي الاستضافة. يأتي بتكلفة شهرية أو سنوية تختلف حسب مواصفات كل مزود خدمة منهم والخطة التي تطلبها.
تتوفر العديد من الخيارات Mailgun و SparkPost و Postmark و Sendgrid وأي عدد لا حصر له من موفري استضافة البريد الإلكتروني الذين يعرضون واجهة برمجة تطبيقات SMTP. يأتي بتكلفة شهرية بناءً على حجم رسائل البريد الإلكتروني المرسلة.
كيفية الحصول علىه : Amazon S3 ، Exoscale ، Wasabi ، Google Cloud ، إما واجهة برمجة تطبيقات متوافقة مع S3 أو متوافقة مع OpenStack Swift. يأتي بتكلفة شهرية بناءً على كمية الملفات المخزنة وكذلك عدد مرات الوصول إليها.
example.com.استبدله باسم نطاقك الخاص.




هكذا يكون المثيل جاهزا للعمل تقريبا ويمكنك الآن تثبيت أي تطبيقات ترغب بها.
الخطوة التالية هي تثبيت Docker و Docker Compose , يمكن تثبيت Mastodon باستخدام ملف Docker Compose المضمن الخاص به. يقوم Docker Compose بتثبيت وتشغيل جميع متطلبات بيئة Mastodon في حاويات 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 في لينكس
قم بتنزيل أحدث إصدار من 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 ووضعها بمكتبة الجذر الخاصة بالمستخدم .
cd ~/
git clone https://github.com/mastodon/mastodon.git
cd mastodon
سيتم تشغيل جميع الأوامر في مثالنا المتعلقة بـ 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:
SMTP_AUTH_METHOD=plain
SMTP_OPENSSL_VERIFY_MODE=none
قم بالتعليق على الأقسام التي يُشار إليها على أنها “اختيارية” عن طريق إضافة # قبل كل سطر في القسم.
سيكون بالنتيجة ملف .env.production الناتج مشابهًا لملف env.production
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 :
docker-compose up -d
بدأ تشغيل خدمات Docker Compose تلقائيًا عند بدء تشغيل النظام. قم بتشغيل الأمر التالي لإيقاف خدمات Docker Compose يدويًا:
docker-compose down
للسماح باتصال 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
يتم الوصول لـ 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 ، حيث يمكنك تسجيل الدخول كمستخدم مسؤول قمت بإنشائه مسبقًا أو إنشاء مستخدم جديد.

يمكنك الانتقال إلى صفحة إدارة المثيل بالانتقال إلى example.com/admin/settings/edit. تتيح لك صفحة الإدارة تغيير شكل ومظهر وسلوك المثيل الخاص بك.

إذا كان المثيل الخاص بك قيد التشغيل ولكن به مشكلات ، فيمكنك تحري الخلل وإصلاحه من لوحة معلومات Sidekiq. إما أن تحدد Sidekiq من قائمة الإدارة أو انتقل إلى example.com/sidekiq لرؤية لوحة القيادة.

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