AltLinuxPleromaInstallation/README.md

97 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Для начала накатываем необходимые пакеты для работы Pleroma:
```
# apt-get install sudo postgresql13 postgresql13-contrib elixir erlang-devel erlang-otp-devel git gcc gcc-c++ cmake ImageMagick ffmpeg exiftool nginx
```
Создаём системные базы данных PostgreSQL:
```
# /etc/init.d/postgresql initdb
```
После чего запускаем все необходимые сервисы:
```
# systemctl enable --now postgresql nginx
```
Так как наш РУССКИЙ дистрибутив настолько суров, что по умолчанию доступа к sudo не имеет даже root, то нам необходимо открыть файлик /etc/sudoers и расскомментировать данную строку:
```
root ALL=(ALL) ALL
```
Далее создаём пользователя pleroma,
```
# useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
```
Дальше стандартно: создаём под Pleroma папку, делаем юзера pleroma в ней хозяином, клонируем туда сами исходные коды Pleroma:
```
# sudo mkdir -p /opt/pleroma
# sudo chown -R pleroma:pleroma /opt/pleroma
# sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma
```
Переходим в папку с исходниками:
```
# cd /opt/pleroma
```
И устанавливаем дополнительные зависимости:
```
# sudo -Hu pleroma mix deps.get
```
А сейчас будет исполнен небольшой костыль. В пакете erlang-otp есть библиотека libei, но вот если просто поставить Pleroma компилироваться, то ld её просто не найдёт и будет ошибк компиляции. Поэтому нужно сделать симлинк этой библиотеки в /usr/lib/. Но только в чатике Альта об этом не слова. Я там об такой штуке рассказал, меня три раза черенковали.
```
# ln -s /usr/lib/erlang/lib/erl_interface-<версия erlang>/lib/libei.a /usr/lib64/libei.a
```
Далее генерируем конфиг:
```
# sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen
```
Если попросят установить ```rebar3```, то соглашаемся. Так же при генерации конфига нужно будет ответить на ряд вопросов.
Переименовываем конфигурационный файл:
```
# sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}
```
Создаём базу данных Pleroma, используя шаблон, сгенерированный при генерации конфига:
```
# sudo -Hu postgres psql -f config/setup_db.psql
```
И запускаем миграцию базы данных:
```
# sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate
```
Копируем шаблон конфига для web-сервера Nginx в его папку конфигов сайтов:
```
# sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-enabled/pleroma.conf
```
После этого данный файл необходимо открыть и отредактировать, а именно указать везде, где нужно, своё доменное имя и путь до SSL сертификатов. Как генерировать сертификаты Let's Encrypt я писать не буду, без меня есть множество инструкций.
Проверяем конфигурационный файл Nginx:
```
# nginx -t
```
И если всё в порядке, то перезагружаем nginx:
```
# nginx -s reload
```
Копируем SystemD сервис в ```/etc/systemd/system/``` что бы была возможность управлять Pleroma через SystemD:
```
# sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
```
И запускаем сервис Pleroma:
```
# sudo systemctl enable --now pleroma.service
```
Создаем первого пользователя-администратора:
```
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
```
В конце будет выдана ссылка, которую необходимо вставить в браузер и ввести там свой пароль. После этого пользователь создан, вы можете зайти под ним и наслаждаться федиверсом!