Skip to content

misskeyサーバーを簡単に立てるためのdocker compose定義

License

Notifications You must be signed in to change notification settings

misskey-kit/misskey-kit

Repository files navigation

misskey-kit

misskeyサーバーを簡単に立てるためのdocker compose定義
Cloudflareを使うので固定IPアドレスは不要、それどころかグローバルIPアドレスさえ不要です。

用意するもの: dockerコマンドとdocker-composeコマンドが動くLinux環境(WSL可)

クイックスタート: localhostでの起動を試す場合

  1. misskey-default.ymlのurl:の欄をhttp://localhost:3000に書き換えます
  2. docker-compose.ymlのコメントアウトされているports: ["3000:3000"]の行のコメントアウトを外します
  3. docker-compose up -d --waitを実行します
  4. http://localhost:3000 にアクセスします

クイックスタート: ドメインを使う場合

ドメイン名をexample.comとし、これがCloudflareで管理されているものとします

  1. Cloudflare Tunnelsでtunnelを作成します。トークンが生成されますが、それは直接「トークンだ」と表示されるものではなく、表示されているconnector実行用コマンドに含まれる無意味な長い文字列です。
  2. misskey-default.ymlのurl:の欄をhttps://example.comに書き換えます
  3. docker.envのTUNNEL_TOKEN=の欄にCloudflare Tunnelsのトークンを入力します
  4. Cloudflare Tunnelsの設定で、Public Hostnameとしてexample.com/を、そのserviceとしてHTTP://lbを設定します
  5. docker-compose up -d --waitを実行します
  6. https://example.com/ にアクセスします

追加: DBバックアップとその定期実行

  1. AWS S3 をはじめとするオブジェクトストレージを作成し、そのクレデンシャルを用意します
  2. docker.envのAWS_ACCESS_KEY_ID=の欄にAWSのアクセスキーを入力します
  3. docker.envのAWS_SECRET_ACCESS_KEY=の欄にAWSのシークレットアクセスキーを入力します
  4. docker.envのAWS_DEFAULT_REGION=の欄にAWSのリージョンを入力します。AWS S3以外のオブジェクトストレージの場合はそのままにしておきます
  5. AWS S3以外のオブジェクトストレージの場合は、docker.envのS3_ENDPOINT=の欄にオブジェクトストレージのエンドポイントURLを入力します
    • ヒント: Cloudflare R2の場合、https://XXXXXXXXXX.r2.cloudflarestorage.com/BUCKET_NAMEのようなURLを案内されますが、最後のBUCKET_NAMEは不要です。バケット名はこのあとBACKUP_OBJECT_S3URLを指定するときに使います
  6. docker.envのBACKUP_OBJECT_S3URL=の欄にS3://から始まるバケット名を含むパス名を入力します
  7. ./backup-db.shを実行すると、バケット上に指定通りのキー名でDBのバックアップが作成されます
  8. crontab -eで定期実行の設定を行います。例えば、毎時15分にバックアップを作成する場合は、15 * * * * /path/to/misskey-kit/backup-db.shとします
  9. リストアの練習は、他のサーバーに同じ設定ファイルを置いて行うのがよいでしょう
    1. docker compose up -d db としてDBを起動します
    2. ./restore-db.shとしてDBをリストアします
    3. docker-compose.ymlのコメントアウトされているports: ["3000:300"]の行のコメントアウトを外し、直接アクセスできるようにしておきます
    4. docker compose up -d webとしてMisskeyを起動します
    5. http://localhost:3000 にアクセスします。バックアップしたときの状態に戻っているはずです

追加: misskeyのアップデート

  1. ./update-misskey.shを実行します。これは 公式Dockerhub から最新のイメージを取得し、アプリケーションインスタンスを更新します。このとき、新しいバージョンのコンテナを起動してから既存のコンテナを停止するため、サービスは無停止です
  2. β版など、latest以外のタグを使いたい場合は、./update-misskey.sh TAGのようにタグ名を指定します

追加: libjemallocを使ってメモリ効率を向上させる

libjemallocは、標準のメモリ管理ライブラリよりも高効率な互換メモリ管理ライブラリです。これを使うことで、Misskeyのメモリ使用量を抑えることができます。

  1. ./install-libjemalloc.shを実行します。これはjemallocをインストールし、Misskeyのコンテナを再起動することなく有効になります
    Misskeyをアップデートしたりしてもlibjemallocは有効のままです
    • dockerに作ったボリューム(misskey-lib64)をインストール先にしているためです

About

misskeyサーバーを簡単に立てるためのdocker compose定義

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages