AltLinuxPleromaInstallation/README.md

98 lines
4.7 KiB
Markdown
Raw Permalink Normal View History

2022-04-06 10:27:37 +05:00
Для начала накатываем необходимые пакеты для работы Pleroma:
2022-04-06 10:24:08 +05:00
2022-04-06 10:27:37 +05:00
```
# 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
2022-04-06 10:27:37 +05:00
```
Далее генерируем конфиг:
```
# 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
```
В конце будет выдана ссылка, которую необходимо вставить в браузер и ввести там свой пароль. После этого пользователь создан, вы можете зайти под ним и наслаждаться федиверсом!