Misskeyの(ほぼ)全てをDocker Composeで構築するやつ + AWS CDK によるリソース定義
- ポート80、443が解放されているサーバー
- Docker Compose
- Cloudflareのアカウント
- AWSのアカウント
- 独自ドメイン
Cloudflareのアカウントを作成してください。
取得したドメイン (以下は例示のために example.com を想定)をCloudflareで使えるようにしてください。
おそらく example.com のCNAMEレコードの編集が必要です。
以下のAレコードを追加してください。
- Misskey本体用: (例)
mi.example.com-> サーバーのIPv4アドレス - メディア用: (例)
mi-media.example.com-> サーバーのIPv4アドレス
SSL/TLS -> Overview -> Full(Strict) を選択
mi.example.com/api/* 以外はキャッシュ可能です。
Caching -> Cache Rules からキャッシュルールを設定してください。
1番目に全てをキャッシュするルール、2番目に mi.example.com/api/* をバイパスするルールを作ると良さそうです。
ポート80、443が解放されていない場合は解放してください。
ufw を使う場合は scripts/fw.sh でセット可能です。
.env.example を .env にコピーし、環境変数を .env に指定してください。
CloudFlareの APIトークン を発行してください。
cloudflare.ini に以下のフォーマットでAPIトークンを記載してください。
dns_cloudflare_api_token=your_api_token
task cdk:bootstrap を実行
(AWS CLIに複数のアカウントでログインしている場合は、 .env でAWS_PROFILEを指定)
task cdk:deploy を実行
Amazon SESの画面に移動し、ドメインの認証と本稼働アクセスのリクエストを行ってください。
Amazon SESの画面 「SMTP設定」からSMTP認証情報を作成してください。
SMTP認証情報が出てくるで保存してください。後でMisskeyに保存します。
CDKによってS3バケットへのアクセス権を持つIAMユーザーが作成されるので、AWSのWeb UIからアクセスキーを発行してください。後でMisskeyに保存します。
オブジェクトストレージとしてCloudflare R2を使用する場合の設定
Cloudflareのダッシュボードで "R2 Object Storage" を選択、バケットを作成する
バケットの設定画面からバケットのカスタムドメインを設定する。 r2.example.com とした場合、環境変数STORAGE_HOSTにr2.example.com を設定
"R2 Object Storage" を選択し、 API ボタンからAPIトークンを弱行する。「オブジェクト読み取りと書き込み」の権限が必要
発行されたトークンはMisskeyのオブジェクトストレージ設定で使用する。
docker-compose up -d
省メモリ環境に最適化した設定になっています。適宜調整してください