RaspberryPi上でPleromaを動かすまでの手順です。
とりあえずローカル環境で動かすためのものです。この記事の内容は、本番環境として外部に公開することは想定していません
RaspbianはDebianベースなので、本家のドキュメントに沿ってくことで概ね動くと思います。 Installing on debian based distributions
- Raspberry Pi
- Pi3 ModelBが性能高め&無線LAN機能付きなのでおすすめです
- USBキーボード, ディスプレイ, microSDカード
- Raspberry Piのセットアップ時に必要です
公式がリリースしているDebianベースのRaspberry Pi向けOSをmicroSDカードに焼きます。 手順はいくらでも出てくるのでここでは省略します。
メインマシンからsshでログインする時に、毎回IPアドレスを打ち込むのが面倒名上にIPアドレスが変わったりすることもあるので、LAN内でraspberrypi.localでアクセス出来るようにします。 便利。
Raspberry PiでAvahi を使ってホスト名でアクセスする
(追記)Raspbian Stretchにはデフォで入ってました
Raspbian StretchならPleromaを動作させるために必要なpostgresql-9.6をsudo apt-get install postgresql
でインストールできます。
ですが、なんとなく最新バージョンを使いたいので下記記事を参考にビルドします。 Step 5 (update): Installing PostgreSQL on my Raspberry Pi 1 and 2
コンパイルはかなり時間がかかるので、セッションが切れて途中で終了してしまわないようにscreen, tmuxなどを使いましょう。
# Add the PostgreSQL Apt Repository (source)
echo "deb-src http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
# Import the repository signing key
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# Update the package list and upgrade the system
sudo apt-get update
sudo apt-get upgrade
# Install necessary tools
sudo apt-get install build-essential fakeroot
# Install all the dependencies needed
sudo apt-get build-dep postgresql-10
sudo apt-get build-dep postgresql-common
sudo apt-get build-dep postgresql-client-common
sudo apt-get build-dep pgdg-keyring
# Compile packages
cd /tmp
apt-get source --compile postgresql-10
apt-get source --compile postgresql-common
apt-get source --compile postgresql-client-common
apt-get source --compile pgdg-keyring
# Create local repository(この操作がちょっと謎)
sudo mkdir /var/local/repository
echo "deb [ trusted=yes ] file:///var/local/repository ./" | sudo tee /etc/apt/sources.list.d/my_own_repo.list
cd /var/local/repository
sudo mv /tmp/*.deb .
dpkg-scanpackages ./ | sudo tee Packages > /dev/null && sudo gzip -f Packages
# Update package list
sudo apt-get update
# Finally, PostgreSQL 10 can be installed
sudo apt-get install postgresql-10
https://elixir-lang.org/install.html#raspberry-pi のとおりにやっていきます。
echo "deb http://packages.erlang-solutions.com/debian stretch contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list
wget http://packages.erlang-solutions.com/debian/erlang_solutions.asc
sudo apt-key add erlang_solutions.asc
sudo apt update
sudo apt-get install elixir
sudo apt-get install erlang-dev erlang-parsetools erlang-xmerl git
必要なものは大体揃っているはずなので、 Installing on debian based distributionsの続きをやっていきます。
sudo su postgres -c psql
# これからはpsql内での操作
CREATE database pleroma_dev;
\c pleroma_dev
CREATE user pleroma;
ALTER user pleroma with encrypted password '<your 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
# パスワードはなんでもOKです。(強めのパスワードが推奨されています。)
sudo adduser pleroma
# pleromaに切り替える
sudo su - pleroma
# リポジトリをクローン
git clone https://git.pleroma.social/pleroma/pleroma
cd pleroma
# pleromaで使用しているライブラリのインストール
mix deps.get # hexをインスト―するか尋ねられたらY
# 設定ファイルを記入
cp config/dev.exs config/dev.secret.exs
vim config/dev.secret.exs
# ホスト名を指定する https://git.pleroma.social/pleroma/pleroma/blob/develop/config/dev.exs#L9
# config :pleroma, Pleroma.Web.Endpoint,
# ...
# watchers: [],←コロンを追加するのを忘れない
# url: [host: "raspberrypi.local", scheme: "http", port: 4000] ←追記する
# ...
#
# DBのユーザ、パスワードを指定する https://git.pleroma.social/pleroma/pleroma/blob/develop/config/dev.exs#L41
# config :pleroma, Pleroma.Web.Endpoint,
# adapter: Ecto.Adapters.Postgres,
# username: "preloma",
# password: "<your password>",
# database: "pleroma_dev",
# hostname: "localhost",
# pool_size: 10
# DB初期化
mix ecto.create && mix ecto.migrate
# 起動
mix phx.server
(Mix) The database for Pleroma.Repo couldn't be created: ERROR 42501 (insufficient_privilege): permission denied to create database
作業用ユーザーで
sudo su postgres -c psql
# psql
GRANT ALL PRIVILEGES ON DATABASE pleroma_dev TO pleroma;
\q
すると行ける。