noellabo's tech blog

@noellaboの技術ブログ

CentOS 7でPleroma

Pleroma、もうCentOSへのインストール方法は公式にサポートしていない(ドキュメントが削除された)ようなんですが、まぁ動かないわけではないので、現時点のインストール手順をメモしておきます。CentOS 7用です。

追記:CentOS Stream 8でPleromaというメモも追加しました。

Installing on CentOS 7

Prepare the system

sudo yum update -y
sudo yum install cmake file-devel -y
sudo yum group install "Development Tools" -y

Erlang/OTP

wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_23.3.1-1~centos~7_amd64.rpm
sudo yum install esl-erlang_23.3.1-1~centos~7_amd64.rpm -y

Elixir/OTP

wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/elixir_1.10.4-1~centos~7_all.rpm
sudo yum install elixir_1.10.4-1~centos~7_all.rpm -y

PostgreSQL 13

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum 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 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

Run the server directly (Test)

sudo -Hu pleroma MIX_ENV=prod mix phx.server

Nginx

sudo yum install nginx
sudo yum 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