Pleroma — это легкий сервер, участвующий в Fediverse. Pleroma — альтернатива серверному программному обеспечению Mastodon. По сравнению с Mastodon, Pleroma для аналогичной установки не требуется столько процессора или оперативной памяти. В этом руководстве описаны этапы установки сервера Pleroma. Сервер может быть домашним экземпляром Fediverse или экземпляром, которым можно поделиться с друзьями, семьей или сообществами по интересам.
Предварительные условия
- Сервер под управлением Ubuntu 24.04 или любой другой ОС Linux.
- Привилегии пользователя: пользователь root или не root с привилегиями sudo.
Конвенции
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя
Установите Postgres и вспомогательное программное обеспечение
$ sudo apt -y install git build-essential postgresql postgresql-contrib cmake libmagic-dev
Установите Elixir и Erlang
$ sudo apt -y install elixir erlang-dev erlang-nox
Установите инструменты для работы с изображениями
$ sudo apt -y install imagemagick ffmpeg libimage-exiftool-perl
Установить Pleroma
Создайте пользователя для запуска программного обеспечения Pleroma:
$ sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
Создайте каталог Плеромы.
$ sudo mkdir -p /opt/pleroma
$ sudo chown -R pleroma:pleroma /opt/pleroma
Клонируйте git-репозиторий Pleroma от имени пользователя Pleroma.
$ sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma
Перейдите в подкаталог Плеромы.
$ cd /opt/pleroma
Установите пакеты поддержки Pleroma. Ответьте «Да» на вопрос об установке Hex.
$ sudo -Hu pleroma mix deps.get
Создайте конфигурацию плеромы. Это займет несколько минут. Ответьте «Да» на вопрос об установке rebar3.
$ sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen
Программа настройки задаст ряд вопросов, на которые следует ответить следующим образом:
Какой домен будет использовать ваш экземпляр? (например, pleroma.example.com) [] введите здесь полное доменное имя Enter
Как называется ваш экземпляр? (например, The Corndog Emporium) [] имя сервера Введите Какой у вас адрес электронной почты администратора? [] адрес электронной почты Enter
Какой адрес электронной почты вы хотите использовать для отправки уведомлений по электронной почте? [] адрес электронной почты Enter
Вы хотите, чтобы поисковые системы индексировали ваш сайт? (да/нет) [Да] Enter
Хотите ли вы сохранить конфигурацию в базе данных (позволяет управлять ею из admin-fe)? (да/нет) [нет] Да Enter
Какое имя хоста у вашей базы данных? [localhost] Введите Как называется ваша база данных? [pleroma] Enter
Какой пользователь используется для подключения к вашей базе данных? [pleroma] Enter
Какой пароль используется для подключения к вашей базе данных? [автогенерируется] Enter
Хотели бы вы использовать индексы RUM? [нет] Enter
Какой порт будет прослушивать приложение (оставьте его, если вы используете настройку по умолчанию с nginx)? [4000] Enter
Какой IP-адрес будет слушать приложение (оставьте его, если вы используете настройку по умолчанию с nginx)? [127.0.0.1] Enter
В каком каталоге следует помещать загрузки мультимедиа (при использовании локального загрузчика)? [загружает] Enter
Из какого каталога следует читать пользовательские общедоступные файлы (пользовательские смайлы, переопределения пакетов внешнего интерфейса, robots.txt и т.д.)? [экземпляр/статический/] Enter
Хотите удалить данные о местоположении (GPS) из загруженных изображений? Для этого требуется exiftool, он определился как установленный. (да/нет) [Да] Enter
Хотите анонимизировать имена загружаемых файлов? (да/нет) [нет] Да Enter
Хотите дедуплицировать загруженные файлы? (да/нет) [нет] Да Enter
Запись конфигурации в config/generated_config.exs. Запись сценария postgres в config/setup_db.psql. Написание /opt/pleroma/instance/static/robots.txt.
Все файлы успешно записаны! Дальнейшие действия см. в инструкциях по установке для вашей платформы.
Пожалуйста, перенесите свою конфигурацию в базу данных после выполнения миграции базы данных. Дополнительную информацию см. в разделе документации «Перенос конфигурации в/из базы данных».
Переместите файлы конфигурации в их окончательное местоположение:
$ sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}
Улучшение конфигурации безопасности
Установите для secure_cookie_flag
значение true
, чтобы файлы cookie отправлялись через безопасное соединение.
$ sudo sed -i 's/secure_cookie_flag: false/secure_cookie_flag: true/g' config/config.exs
Включите строгую транспортную безопасность, чтобы злоумышленник не мог понизить соединение HTTPS до HTTP.
$ sudo sed -i 's/ sts: false/ sts: true/g' config/config.exs
Обновите файл ca-certificates.crt и добавьте его в конфигурацию Плеромы:
$ sudo update-ca-certificates --fresh
$ sudo sed -i 's,path/to/file/with/PEM/cacerts,/etc/ssl/certs/ca-certificates.crt,' config/description.exs
Создайте базу данных Postgres:
$ sudo -Hu postgres psql -f config/setup_db.psql
Запустите миграцию базы данных:
$ sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate
Установите Nginx
Nginx будет выступать в качестве обратного прокси-сервера перед Pleroma, обрабатывая TLS и управление сеансами.
$ sudo apt -y install nginx
Остановите Nginx, чтобы позволить Certbot использовать порт 80
$ sudo systemctl stop nginx.service
Настройте брандмауэр (ufw), чтобы разрешить входящие TCP-соединения через порты 80 и 443
$ sudo ufw allow http
$ sudo ufw allow https
Установите Certbot и запросите сертификат TLS
$ sudo apt -y install certbot
$ sudo mkdir -p /var/lib/letsencrypt/
Certbot запросит одобрение (обязательных) условий обслуживания Let’s Encrypt и предложит подписку на (необязательный) список рассылки. Certbot настроится на автоматическое обновление сертификата TLS.
$ sudo certbot certonly --email $EMAIL -d $FQDN --standalone
Установите конфигурацию Nginx
$ sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx
$ sudo ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx
Добавьте доменное имя в конфигурацию Nginx
$ sudo sed -i "s,example.tld,$FQDN," /etc/nginx/sites-available/pleroma.nginx
Включите Nginx для запуска во время загрузки и запустите его немедленно
$ sudo systemctl enable --now nginx.service
Установите служебный файл systemd
$ sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
Включите Pleroma для запуска во время загрузки и запустите ее немедленно
$ sudo systemctl enable --now pleroma.service
Создайте административного пользователя Pleroma
$ sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new $USER $EMAIL --admin
Система отобразит URL-адрес для установки пароля для указанного имени пользователя.
Заключительные шаги
Установите пароль, используя предоставленную ссылку, и нажмите «Домашняя страница».
Войдите в систему с только что созданным именем пользователя и паролем и перейдите в меню «Администрирование», щелкнув значок глобуса в правом верхнем углу экрана, затем выберите «Настройки» на левой панели, затем выберите «Экземпляр». Прокрутите вниз и измените параметр «Регистрации открыты», чтобы разрешить (выбор по умолчанию) или запретить общедоступную регистрацию пользователей и публикации статуса, а также установите другие параметры по мере необходимости. Измените настройку «Федерация», чтобы разрешить (по умолчанию) или запретить подключения к другим серверам в Fediverse.
Если вам понравился этот пост о том, как установить Pleroma на Ubuntu 24.04. Вы также можете поделиться этим постом с друзьями в социальных сетях, кому эта статья может быть интересна или просто оставьте комментарий ниже. Спасибо.