目次
pleromaというマストドンの軽量版みたいなものがあるらしいのでインスタンスを建ててみる。
追記(2018/1/14)
誤字してたので修正しました
やりかた
基本的には
https://git.pleroma.social/pleroma/pleroma/wikis/Pleroma%E3%81%AE%E5%85%A5%E3%82%8C%E6%96%B9
ここをみて入れる。が、ubuntuかな?を想定しているみたいなので適宜読み替える。
Erlang
まず、Erlang(プログラミング言語)を入れる
https://packages.erlang-solutions.com/erlang/
ここでrpmのリンクを取得。
wget リンク
yum localinstall ファイル名
Elixir
次にElixir(Erlang VM上で動くプログラミング言語)を入れる
https://qiita.com/sonots/items/335a1cff003d70feff96
ここをみて、ちゃんとパスまで通す
※注意
そのままコピペすると古いバージョンが入ります(当たり前)最新版を確認しましょう
起動してみると(コマンドはiex)次にようなワーニングがでる
Warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running “locale” in your shell)
気持ち悪いので消したい
https://qiita.com/masashi127/items/5344b3ab1b86053cf10e
ここをみる
だが、これはcentos6用で /etc/sysconfig/i18nファイルがない。
http://zero-config.com/centos/changelocale-002.html
ので、ここをみる
これでエラーが消えた。
build-essential
つぎの
apt install build-essential
については
http://blog.64p.org/entry/2013/07/22/142457
ここに
yum groupinstall "Development Tools"
yum install kernel-devel kernel-headers
すればいいとあるので従ってみる。私の場合はすべてインストール済みだった。
次はnginx, postgresql, letsencryptだ
nginx
私の場合はインストール済みなので割愛。
nginxレポジトリを追加してインストールすればいけるはずだ。
https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
このあたりを見ればいけるはず。
postgresql
インストールはここにヒントがあります
https://www.postgresql.org/download/linux/redhat/
基本的には
yum install postgresql
新しいバーションは別の方法で手にはいりますが自己責任で
私の場合9.2が入りました
9.2でやるとバージョンが古くて怒られるので新しいバージョンを入れます↓
下を見て
yum install postgresql-server
も、します
-serverインストールしたら自動で入るかな?自動で入るならinstall postgresqlはいりません
ここを見ながら色々します
https://qiita.com/LowSE01/items/84af05449f96dedd0edc#%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A
postgresql-setup initdb
ですが、
echo "listen_addresses = '*'" >> /var/lib/pgsql/data/postgresql.conf
に関しては今回はlocalhostからしか使わないし、セキュリティ上の問題からやりません。
次pg_hba.confですが、
接続を確認するため一旦
host all all 127.0.0.1/32 trust
を最下行に追加します。そのとき、既に書かれている
host all all 127.0.0.1/32 ident
をコメントアウトしないといけません。で、セーブして再起動
service postgresql restart
psql -U postgres -h 127.0.0.1
で、ログイン試行をして行けたら成功。
postgresユーザーにパスワードを設定します。
http://d.hatena.ne.jp/sin-j/20080814/1218684380
ここを見ます
alter role postgres with password 'password';
もちろんパスワードは変えてください
ついでにユーザーを作成しておきます。
ユーザー名はpleromaとします。
https://www.dbonline.jp/postgresql/role/index2.html
ここを見ます
CREATE ROLE pleroma WITH LOGIN PASSWORD 'password';
これでパスワード付きユーザーが作成できました。
pleromaデータベースを作成します。
create database pleroma;
一回ログアウトして、pleromaユーザーでログインしてみます。
psqlシェルからは\qで抜けられます。
その際、パスワードでログインするようpg_hba.confを書き換えます。
host all all 127.0.0.1/32 trust
を
host all all 127.0.0.1/32 md5
に書き換えます。で、再起動
ユーザーpleromaでログインします。
psql -U pleroma -h 127.0.0.1
データベースが作成できました。
letsencrypt
これも導入済みなので割愛。
公式サイトを見ればわかるはず。cronの設定を忘れずに。
cronに登録すべきは
systemctl stop nginx && certbot renew --force-renew && systemc
tl start nginx
かな。たぶん。–force-renewしないほうがいいという話もあるのでそこはご自分で
ユーザー追加
まあ、もとの文書のとおりに
adduser pleroma
passwd pleroma
でパスワード設定だけしときます
pleroma入れる
git cloneとcd, mix deps.get, exitします
git cloneのURLが間違っている。
正しいのは
https://git.pleroma.social/pleroma/pleroma.git
です。.gitが抜けてる。
mixとかいろいろするためにブランチ変更。
git checkout develop
ここで、mixが出来ない問題発生。
環境変数を手動で設定してたから消えちゃった
そこで /etc/profile の適切なところ(rootかそうでないかで分けてpathmungeしてるifのおわったあと)に
pathmunge /opt/elixir/bin after
を追加
もちろんパスはelixir入れたとこに適宜変えてください
で、
mix deps.get
意外とすぐ終わった。
データベースの設定
元の文書では次はデータベースの設定だが殆ど既にやってしまった。
ただ、
CREATE EXTENSION citext;
だけやってないのでpleromaデータベースにログインしてやっておきます。
すると、citextが無いと言われた。
yum install postgresql-contrib
をしたら解決。で、create extensionします。
下見て
pleromaの設定
元の文書のとおりにやります
cp config/dev.exs config/dev.secret.exs
でdev.secret.exsの中身を書き換えて…
config.exsの中身も書き換えて
mix ecto.create && mix ecto.migrate
をして…できない。
あ、configディレクトリに入ってたからだ。上に戻ってcreateとmigrateします。
ちょっと時間がかかります。
migrateできない。
データベース作成権限がないと言われるのでpostgresユーザーで
ALTER ROLE pleroma WITH CREATEDB
して作成権限を与えます。
今度は
type “jsonb” does not exist
というエラー。どうやらこれ、postrgres9.4から追加されたようで、今入ってるのが9.2なので無いらしい。
ということでアップグレードしないといけない。
ので、いっかい消します
yum remove postgresql
新しいpostgresを入れる
せっかくなので10を入れます
https://www.postgresql.org/download/linux/redhat/
此処で自分に適したものをプルダウンで選択
私の場合は
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
yum install postgresql10-server
yum install postgresql10-contrib
/usr/pgsql-10/bin/postgresql-10-setup initdb
で、pg_hba.confを書き換えます
/var/lib/pgsql/10/data/pg_hba.conf
host all all 127.0.0.1/32 trust
追記、 host all all 127.0.0.1/32 peer
をコメントアウト
幾つか実行します
psql -U postgres -h localhost
alter role postgres with password 'password';
ついでなので最初からデータベース作成権限を付与します
CREATE ROLE pleroma WITH LOGIN CREATEDB PASSWORD 'password';
pg_hda.conf
さっきのtrustをmd5に
host all all 127.0.0.1/32 md5
local all all md5
local all all peer
はコメントアウト
systemctl restart postgresql-10
再起動
psql -U pleroma -h localhost
ログインできました。
create extensionします
psql -U postgres -h localhost
CREATE EXTENSION citext;
pleromaのところに戻ります
mix ecto.create && mix ecto.migrate
今度は成功
nginx設定
cp /home/pleroma/pleroma/installation/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx
とありますがちょっと変えて
cp /home/pleroma/pleroma/installation/pleroma.nginx /etc/nginx/conf.d/pleroma.conf
とします。
pleroma.confを書き換えます。
nginx起動時にエラーが出たので
include snippets/well-known.conf;
をコメントアウトします
servcie登録します
https://qiita.com/DQNEO/items/0b5d0bc5d3cf407cb7ff
によると/etc/systemd/system/配下に置くといいようなので
cp /home/pleroma/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
します。一応内容を確認します。
elixirのmixの場所の指定が違うので
ExecStart=/opt/elixir/bin/mix phx.server
に書き換えます
pleromaを/home/pleroma以外に入れた場合ほかにも書き換えないといけないようです
で、
systemctl start pleroma
が、、、できない。
これはserviceコマンド実行時に/opt/elixir/binの環境変数が追加されていないから。
/etc/systemd/system/pleroma.serviceのExecStartの内容を書き換えます。
ExecStart=/bin/bash -c 'PATH=/opt/elixir/bin:$PATH exec /opt/elixir/bin/mix phx.server'
これで環境変数を追加できます。
書き換えたので
systemctl daemon-reload
と
systemctl start pleroma
します。/etc/systemd/system配下にserviceファイルを置いたのでenableは必要ないそうです。
で、規約をカスタムします
/home/plerome/pleroma/priv/static/static/terms-of-service.html
を編集します。ただのhtmlです。
とりあえず出来たかな。
成果はここ。
すぐにけすかもだけど一応。
ではまた。
投稿者情報

このユーザーの最近の記事
IT2019.04.25OctoberCMS を導入してみる
IT2019.03.29Connectiontest.devをリリースしました
IT2019.02.01mastodonのDBをDockerからはがし、別のサーバーに分ける
IT2018.11.07XSERVERでRuby on Railsを動かす その4(結論編)