Pleroma — это легкий сервер, участвующий в Fediverse. Pleroma — альтернатива серверному программному обеспечению Mastodon. По сравнению с Mastodon, Pleroma для аналогичной установки не требуется столько процессора или оперативной памяти. В этом руководстве описаны этапы установки сервера Pleroma. Сервер может быть домашним экземпляром Fediverse или экземпляром, которым можно поделиться с друзьями, семьей или сообществами по интересам.
Предварительные условия#
- Сервер под управлением Ubuntu 24.04 или любой другой ОС Linux.
- Привилегии пользователя: пользователь root или не root с привилегиями sudo.
Конвенции#
1
2
| # - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя
|
Установите Postgres и вспомогательное программное обеспечение
1
| $ sudo apt -y install git build-essential postgresql postgresql-contrib cmake libmagic-dev
|
Установите Elixir и Erlang
1
| $ sudo apt -y install elixir erlang-dev erlang-nox
|
Установите инструменты для работы с изображениями
1
| $ sudo apt -y install imagemagick ffmpeg libimage-exiftool-perl
|
Установить Pleroma#
Создайте пользователя для запуска программного обеспечения Pleroma:
1
| $ sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
|
Создайте каталог Плеромы.
1
2
| $ sudo mkdir -p /opt/pleroma
$ sudo chown -R pleroma:pleroma /opt/pleroma
|
Клонируйте git-репозиторий Pleroma от имени пользователя Pleroma.
1
| $ sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma
|
Перейдите в подкаталог Плеромы.
Установите пакеты поддержки Pleroma. Ответьте «Да» на вопрос об установке Hex.
1
| $ sudo -Hu pleroma mix deps.get
|
Создайте конфигурацию плеромы. Это займет несколько минут. Ответьте «Да» на вопрос об установке rebar3.
1
| $ sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen
|
Программа настройки задаст ряд вопросов, на которые следует ответить следующим образом:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Какой домен будет использовать ваш экземпляр? (например, 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.
|
Все файлы успешно записаны! Дальнейшие действия см. в инструкциях по установке для вашей платформы.
Пожалуйста, перенесите свою конфигурацию в базу данных после выполнения миграции базы данных. Дополнительную информацию см. в разделе документации «Перенос конфигурации в/из базы данных».
Переместите файлы конфигурации в их окончательное местоположение:
1
| $ sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}
|
Улучшение конфигурации безопасности#
Установите для secure_cookie_flag
значение true
, чтобы файлы cookie отправлялись через безопасное соединение.
1
| $ sudo sed -i 's/secure_cookie_flag: false/secure_cookie_flag: true/g' config/config.exs
|
Включите строгую транспортную безопасность, чтобы злоумышленник не мог понизить соединение HTTPS до HTTP.
1
| $ sudo sed -i 's/ sts: false/ sts: true/g' config/config.exs
|
Обновите файл ca-certificates.crt и добавьте его в конфигурацию Плеромы:
1
2
| $ 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:
1
| $ sudo -Hu postgres psql -f config/setup_db.psql
|
Запустите миграцию базы данных:
1
| $ sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate
|
Установите Nginx#
Nginx будет выступать в качестве обратного прокси-сервера перед Pleroma, обрабатывая TLS и управление сеансами.
1
| $ sudo apt -y install nginx
|
Остановите Nginx, чтобы позволить Certbot использовать порт 80
1
| $ sudo systemctl stop nginx.service
|
Настройте брандмауэр (ufw), чтобы разрешить входящие TCP-соединения через порты 80 и 443
1
2
| $ sudo ufw allow http
$ sudo ufw allow https
|
Установите Certbot и запросите сертификат TLS#
1
2
| $ sudo apt -y install certbot
$ sudo mkdir -p /var/lib/letsencrypt/
|
Certbot запросит одобрение (обязательных) условий обслуживания Let’s Encrypt и предложит подписку на (необязательный) список рассылки. Certbot настроится на автоматическое обновление сертификата TLS.
1
| $ sudo certbot certonly --email $EMAIL -d $FQDN --standalone
|
Установите конфигурацию Nginx
1
2
| $ 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
1
| $ sudo sed -i "s,example.tld,$FQDN," /etc/nginx/sites-available/pleroma.nginx
|
Включите Nginx для запуска во время загрузки и запустите его немедленно
1
| $ sudo systemctl enable --now nginx.service
|
Установите служебный файл systemd
1
| $ sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
|
Включите Pleroma для запуска во время загрузки и запустите ее немедленно
1
| $ sudo systemctl enable --now pleroma.service
|
Создайте административного пользователя Pleroma
1
| $ sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new $USER $EMAIL --admin
|
Система отобразит URL-адрес для установки пароля для указанного имени пользователя.
Заключительные шаги#
Установите пароль, используя предоставленную ссылку, и нажмите «Домашняя страница».
Войдите в систему с только что созданным именем пользователя и паролем и перейдите в меню «Администрирование», щелкнув значок глобуса в правом верхнем углу экрана, затем выберите «Настройки» на левой панели, затем выберите «Экземпляр». Прокрутите вниз и измените параметр «Регистрации открыты», чтобы разрешить (выбор по умолчанию) или запретить общедоступную регистрацию пользователей и публикации статуса, а также установите другие параметры по мере необходимости. Измените настройку «Федерация», чтобы разрешить (по умолчанию) или запретить подключения к другим серверам в Fediverse.
Если вам понравился этот пост о том, как установить Pleroma на Ubuntu 24.04. Вы также можете поделиться этим постом с друзьями в социальных сетях, кому эта статья может быть интересна или просто оставьте комментарий ниже. Спасибо.