Mitra構築してみる
GCP
の乞食無料枠でこっそりと構築して利用していたのですが、こちらの記事で構築したPleroma
爆破して鯖自体を持て余してたので、せっかくだからこれにMitra
構築してみることに。
サーバー再構築から最低限のセットアップをやり直していざ、鎌倉。
ちなみに出来上がったのがこちら。
事前準備
Mitra
自体はdeb
ファイルをdpkg -i
で問題ないので、Rust
は無くても動くのですが、PostgreSQL
は別途入れておく必要があります。
後はSSL証明書ですかね。最初はCloudflare Tunnelで楽する気でいたのですが、上手く動作してくれなかったので…。
PostgreSQL
sudo apt install -y postgresql-common
sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 16;
systemctl status postgresql
で状態を確認。active
を確認、ヨシ👈
sudo -u postgres psql
CREATE USER mitra WITH PASSWORD 'mitra'; #PASSWORDは変えた方がいいのかも?
CREATE DATABASE mitra OWNER mitra ENCODING 'UTF8';
\q
で終了。
SSL証明書
(Cloudflareに依存してるいるので)そちらを利用する形で取得します。
sudo apt install -y certbot python3-certbot-dns-cloudflare
GlobalAPIKeyを確認して控えておいて、
sudo mkdir /etc/cloudflare
sudo vim /etc/cloudflare/cloudflare.ini #もちろんnanoでもemacsでも
dns_cloudflare_email = [email protected] #Cloudflareで登録しているメールアドレス
dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx #先ほど確認したGlobal API Keyコピペ
sudo chmod 600 /etc/cloudflare/cloudflare.ini
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d puniman.cafe -d *.puniman.cafe
Mitraをインストール
Releaseページにdeb
ファイルのリンクをコピーして、
wget https://codeberg.org/silverpill/mitra/releases/download/v3.11.0/mitra_3.11.0_amd64.deb #構築時は3.11.0が最新版だったので。この記事編集現在は3.12.0が出てます。
sudo dpkg -i mitra_3.11.0_amd64.deb
で完了。Deamon化までやってくれます。楽ですね。
sudo vim /etc/mitra/config.yaml
# Domain name
instance_uri: https://mt.puniman.cafe #公開予定のドメインへ変更。今回はmt.puniman.cafe
instance_title: ぷにまん #所謂サーバー名ですかね。
instance_short_description: my instance #簡単な説明とか。このままで良かったのでそのままにしておきました。
# Long description can contain markdown syntax
instance_description: | #Aboutのページで表示される部分ですね。Markdownが使えるっぽい。こちらもそのままにしておきました。
# My instance
Welcome!
最低限この辺を弄れば良さそうです。まぁドメイン変更だけでいい気もします。
sudo su mitra -s $SHELL -c "mitractl create-account <username> <password> admin"
でadmin
権限の垢を作成します。でもMitraにはコンパネのようなものはないので、鯖缶ですアピール以外には意味がなさそうですね…。
ちなみにこのコマンドは管理者権限がないと動きません。だからsudo
を付ける必要があったんですね。(1敗)
sudo systemctl start mitra
Deamon化は完了しているので上記のコマンドで起動できます。 後はNginx
なりCaddy
で公開するだけです。
Nginx
sudo apt install nginx
sudo vim /etc/nginx/conf.d/mitra.conf
こちらにテンプレがあるのでコピペして編集。
まぁexample.tld
を変更するぐらいですかね。
server {
server_name mt.puniman.cafe;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/puniman.cafe/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/puniman.cafe/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/puniman.cafe/chain.pem;
sudo nginx -t
で設定ファイルを確認。今回は一部ドメインの記入ミスでerror出てました。素直にコピペできっちりやりましょう。
sudo systemctl restart nginx
sudo systemctl status nginx
active
確認、ヨシ👈 後はアクセスして入れるか確認。今回は問題なく行きました。先ほど作った垢でログインして終わりです。
アップデート
構築後に3.12.0が来ていたので、
wget https://codeberg.org/silverpill/mitra/releases/download/v3.12.0/mitra_3.12.0_amd64.deb
sudo dpkg -i mitra_3.12.0_amd64.deb
sudo systemctl restart mitra
で完了。こっちも楽ですね。きっちりやるならまずは、sudo systemctl stop mitra
で止めてからですかね…?
完走した感想
本体のインストールより他が面倒だと思った。(こなみ)
Mitra自体は必要最低限のシンプルなUIで悪くはない印象。後はS3互換ストレージさえ利用できればメインに使っていけそうですね。
media-storage-s3というブランチで対応は進めているようなので、そう遠くはないのかなと。
参考にしました。
PostgreSQL
の導入、証明書の発行、Nginx
の設定など。