Для начала накатываем необходимые пакеты для работы 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-5.1/lib/libei.a /usr/lib/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 --admin ``` В конце будет выдана ссылка, которую необходимо вставить в браузер и ввести там свой пароль. После этого пользователь создан, вы можете зайти под ним и наслаждаться федиверсом!