LoginSignup
3
0

More than 5 years have passed since last update.

Mastodonのメディアファイルをminioに移す

Posted at

前提条件

  • Mastodon、minioが構築されていること

制約事項

  • Mastodon → minio間はローカル接続されていること。

目的

  • Mastodonのメディアファイル(アバター、ヘッダ、添付画像等)をminioに移したい。
  • メディアファイルは、Nginxのリバースプロキシ経由で配信したい。

手順

minio側の準備

1. アクセスキー、シークレットキーを準備する

config.json に記載されている。

以前の記事 の通り構築しているのならば、 /home/minio/config/ 内に存在する。

そうでない場合は、~/.minio/config/ に存在するかも?

config.json
{
        "version": "25",
        "credential": {
                "accessKey": "HOGEHOGEHOGEHOGE",
                "secretKey": "FUGAFUGA123FUGAFUGA123FUGAFUGA123FUGAFUGA123"
        },
        "region": "",
        "browser": "on",

          (以下略)

なお、このファイルを編集することでキーを変更することが可能。
書き換えたらminioの再起動を。

2. 専用のバケット(フォルダのようなもの)を準備する

  1. にて準備したアクセスキー、シークレットキーを用いて minio Browserにログインする。

右下の(+)をクリックし、続けてCreate bucketをクリックする。

movie

Bucket nameは、それっぽい名前をつける。(外に出るので、かっこいい名前をつけよう!)

このBucket nameは、後で使用するので控えておく。

  1. バケットに読み書きできるポリシーを設定する

左のバケット一覧より、対象のバケットを選択し、「・・・」をクリック後、Edit policyをクリック。

movie

Prefixは空白のまま、右のドロップダウンをRead and Writeに変更し、Addをクリック。(×) で閉じる。

Mastodon側の準備

.env.production の編集

S3(Minio)の設定がコメントアウトされた状態なので、これを編集する。

.env.production
# S3 (Minio Config (optional) Please check Minio instance for details)
S3_ENABLED=true
S3_BUCKET=test
AWS_ACCESS_KEY_ID=HOGEHOGEHOGEHOGE
AWS_SECRET_ACCESS_KEY=FUGAFUGA123FUGAFUGA123FUGAFUGA123FUGAFUGA123
#S3_REGION=
S3_PROTOCOL=https
S3_HOSTNAME=mstdn.example
S3_ENDPOINT=http://10.1.1.5/
# S3_SIGNATURE_VERSION=
.env.production オプション 設定値
S3_BUCKET minio上のバケット名
AWS_ACCESS_KEY_ID minioのaccessKey
AWS_SECRET_ACCESS_KEY minioのsecretKey
S3_PROTOCOL Mastodonがサービスを行っているプロトコル(ほとんどの場合 https)
S3_HOSTNAME Mastodonのホスト名
S3_ENDPOINT minioのURL

たとえば上記のように設定すると

  • Mastodonが表示する画像のURL先: https://mstdn.example/test/media_attachments/...
  • Mastodonが画像を転送する先: http://10.1.1.5/

となる。

Nginxの設定追加

test配下へのアクセスを全てminioに回さないといけないので、そのあたりの設定を追加する。

(nginx)mastodon.conf
(前略)

  location ~ ^/test{
    # minio Object Storage
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Proxy "";
    proxy_pass_header Server;

    proxy_pass http://10.1.1.5;
    proxy_buffering off;
    proxy_redirect off;
    proxy_http_version 1.1;

    tcp_nodelay on;
  }

(後略)

既存の画像ファイルの転送

Mastodonの live/public/system 以下のディレクトリを、まるっとそのまま minioのバケットに放り込む。

サービス再起動

Mastodonサーバにて、MastodonおよびNginxサービスを再起動する。

動作確認する

Mastodonにアクセスする。

画像が表示されていること、画像が投稿できることを確認できたら成功。 :tada:

あとがき

  • 自分用にメモした手順です。必要に応じて読み替えてください。
  • こうしたほうがいいよ的なアドバイスを頂けると大変助かります

以上

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0