1093 文字
5 分
Mitra構築RTA

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の設定など。

Mitra構築RTA
https://unhappysalt.life/posts/mitra構築rta/
作者
ナナシロ
公開日
2024-12-21
ライセンス
CC BY-NC-SA 4.0