Skip to content

Instantly share code, notes, and snippets.

@crakaC
Last active May 1, 2019 20:22
Show Gist options
  • Save crakaC/25a004b061bb35fe7ad5ad6a064ce285 to your computer and use it in GitHub Desktop.
Save crakaC/25a004b061bb35fe7ad5ad6a064ce285 to your computer and use it in GitHub Desktop.
Pleroma on RaspberryPi

Pleroma on RaspberryPi

RaspberryPi上でPleromaを動かすまでの手順です。

とりあえずローカル環境で動かすためのものです。この記事の内容は、本番環境として外部に公開することは想定していません

RaspbianはDebianベースなので、本家のドキュメントに沿ってくことで概ね動くと思います。 Installing on debian based distributions

必要なもの

  • Raspberry Pi
    • Pi3 ModelBが性能高め&無線LAN機能付きなのでおすすめです
  • USBキーボード, ディスプレイ, microSDカード
    • Raspberry Piのセットアップ時に必要です

Raspbian Stretch Lightをインストールする

公式がリリースしているDebianベースのRaspberry Pi向けOSをmicroSDカードに焼きます。 手順はいくらでも出てくるのでここでは省略します。

avahiのインストール

メインマシンからsshでログインする時に、毎回IPアドレスを打ち込むのが面倒名上にIPアドレスが変わったりすることもあるので、LAN内でraspberrypi.localでアクセス出来るようにします。 便利。

Raspberry PiでAvahi を使ってホスト名でアクセスする

(追記)Raspbian Stretchにはデフォで入ってました

PostgreSQL 10.1のインストール(Optional)

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

elixirのインストール

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

DB作成

必要なものは大体揃っているはずなので、 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

pleromaユーザの作成、pleromaのインストール

# パスワードはなんでも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

すると行ける。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment