Go to file
SiberiaBreadFactory 8c96d03380 v.0.0.1
2022-04-06 10:27:37 +05:00
LICENSE Initial commit 2022-04-06 05:24:08 +00:00
README.md v.0.0.1 2022-04-06 10:27:37 +05:00

Для начала накатываем необходимые пакеты для работы 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 <username> <your@emailaddress> --admin

В конце будет выдана ссылка, которую необходимо вставить в браузер и ввести там свой пароль. После этого пользователь создан, вы можете зайти под ним и наслаждаться федиверсом!