From 8c96d0338099e10c911f86d522dcf66c565682a7 Mon Sep 17 00:00:00 2001 From: SiberiaBreadFactory Date: Wed, 6 Apr 2022 10:27:37 +0500 Subject: [PATCH] v.0.0.1 --- README.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 15b6f50..c5a2112 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,97 @@ -# AltLinuxPleromaInstallation +Для начала накатываем необходимые пакеты для работы 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 +``` + +В конце будет выдана ссылка, которую необходимо вставить в браузер и ввести там свой пароль. После этого пользователь создан, вы можете зайти под ним и наслаждаться федиверсом! \ No newline at end of file