初期設定
上のページを参考にサーバの初期設定を行った。
rootでSSHでログインして(公開鍵を設定してない場合はConoHaのコンソールから作業することになると思う)、ソフトウェアを更新する。
apt update
apt upgrade
と更新したら、設定がリポジトリでインストールしたデフォルトから変更されてるよって言われて置き換えるか聞かれたが、/etc/cloud/cloud.cfgはそのまま残した(これは初回起動時に実行されるものらしいので、たぶんどっちでもよい)。
作業ユーザの追加
rootユーザで
adduser workuser
gpasswd -a workuser sudo
とし、作業ユーザを追加しsudoできるようにした。
su workuser
rootから作業ユーザに切り替える。
作業ユーザへのSSH公開鍵の設定
cd ~
mkdir .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
nano authorized_keys
authorized_keysにローカルで作成した公開鍵をペーストし保存した。
sudo nano /etc/ssh/sshd_config
/etc/ssh/sshd_configを開き、ルートログイン禁止とsshのポートの変更を行った。
ルートログイン禁止:
PermitRootLogin no
SSHポートの変更:
Port 10022
以上のように書き換え(sudo sshd -tで構文チェックができる)、sshdを再起動。
sudo service sshd restart
rootユーザに対して追加されていた公開鍵を消す
sudo su root
rm ~/.ssh/ authorized_keys
設定が済んだら作業用ユーザでログインし直す(ポートも変更したものに合わせる)
Pleromaのインストール
公式のWikiに載ってるのに従ってやっていく。
9.6以上のバージョンが標準リポジトリにないので、PostgreSQLの公式ページに従ってインストールする。
sudo nano /etc/apt/sources.list.d/pgdg.list
以下を書いて保存する。
deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
その後、次のコマンドを実行してインストールする。
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-9.6 postgresql-contrib-9.6
Elixir 1.5+
参照: Installing Elixir - Elixir
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt update
sudo apt install elixir
他に必要なものをインストール
他の必要なパッケージをインストールする。
sudo apt install erlang-dev erlang-parsetools erlang-xmerl git build-essential nginx
ユーザ作成
sudo adduser pleroma
sudo usermod -aG sudo pleroma
su pleroma
ソースコードを持ってきて必要なプログラムをインストールしたり設定をする
cd ~
git clone https://git.pleroma.social/pleroma/pleroma
cd pleroma
mix deps.get
Hexをインストールするか聞かれたらyを入力。
設定ファイルを作成
mix generate_config
rebar3をインストールするか聞かれるのでy。
他にも、ドメイン名、インスタンス名、adminのEメールアドレスを入力する。
mediaproxyを有効にするか聞かれ、nとした。
作成された設定ファイルをリネームする。
mv config/generated_config.exs config/prod.secret.exs
sudo su postgres -c 'psql -f config/setup_db.psql'
MIX_ENV=prod mix ecto.migrate
起動テスト
MIX_ENV=prod mix phx.server
これで起動するが確かめたらCtrl-Cで停止する。
Let's EncryptでSSL証明書を取得する。(ここらへんよくわかってない)
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install python-certbot-nginx
sudo certbot certonly -d (ドメイン名)
すると色々聞かれるので入力すると、 /etc/letsencrypt/live/(ドメイン名)/ 以下に証明書が生成された。
(Pleromaのサイトによると証明書の取得についてより先にnginxの設定がきているので、その順番でやっていたが、certbot --nginxというふうに証明書を取得しようとしたところ、nginxの設定で指定されている証明書がないよ、とエラーが出て動かせなかった。最初は--standaloneで証明書取得を行った方が楽かもしれない)
nginxの設定
設定ファイルをコピーし、設定を変更する。
sudo cp /home/pleroma/pleroma/installation/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx
sudo nano /etc/nginx/sites-enabled/pleroma.nginx
サーバのドメインを指定し、cert pathsも取得した証明書にあわせて修正する。
sudo systemctl restart nginx.service
サービスの設定
sudo cp /home/pleroma/pleroma/installation/pleroma.service /lib/systemd/system/pleroma.service
sudo nano /lib/systemd/system/pleroma.service
/lib/systemd/system/pleroma.serviceを開き、[Service]のところに
Environment="MIX_ENV=prod"
を書き加える。
sudo systemctl start pleroma.service
サービスを起動する。
自分用のアカウントを作る
設定したドメインにアクセスし、自分で使うためのPleromaのユーザを作成する。
登録の停止
nano ~/pleroma/config/prod.secret.exs
を編集し
limit: 400,
registrations_open: false
に変更して登録を停止した。またついでに投稿辺りの文字数の上限を何となく400文字とした。
再起動してPleromaの設定を反映
sudo systemctl restart pleroma.service
Pleromaのサービスを自動起動するように設定
sudo systemctl enable pleroma.service
let'sencryptの自動更新
/usr/bin/certbot renew --post-hook "service httpd restart"
を動かしてみてちゃんと動くか確認する。(証明書取得してすぐだと更新されないが、Cert not yet due for renewalと出れば問題ない)
cronに更新用のコマンドを設定する。
sudo nano /etc/cron.d/letsencrypt
で開き、内容は次のようにする。これは毎週火曜日16時33分に発動する設定になっている。
33 16 * * 2 root /usr/bin/certbot renew --post-hook "service httpd restart"
参考: Let's Encryptを使ってSSL証明書を自動更新する(AWS/Amazon Linux/Apache) - Qiita
こまごまとした設定
Instance specific panelの表示
nano ~/pleroma/priv/static/static/config.json
で
"showInstanceSpecificPanel": true
のようにtrueに変更する。
Instance specific panelの内容の設定は~/pleroma/priv/static/instance/panel.htmlを弄るとできる。
nano ~/pleroma/priv/static/instance/panel.html
として開いて、適当に書き換える。
インスタンスのサムネイル画像の差し替え
また、 ~/pleroma/priv/static/instance/thumbnail.jpeg を置き換えると、 Pleroma Instances などで表示されるアイコンが、デフォルトの暗灰色にπλήρωμαの文字の画像から変更できる。
ロゴの変更
ロゴ、つまりブラウザでPleromaを開いたとき上部真ん中に表示される画像が標準で ~/pleroma/priv/static/static/logo.png となっているので、これを入れ替えるとPleromaフロントエンドの真ん中上部に表示される画像を変更できる。
なお、ロゴ画像ファイルの位置は ~/pleroma/priv/static/static/config.json で指定されている。
チャットの削除
チャットはお一人様インスタンスでは意味がないので消す。 ~/pleroma/config/prod.secret.exs を開き、
nano ~/pleroma/config/prod.secret.exs
次の内容を最後に書き加える。
config :pleroma, :chat,
enabled: false
設定が終わったらPleromaを再起動する。
sudo systemctl restart pleroma.service