Поиск по сайту:

Как установить социальную сеть Mastodon на Debian 11


Это руководство существует для этих версий ОС

  • Debian 11 (Bullseye)
  • Debian 10 (Buster)

На этой странице

  1. Предпосылки
  2. Настройка репозиториев и установка зависимостей
  3. Установка rbenv и Ruby
  4. Настройка сервера базы данных PostgreSQL
  5. Установка мастодонта
  6. Запуск Mastodon в качестве службы Systemd
  7. Настройка Nginx в качестве обратного прокси-сервера
  8. Доступ к установке Mastodon
  9. Заключение

Mastodon — бесплатная, децентрализованная социальная сеть с открытым исходным кодом, похожая на Twitter. В Mastodon пользователи могут подписываться друг на друга и публиковать сообщения, изображения и видео. Но, в отличие от Твиттера, здесь нет центрального хранилища или авторитета для контента.

Благодаря децентрализованной архитектуре Mastodon работает на тысячах различных серверов, каждый из которых управляется различными членами сообщества. Вы можете создать свой сервер Mastodon под своим доменом. Вы также можете следить за другими пользователями с другими доменами на других серверах.

В этом руководстве вы установите Mastodon, децентрализованную платформу микроблогов на сервер Debian 11. С помощью этого руководства вы настроите Mastodon с PostgreSQL в качестве сервера базы данных и Nginx в качестве обратного прокси-сервера. Кроме того, вы защитите установку Mastodon с помощью бесплатных сертификатов SSL от Letsencrypt.

Предпосылки

В этом руководстве предполагается, что у вас есть следующие требования:

  • Сервер Debian 11 — в этом примере используется последний сервер Debian 11 с именем хоста mastodon-server и IP-адресом 192.168.5.40.
  • Пользователь без полномочий root с правами администратора sudo/root.
  • Доменное имя, указывающее и разрешаемое на ваш общедоступный сервер Debian — в этом примере используется поддомен mastodon.hwdomain.io.

Когда у вас есть все необходимые условия, вы готовы приступить к установке Mastodon.

Настройка репозиториев и установка зависимостей

Mastodon — это бесплатное программное обеспечение с открытым исходным кодом для запуска самостоятельных служб социальных сетей, аналогичных службе Twitter. В основном он написан на Ruby, особенно с использованием веб-фреймворка Ruby on Rails и JavaScript с фреймворком Reac.js и Redux.

На этом первом шаге вы настроите дополнительные репозитории в своей системе и установите зависимости пакетов для установки Mastodon. Сюда входят такие пакеты, как build-essentials для компиляции Ruby, PostgreSQL для сервера базы данных, Nginx в качестве веб-сервера и обратного прокси-сервера, инструмент certbot для получения SSL-сертификатов через Letsencrypt и сервер Redis, который будет использоваться для хранилища ключей и значений. и управление сессиями для Mastodon.

Прежде чем начать, запустите приведенную ниже команду apt, чтобы установить некоторые основные зависимости, которые будут использоваться для управления репозиториями и пакетами.

sudo apt install curl wget gnupg apt-transport-https lsb-release ca-certificates

При появлении запроса введите y для подтверждения и нажмите ENTER для продолжения.

Затем выполните приведенную ниже команду, чтобы добавить репозиторий Node.js Nodesource. Пакет Node.js здесь будет использоваться для компиляции статических ресурсов Mastodon. И на момент написания этой статьи последний Mastodon требовал как минимум Node.js v16.

curl -sL https://deb.nodesource.com/setup_16.x | bash -

Затем вы получите результат, подобный следующему.

После добавления репозитория Node.js вы настроите репозиторий для менеджера пакетов Yarn. Этот репозиторий предоставляет пакет Yarn, который будет использоваться для установки зависимостей JavaScript.

Запустите приведенную ниже команду, чтобы добавить ключ GPG и репозиторий менеджера пакетов Yarn.

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

Третий репозиторий, который вы добавите, — это репозиторий PostgreSQL. Запустите приведенную ниже команду, чтобы добавить репозиторий PostgreSQL на ваш сервер Debian.

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

После добавления репозиториев Node.js, Yarn и PostgreSQL выполните приведенную ниже команду apt, чтобы обновить индекс вашего пакета.

sudo apt update

Вы получите такой вывод.

Наконец, запустите приведенную ниже команду apt, чтобы установить зависимости пакета, которые будут использоваться для установки Mastodon.

sudo apt install 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 nodejs yarn redis-server redis-tools postgresql postgresql-contrib \
  certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev

Введите y, когда будет предложено подтверждение, и нажмите ENTER, чтобы продолжить.

Таким образом, вы установили основные зависимости для Mastodon и добавили несколько сторонних репозиториев в свою систему Debian.

На следующих шагах вы установите Ruby через rbenv — менеджер версий Ruby.

Установка rbenv и Ruby

rbenv — это инструмент управления версиями для языка программирования Ruby в Unix-подобных системах. Это полезно для переключения между несколькими версиями Ruby на одном компьютере и для обеспечения того, чтобы каждый проект, над которым вы работаете, всегда выполнялся на правильной версии Ruby.

Для начала выполните приведенную ниже команду, чтобы создать нового пользователя mastodon в вашей системе. Этот новый пользователь будет использоваться для запуска служб, связанных с Mastodon, а исходный код Mastodon будет храниться в домашнем каталоге этого пользователя.

sudo adduser --disabled-login mastodon

Во время процесса вам будет предложено настроить данные пользователя. Введите информацию о пользователе и введите y для подтверждения и нажмите ENTER.

После создания пользователя mastodon выполните приведенную ниже команду, чтобы войти в систему.

su - mastodon

Затем загрузите исходный код rbenv с помощью приведенной ниже команды git.

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

Затем выполните приведенную ниже команду, чтобы установить rbenv в вашей системе.

cd ~/.rbenv && src/configure && make -C src

Такой вывод вы получите после установки rbenv.

Затем выполните приведенную ниже команду, чтобы добавить каталог rbenv bin в системный PATH и загружать rbenv каждый раз, когда пользователь входит в новый сеанс.

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Теперь перезагрузите текущую оболочку, перезагрузив файл конфигурации bashrc. Затем введите команду rbenv в вашей оболочке и нажмите TAB.

source ~/.bashrc
rbenv TAB

На следующем снимке экрана rbenv установлен, и теперь вы можете выполнить команду rbenv для установки Ruby.

Перед установкой Ruby вам необходимо установить плагин rbenv под названием ruby-build. Этот подключаемый модуль предоставляет инструменты командной строки, упрощающие установку Ruby из исходного кода, особенно для UNIX-подобных операционных систем.

Загрузите плагин ruby-build с помощью команды git.

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

После добавления плагина ruby-build выполните приведенную ниже команду, чтобы установить Ruby v3.0.4, который требуется для текущей версии Mastodon.

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4

После завершения установки вы получите вывод, подобный этому.

Теперь запустите приведенную ниже команду, чтобы установить версию Ruby по умолчанию на 3.0.4. Затем проверьте с помощью команды ruby, как показано ниже. Вы увидите, что Ruby v3.0.4 установлен в вашей системе Debian.

rbenv global 3.0.4
ruby --version

Наконец, вы должны установить упаковщик для управления пакетами Ruby. Запустите команду gem ниже, чтобы установить пакет.

gem install bundler --no-document

На этом вы завершили установку зависимостей пакета Mastodon в вашей системе. Вы установили Ruby 3.0.4 с помощью диспетчера версий Ruby rbenv и установили пакетировщик, инструмент управления пакетами ruby.

На следующих шагах вы настроите пользователя PostgreSQL, который будет использоваться для установки Mastodon.

Настройка сервера базы данных PostgreSQL

На этом шаге вы проверите службу PostgreSQL, чтобы убедиться, что она включена и работает. Затем вы создадите нового мастодонта пользователя/роли PostgreSQL через оболочку PostgreSQL.

Убедитесь, что эти команды ниже с пользователем/привилегиями root.

Прежде чем начать, запустите приведенную ниже командную утилиту systemctl, чтобы убедиться, что служба PostgreSQL запущена и включена.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Вы должны получить вывод, подобный этому.

Когда PostgreSQL запущен, выполните приведенную ниже команду, чтобы войти в оболочку PostgreSQL.

cd /etc/postgresql
sudo -u postgres psql

После входа в оболочку PostgreSQL выполните приведенный ниже запрос PostgreSQL, чтобы создать новую роль/пользователя mastodon. Кроме того, не забудьте изменить пароль по умолчанию на новый надежный пароль.

CREATE USER mastodon CREATEDB;
ALTER USER mastodon PASSWORD 'p4ssw0rd';

Затем выполните приведенный ниже запрос, чтобы убедиться, что новый пользователь/роль PostgreSQL создан. Затем введите \q, чтобы выйти из оболочки PostgreSQL.

\du
\q

В приведенном ниже выводе показано, что новый мастодонт пользователя/роли PostgreSQL создан.

Создав пользователя/роль PostgreSQL, вы будете готовы установить Mastodon в своей системе Debian.

Установка мастодонта

На этом шаге вы установите и настроите Mastodon на свой сервер Debian. Вы также установите зависимости Ruby и зависимости JavaScript для Mastodon. И, наконец, вы начнете настраивать Mastodon для своего развертывания, включая конфигурацию домена, базу данных и конфигурацию Redis, конфигурацию SMTP, а также конфигурацию пользователя-администратора Mastodon.

Прежде чем начать, войдите в систему пользователя mastodon с помощью приведенной ниже команды.

su - mastodon

Теперь загрузите исходный код Mastodon с помощью команды git и измените ветку на последнюю стабильную версию Mastodon. На момент написания этой статьи стабильная версия Mastodon — v4.0.2.

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

Затем выполните приведенную ниже команду, чтобы настроить развертывание Mastodon и установить зависимости Ruby.

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

Установка зависимостей Mastodon Ruby займет время. Ниже приведен аналогичный вывод, который вы получите на своем терминале.

После того, как вы установили зависимости Mastodon Ruby, запустите приведенную ниже команду yarn, чтобы установить зависимости JavaScript для Mastodon.

yarn install --pure-lockfile

Затем вы получите вывод, подобный этому.

Установив зависимости Ruby и JavaScript, вы затем настроите установку Mastodon.

Запустите приведенную ниже команду, чтобы настроить Mastodon для производственной среды.

RAILS_ENV=production bundle exec rake mastodon:setup

Вас спросят о некоторых конфигурациях Mastodon.

  • Домен Mastodon? В этом примере используется домен mastodon.hwdomain.io.
  • Включить однопользовательский режим? Введите у.
  • Используете Docker для запуска Mastodon? Введите n для нет.
  • Введите имя пользователя и пароль PostgreSQL и убедитесь, что отображается сообщение Настройка базы данных работает!.
  • Конфигурация Redis? оставьте его по умолчанию, нажав ENTER.
  • Включить загрузку файлов в облако? Введите n для нет.
  • Разрешить отправку электронной почты с локального хоста? Введите y для подтверждения или n для подтверждения. Это зависит от вашей среды, вы также можете использовать сторонний SMTP-сервер.
  • Сохранить конфигурацию? Введите y для да.
  • Для создания базы данных. Введите y, чтобы создать базу данных Mastodon.
  • Введите y, чтобы скомпилировать активы и статические файлы для Mastodon.
  • Настроить администратора? Введите нового администратора и адрес электронной почты для установки Mastodon. И тогда вы получите пароль, сгенерированный автоматически, на ваш экран.

Конфигурация Mastodon для доменного имени, PostgreSQL, сервера Redis и почтового сервера SMTP.

Mastodon генерирует активы и статические файлы.

Создается пользователь-администратор mastodon, а также генерируется пароль для экрана терминала.

На этом вы завершили установку и настройку Mastodon в Debian 11. На следующих шагах вы настроите Mastodon как службу systemd.

Запуск Mastodon в качестве службы Systemd

По умолчанию Mastodon предоставляет образцы служебных файлов systemd, которые доступны в каталоге /home/mastodon/live/dist/.

Выполните приведенную ниже команду, чтобы скопировать служебные файлы Mastodon в каталог /etc/systemd/system.

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

Теперь перезагрузите менеджер systemd, чтобы применить изменения в файле systemd.

sudo systemctl daemon-reload

После этого запустите и включите службы Mastodon с помощью командной утилиты systemctl ниже.

sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
sudo systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming

Службы Mastodon теперь должны быть запущены, а также включены. Проверьте с помощью приведенной ниже команды systemctl.

sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

Вы получите результат, аналогичный следующему снимку экрана.

Служба mastodon-web запущена и включена.

Mastodon-sidekiq также работает и включен.

Служба потоковой передачи мастодонта также запущена и включена.

Когда все службы Mastodon запущены и включены, вы затем настроите Nginx в качестве обратного прокси-сервера для Mastodon и сгенерирует SSL Letsencrypt.

Настройка Nginx в качестве обратного прокси

На этом шаге вы настроите веб-сервер Nginx в качестве обратного прокси-сервера для Mastodon. Вы также создадите SSL Letsencrypt с помощью команды certbot и защитите Mastodon через безопасное соединение HTTPS.

Скопируйте конфигурацию блока сервера Nginx Mastodons по умолчанию в /etc/nginx/sites-available/mastodon. Затем активируйте новую конфигурацию блока сервера /etc/nginx/sites-available/mastodon.

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

Затем откройте файл конфигурации блока сервера Mastodon /etc/nginx/sites-available/mastodon с помощью приведенной ниже команды редактора nano.

sudo nano /etc/nginx/sites-available/mastodon

Измените доменное имя по умолчанию на свой домен Mastodon. В этом примере домен Mastodon — mastodon.hwdomain.io.

```ini

change domain

```

Сохраните файл и выйдите из редактора, когда закончите.

Затем выполните приведенную ниже команду, чтобы сгенерировать SSL-сертификаты от Letsencrypt. Обязательно измените доменное имя на свой домен.

sudo certbot --nginx -d mastodon.hwdomain.io

После создания SSL-сертификатов выполните приведенную ниже команду, чтобы проверить конфигурацию Nginx. Если вы получаете выходное сообщение, например, test успешно — синтаксис в порядке, это означает, что у вас правильная конфигурация. Затем перезапустите службу Nginx, чтобы применить новые изменения.

sudo nginx -t
sudo systemctl restart nginx

Наконец, запустите приведенную ниже командную утилиту systemctl, чтобы проверить службу Nginx и убедиться, что служба запущена и включена.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Вы получите вывод, аналогичный этому: служба Nginx в настоящее время запущена и включена. Служба Nginx автоматически запускается при загрузке.

Когда все настройки завершены, ваш Mastodon теперь доступен через веб-браузер.

Доступ к установке Mastodon

Откройте веб-браузер и перейдите на доменное имя вашей установки Mastodon (например, https://mastodon.hwdomain.io/). Теперь вы увидите домашнюю страницу Mastodon по умолчанию.

Нажмите кнопку «Войти», чтобы подтвердить своего пользователя.

Теперь введите своего администратора и сгенерированный пароль для Mastodon. Затем нажмите Войти.

Затем вы увидите домашнюю страницу пользователя Mastodon.

Затем щелкните меню «Настройки», чтобы открыть страницу настроек пользователя. Затем нажмите на меню «Администрирование» слева. И вы должны получить страницу администрирования Mastodon ниже.

Вы можете увидеть подробную информацию о стеке программного обеспечения, которое вы используете в настоящее время в своей установке Mastodon.

Заключение

Поздравляем! Вы завершили установку платформы микроблогов Mastodon на сервер Debian 11. Вы установили Mastodon с PostgreSQL в качестве сервера базы данных и Nginx в качестве обратного прокси. Вы также обеспечили безопасность развертывания Mastodon с помощью безопасных HTTPS-соединений.

После установки теперь вы можете настроить правило Mastodon для поддержки федерации. Вы также можете добавить дополнительный уровень безопасности к своей установке Mastodon.