9
4
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【鯖缶入門】Misskeyインスタンスを建てたらやっておきたい事

Last updated at Posted at 2024-06-25

はじめに

最近では、各社VPSサービスがスタートアップスクリプトを提供し始め、構築や運用に関する技術記事も増加したことによって、Misskeyインスタンスの構築ハードルは大幅に下がったように思えます。
しかし、構築後の運用や設定のような、構築それそのもの以外の情報があまりなかったので、私がMisskeyインスタンスを建ててから今までに起こった経験をもとに、いくつかの知見を共有します。

Misskeyで設定しておきたい設定

Misskeyのフロント上でできる設定にかんして。

全般

サーバー情報に関連する設定

サーバー名、サーバーの紹介、管理者関連のものは必ず設定しておきましょう。
フォークされたMisskeyを利用している場合は、AGPLライセンスに準拠するため、そのレポジトリのURLを指定しておきましょう。

image.png

名称が長いインスタンスであれば略称を設定しておくとしあわせになれるかもしれません。

ファイルの設定

リモートファイルのキャッシュに関する設定です。ストレージに余裕があれば有効化するのもいいですが、オブジェクトストレージを利用する場合、PUT数が増加するため、無効化しておくことをおすすめします。

image.png

ServiceWorker

通知等の機能をユーザーが利用できるようにするため、ServiceWorkerの設定を行います。

以下のコマンドを、任意の環境で実行し、Public KeyとPrivate Keyを生成し、設定を行います。

sudo npm install web-push -g
web-push generate-vapid-keys

image.png

ブランディング

名の通り、ブランディングに関する設定です。
ここで設定したアイコンやテーマカラーは、連合先のインスタンスでも表示されます。

こちらにもレポジトリのURL、フィードバックのURLを設定する欄がありますので、フォークされたMisskeyを利用している場合は、AGPLライセンスに準拠するため、そのレポジトリのURLを指定しておきましょう。

モデレーション

サーバーモデレーションに関する設定をここでは行います。
お一人様鯖の方は、「誰でも新規登録できるようにする」を切っておきましょう。

公開インスタンスであれば、「アカウント登録にメールアドレスを必須にする」を有効にし、必ず利用規約とプライバシーポリシー、お問い合わせ先URLを設定しておくことをおすすめします。
規約等の作成には手間や時間がかかりますが、問題が起きた際に自分の助けになるはずです。

image.png

メールサーバー

メールの配信を行うサーバーの設定を行います。公開鯖を運営するつもりであれば、必ず設定しておきましょう。

私は、鯖設立当初、SESを利用していましたが現在はGmailを利用しています。送信数上限はありますが、小規模インスタンス程度であれば充分実用に耐えるかと思います。

image.png

Gmailを利用した独自ドメインでのメール配信設定は「MisskeyのメールサーバーとしてGmailのSMTPサーバーを利用する」が参考になるかと思います。

オブジェクトストレージ

ドライブの格納先としてAWS S3または互換のオブジェクトストレージを使う設定ができます。
これを有効化しておかないと、files/ディレクトリ配下にファイルが蓄積されるのですが、運用上あまり好ましくないので、可能であればオブジェクトストレージの利用をしましょう。

おすすめはCloudflare R2、自前管理で費用を節約したい場合はMinIO等でもいいかもしれません。

また、エンドポイントはカスタムURLを設定しておくべきだと思いますが、私は設定し損ねてしまいました😫

image.png

詳しい設定方法については、こちらが参考になるかと思います。

セキュリティ

セキュリティに関する設定を行います。
定期的にスパムbotや海外のよくわからない広告垢が出現するので極力設定しておきましょう。

Botプロテクション

俗に言うCapture関連の設定です。拘りがなければreCAPTUREで問題ない気がします。
ここからサイトを開設し、サイトキーとシークレットキーを入手し、設定します。

image.png

センシティブなメディアの検出

機械学習を用いてセンシティブなメディアを検出することができるようです。
計算資源に余裕があれば有効にしておくといいでしょう。

Active Email Validation

登録時にメールアドレスのバリデーションを行ってくれます。
気休め程度ですが、有効化しておきましょう。

Verifymail.ioやTrueMailを利用することも可能ですが、個人規模であれば費用的にも現実的にはないでしょう。

Banned Email Domains

登録を拒否するメールドメインを設定します。

モデレーション上、捨てアドで登録されると厄介ですので、disposable-email-domains等からリストを持ってきて設定しておきましょう。

これを設定しておくだけでかなり変わります。いい感じです👊🏻

image.png

Log IP address

アカウントの新規登録・ログイン・利用時にIPアドレスを記録する機能です。有効化しておきましょう。

リレー

Misskeyにはリレーによって投稿を中継し配信する機能があります。
建てたての小規模インスタンスや、お一人様鯖であれば、TLをかさ増しするために設定することをおすすめします。
しかし、リレーに参加することでリレーからの流入ノート数分が増加しますので、DBサーバーの容量などを考慮した上で設定を行ってください。

リレーサーバーはいくつかありますが、有名なものであれば。このあたりが参考になりそうです。

プロキシアカウント

プロキシアカウントとは、インスタンス内のユーザー内がリモートユーザーをリストにアサインした際など、特定の条件を満たした際にリモートフォローを行うアカウントです。

公開サーバーであれば、専用のアカウントを生成し、設定しておきましょう。

image.png

アカウントを生成しただけでは、選択画面に表示されないことがあります。
生成したアカウントをにて1つでも投稿を行うと表示されるようですので、表示されない場合は試してみてください。

外部サービス

DeepL Translation

外来語で投稿されたノートを翻訳するためにDeepl APIキーを設定できます。
DeepL APIはこちらから登録・取得が可能です。

無料版は月間50万文字までの制限があります。
Proを使う場合は、Pro accountを有効化してください。

Misskey以外で設定しておきたい設定

ここからはMisskey外での設定です。

meilisearch

厳密に言えばMisskeyの機能の一部となるものですが、フロント上での設定ではないので、Misskey以外の設定としておきます。

この設定を適用するためには、Misskeyを再起動する必要があります。既に公開しているサーバーの場合、極力アクティブユーザーの少ない時間帯に行うといいでしょう。

meilisearchを立ち上げ、.config/default.ymlを編集してMisskeyを再起動します。
Dockerで立ち上げる方法もありますが、取り敢えずはこちらを参考にするといいかもです。

WAF

Cloudflare > (User) > (Domain) > Security > WAFより設定します。

海外からのリクエストにすべてChallengeを課してもいいですが、連合先に海外のインスタンスもあるので取り敢えずはTorだけにChallengeを課す設定で問題ないでしょう。

image.png

HTTP DDoS attack protection

Cloudflare > (User) > (Domain) > Security > DDoSより設定します。
言わずと知れたDDoSの防護緩和機能です。

スコープをAll incoming requests to (Domain)として有効化しておきましょう。
AWSのEC2インスタンスなど、通信量で従量課金される子を利用している場合、お財布へのダメージを減らせるかもしれません。

image.png

ちなみに、UDPリフレクション攻撃やSSLベースのDDoSについては、Freeプランで設定できないようです。

Cache Rules

Cloudflare > (User) > (Domain) > Caching > Cache Rulesより設定します。

APIを除くすべてをキャッシュしておくといいでしょう。多分。

image.png

さいごに

最近では、Misskeyの構築ハードルが下がってきていることもあり、インスタンス数も増え、Fedi全体としても賑やかになってきているように思います。
その一方で、きちんと設定されていないインスタンスがあるなど、幾つかの問題が顕在化しているようにも思えます。

この記事が誰かのお役に立てれば幸いです。

9
4
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
9
4