オープンソースの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
参考
- ITmedia 「新しい連合型SNS「Pleroma」はMastodonを置き換える?」
- マストドン日本語ウィキ Pleroma
- GitHub crakaC/pleroma_on_raspberry_pi.md
- GitLab pleroma Installing on debian based distributions
- Elixir Installing Elixir
- ラズパイ(Linux)メモ PostgreSQL のインストール(phppgadmin)
- Qiita 権限がなくてcreatedbができなくてしばらくはまっていました。
- 荒木武蔵のメモ置き場 Debian stretch で Pleroma インスタンスを立ててみた
- Qiita Apache2@Debianでのバーチャルホスト設定まとめ
- How To Use Apache as a Reverse Proxy with mod_proxy on Debian 8
コメント