تخطي إلى المحتوى الرئيسي

سيرفر مخصص: تثبيت Mastodon

تم إنشاء هذا الدليل باستخدام المنتجات التالية:

(قد تختلف التفاصيل مع المنتجات من مزودين مختلفين ولكن المفاهيم الرئيسية تظل كما هي)

مقدمة

Mastodon هو برنامج مجاني ومفتوح المصدر لتشغيل خدمات الشبكات الاجتماعية المستضافة ذاتيًا.

يحتوي على ميزات تدوين مصغر مشابهة لخدمة X (المعروفة سابقًا بتويتر)، والتي تقدمها عدد كبير من العقد المستقلة، المعروفة باسم المثيلات،
كل منها له قواعد سلوكه الخاصة، وشروط الخدمة، وسياسة الخصوصية، وخيارات الخصوصية، وسياسات الإشراف الخاصة به.

معلومات

يركز هذا الدليل على التثبيت على توزيعة مبنية على ديبيان. أمثلة على ذلك ديبيان وأوبونتو. يختلف هذا الدليل حسب نظام التشغيل الذي تستخدمه.

متطلبات النظام

إذا كنت تريد إعداد مثيل Mastodon على سيرفرك، يجب أن تستوفي بعض المتطلبات:

  • نطاق
  • سيرفر مبني على لينكس
  • سيرفر بريد إلكتروني

تحضير النظام

يوصى بشدة أن تقوم مسبقًا بتعطيل تسجيل الدخول بكلمة المرور عبر SSH، لأنه يشكل خطر أمني عند استخدام تسجيل الدخول بكلمة مرور على سيرفرات متاحة من الإنترنت.
يمكنك فعل ذلك من خلال واجهة الويب الخاصة بسيرفرك تحت المعلومات -> الوصول والأمان -> تعطيل تسجيل الدخول بكلمة المرور

بعد ذلك، حدّث الحزم باستخدام الأمر التالي:

apt update && apt upgrade -y

بعدها، عليك تثبيت تبعيات Mastodon:

# مستودعات النظام
apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates
# Node.JS
curl -sL https://deb.nodesource.com/setup_16.x | bash -
# PostgreSQL
wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list

بعد تثبيت التبعيات، يمكننا تثبيت الحزم النظامية اللازمة باستخدام الأمرين التاليين:

apt update
apt install -y \
imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \
g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \
bison build-essential libssl-dev libyaml-dev libreadline6-dev \
zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \
nginx redis-server redis-tools postgresql postgresql-contrib \
certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev

انتظر حتى تكتمل عملية التثبيت، والتي قد تستغرق بعض الوقت. بعد ذلك، علينا إعداد yarn، وهو مدير الحزم الخاص بـ Node.JS المثبت سابقًا:

corepack enable
yarn set version stable

تثبيت روبي

سنقوم بإنشاء مستخدم مختلف، لأن ذلك يسهل إدارة إصدارات روبي. أولًا، أنشئ مستخدمًا باسم mastodon مع تعطيل تسجيل الدخول. ثم انتقل إلى مستخدم mastodon باستخدام الأوامر التالية:

# يمكنك ترك الحقول فارغة
adduser --disabled-login mastodon
su - mastodon

الآن نثبت مدير روبي rbenv، الذي يسهل إدارة إصدارات روبي. يمكنك تثبيته بالأوامر التالية:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

بعد الانتهاء من هذه الأوامر، يمكنك تثبيت روبي باستخدام الأمر التالي. سنثبت أيضًا bundler في هذه الخطوة:

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.3
rbenv global 3.0.3
gem install bundler --no-document

قد يستغرق هذا بعض الوقت، فكن صبورًا وخذ لك شايًا أو قهوة أثناء الانتظار. بعد الانتهاء، يمكنك العودة إلى مستخدم root باستخدام الأمر exit

إعداد PostgreSQL

يستخدم Mastodon قاعدة بيانات PostgreSQL. يمكن إعدادها بسهولة باستخدام:

sudo -u postgres psql

داخل موجه PostgreSQL، أدخل التالي:

CREATE USER mastodon CREATEDB;
\q

إعداد Mastodon

الآن عد إلى مستخدم mastodon مرة أخرى:

su - mastodon

استخدم git لتحميل أحدث نسخة من Mastodon بالأوامر التالية:

git clone https://github.com/tootsuite/mastodon.git live && cd live
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)

بعدها، ثبت المزيد من تبعيات روبي وجافاسكريبت النهائية باستخدام هذه الأوامر:

bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)
yarn install --pure-lockfile

أنشئ ملف إعدادات mastodon باستخدام الأمر:

RAILS_ENV=production bundle exec rake mastodon:setup
معلومات

إذا فشل إعداد قاعدة البيانات، يرجى تسجيل الدخول إلى postgres باستخدام sudo -u postgres psql واتباع هذا الدليل:

https://gist.github.com/amolkhanorkar/8706915

بعد ذلك، عد إلى مستخدم root باستخدام الأمر exit

إعداد سيرفر الويب

الآن الجزء المعقد. عليك إعداد سيرفر الويب. أولًا، أنشئ سجل A و/أو سجل AAAA في DNS الخاص بك ليشير مباشرة إلى سيرفرك. بدلاً من ذلك، يمكنك توجيه سجل الجذر إلى سيرفرك.

بعدها استخدم الأمرين التاليين لنسخ وتفعيل إعداد سيرفر الويب الخاص بـ mastodon:

cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

بعد ذلك، حرر ملف /etc/nginx/sites-available/mastodon باستخدام محرر نصوص مثل vim أو nano وغيّر example.com إلى نطاقك المطلوب.
بعدها، عليك الحصول على شهادة SSL لنطاقك. يمكنك فعل ذلك بسهولة بهذا الأمر:

certbot --nginx -d <نطاقك>

أدخل نطاقك. سيُطلب منك عدة بيانات اعتماد. في النهاية، سيُسألك إذا كنت تريد إعادة توجيه طلبات http تلقائيًا إلى https، ننصحك بتمكين ذلك.

إنشاء خدمة mastodon

أخيرًا، سننشئ خدمة نظام لـ mastodon. الأمر بسيط جدًا.
استخدم هذا الأمر لنسخ إعدادات الخدمة الافتراضية إلى مجلد خدمات التوزيعة:

cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/

الآن فعّل وابدأ الخدمات الجديدة بالأوامر التالية:

systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming

بعد إعادة التشغيل، يجب أن تكون قد انتهيت من الإعداد. استمتع بمثيلك!