【23回】PleromaをRaspberry Pi上に構築!

オープンソースのSNSとしてmastdonが有名ですが、RaspberryPiで動かすにはスペックが足りないみたいです。
mastdonと互換性のあるPleromaは軽量でRaspberry Piでも動画に問題はないそうです。
(参考:ITmedia 「新しい連合型SNS「Pleroma」はMastodonを置き換える?」

 

 

OSの準備

Raspbianの最新版(STRETCH)を使用します。

私の特異環境として、Crystal Signal Piをインストールしました。
将来的にPleromaのログを監視してエラー時に発光通知させるようにしたいと考えています。
(※エラー検知と発光通知はこの記事にはありません)

 

Elixirのインストール

PleromaはElixirという言語で作成されており、Elixirは仮想環境上で動作するようです。
(参考:Wikipeia Elixier(プログラミング言語)

バージョン1.5以降が必要(必要要件が変更になる場合があるので事前に公式情報をご確認ください)なのですが、apt-getでインストールしようとすると1.3.3-2になってしまいます。

echo "deb https://packages.erlang-solutions.com/debian stretch contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list
wget https://packages.erlang-solutions.com/debian/erlang_solutions.asc
sudo apt-key add erlang_solutions.asc

sudo apt-get update
sudo apt-get install elixir erlang-dev erlang-parsetools erlang-xmerl

 

PostgreSQLのインストール

PostgreSQLとWeb管理ツールのphpPgaAdminのインストールをします。

sudo apt-get install build-essential postgresql postgresql-contrib phppgadmin

 

ユーザの追加

sudo adduser pleroma
sudo usermod -aG sudo pleroma

 

データベース用ユーザの作成

sudo su postgres -c psql

 

PostgreSQL内で以下を実行

CREATE database pleroma_dev;
\c pleroma_dev
CREATE user pleroma;
ALTER user pleroma with encrypted password 'パスワード';
GRANT ALL ON ALL tables IN SCHEMA public TO pleroma;
GRANT ALL ON ALL sequences IN SCHEMA public TO pleroma;
CREATE EXTENSION citext;
\q
sudo su postgres
psql -c "alter role pleroma CREATEDB"

 

pleromaのインストール

 

su pleroma
cd ~
git clone https://git.pleroma.social/pleroma/pleroma
cd pleroma/
mix deps.get

設定

co config/config.exs prod.secret.exs
cp config/dev.exs config/dev.secret.exs
vi config/dev.secret.exs

データベースの接続情報を変更

 

vi config/prod.secret.exs

ドメイン情報を変更

 

mix ecto.create && mix ecto.migrate

起動

mix phx.server

 

サービスの登録

cp /home/pleroma/pleroma/installation/pleroma.service /usr/lib/systemd/system/pleroma.service
Environment="MIX_ENV=prod"
systemctl enable --now pleroma.service

 

ドメインの設定

Crystal Signal Piを動かしているラズパイで動かしているため、公式情報とは違いますがApache2側で設定をしました。

以下の設定以外にルータにルーティング設定をしてあげないといけません。

バーチャルホストの設定

sudo vi /etc/apache2/sites-available/pleroma.example.com.conf

ファイル名の「pleroma.example.com.conf」は公開したいドメインURL名にしてください。

 

<VirtualHost *:80>
#Change this:
ServerName pleroma.example.com

RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://localhost:4000/$1 [P,L]

ProxyRequests off
ProxyPass / http://localhost:4000/
ProxyPassReverse / http://localhost:4000/

#Change this too:
#RequestHeader set Host "pleroma.example.com"
#ProxyPreserveHost On

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

mod_proxyの有効とバーチャルホストの有効化

 

sudo a2enmod proxy proxy_http proxy_wstunnel rewrite
sudo a2ensite pleroma.example.com
sudo systemctl restart apache2

 

 

参考

コメント

タイトルとURLをコピーしました