97 lines
4.7 KiB
Markdown
97 lines
4.7 KiB
Markdown
Для начала накатываем необходимые пакеты для работы 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
|
||
```
|
||
|
||
В конце будет выдана ссылка, которую необходимо вставить в браузер и ввести там свой пароль. После этого пользователь создан, вы можете зайти под ним и наслаждаться федиверсом!
|