noellabo's tech blog

@noellaboの技術ブログ

CentOS Stream 8でPleroma

昨日、CentOS 7でPleromaという記事(メモ)を書きましたが、こちらはCentOS Stream 8版です。

ハマりポイントは、powertoolsを有効にしてfile-develを入れておけ、ということぐらいですかね。cmakeも忘れずに。

Installing on CentOS Stream 8

Prepare the system

sudo dnf update -y
sudo dnf install epel-release -y
sudo dnf update -y
sudo dnf install cmake -y
sudo dnf --enablerepo=powertools install file-devel -y
sudo dnf group install "Development Tools" -y

Erlang

wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
rpm -Uvh erlang-solutions-2.0-1.noarch.rpm
sudo dnf install esl-erlang -y

Elixir

dnf install elixir -y

PostgreSQL 13

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql13-server postgresql13-contrib
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

Pleroma

sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
sudo mkdir -p /opt/pleroma
sudo chown -R pleroma:pleroma /opt/pleroma
cd /opt/pleroma/
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma.git /opt/pleroma
sudo -Hu pleroma mix local.hex --force
sudo -Hu pleroma mix local.rebar --force
sudo -Hu pleroma mix deps.get
sudo -Hu pleroma mix pleroma.instance gen

sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}
sudo -Hu postgres psql -f config/setup_db.psql
sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate

Test

sudo -Hu pleroma MIX_ENV=prod mix phx.server

Nginx

sudo dnf install nginx
sudo dnf install certbot-nginx
sudo mkdir -p /var/lib/letsencrypt/
sudo certbot certonly --email <your@emailaddress> -d <yourdomain> --standalone
sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/conf.d/pleroma.conf
sudo systemctl enable --now nginx

Systemd

sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
sudo systemctl enable --now pleroma.service

Create Admin User

sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin